文档章节

Control character in cookie value or attribute

康州牧码人
 康州牧码人
发布于 2014/09/14 21:57
字数 527
阅读 731
收藏 0

    先说一下环境 tomcat7,jdk7
    在做一个cookie保存账号的时候报这个错,各种google,baidu后,大家基本都归结于转码的问题,然后我在我代码中,添加了存储cookie时,转码username=URLEncoder.encode(username,"UTF-8");   在取出cookie时候,解码username = URLDecoder.decode(username,"UTF-8"),并且设置tomcat的编码为utf-8,可惜问题依旧;
    后来看到网友说,tomcat7对中文支持不好,然后我下载了一个tomcat6,吧程序跑了起来,发现报错换了!!!就是这个报错,让我解决了问题....
    现在的运行环境是:tomcat6 jdk7
    我吧程序跑了起来,发现tomcat6也是无法运行,可以报的错是:Control character in cookie value, consider BASE64 encoding your value ,看到base64后,我产生了疑问,base64是我加密的算法,用于给用户名加密,难道是我加密后的字符串再转码出问题?然后我把我代码修改成,先加密,后转码

username = username.trim();
username = EncryptionCoder.EncryptedCookie(username);	//加密
username=URLEncoder.encode(username,"UTF-8");	//转码


在页面取出时,就先解码,后解密
Cookie[] cookies =  request.getCookies();
if(cookies!=null){
	for(Cookie cookie:cookies){
         if("userName".equals(cookie.getName())){
	        username = cookie.getValue().trim();	//得到值
				username = URLDecoder.decode(username,"UTF-8");	//解码
				username = EncryptionCoder.DecryptCookie(username);//解密
			}
		}
	}

问题就这样解决了!
问题是解决了,可是出现这个情况的原因是什么呢?
我之前产生这个问题的原因是,我先进行了转码,然后再去加密;现在的顺序是,我先进行了加密,然后在进行转码
两者的区别在于先加密,转码的先后!
明白了这里以后,我把两种操作后,得到结果进行了对比,
第一种,先转吗,加密,YWRtaW4z\r\n
第二种,先加密,后转码YWRtaW4z%0D%0A
结果就是,第二种可以成功执行,第一种,无法执行
所以以后,在对字符需要进行加密,解密,转码,解码操作时,如果碰到了类似情况,可以尝试吧顺序换一下!



© 著作权归作者所有

康州牧码人
粉丝 6
博文 24
码字总数 11051
作品 0
深圳
程序员
私信 提问
tomcat 没有任何项目启动打开页面就报错

没有放任何项目在webapps中,直接启动就报 java.lang.IllegalArgumentException: Control character in cookie value or attribute. 很奇怪,从来没遇到过,即使把tomcat删除,重新解压后运行...

odoo365
2016/07/06
321
1
tomcat启动报错

java.lang.IllegalArgumentException: Control character in cookie value or attribute. at org.apache.tomcat.util.http.CookieSupport.isHttpSeparator(CookieSupport.java:193) at org.a......

小石头哥
2013/03/10
625
5
cookie没有中文,IE、chrome、ff都没有问题,360浏览器却报错。

cookie没有中文 只有一个jsessionid=06D1A10C3A11EDE1E8C7AED45BBAD9C3 报错 SEVERE: Error processing request java.lang.IllegalArgumentException: Control character in cookie value o......

uchiha_naruto
2018/06/14
398
3
Control character in cookie value or attribute

Servlet操作Cookie方法可查看该文章: http://elf8848.iteye.com/blog/253198 以下是我遇到的问题: 在servlet在设置用户订单信息到cookie中时出现以下异常: java.lang.IllegalArgumentExc...

anlve
2016/10/15
1
0
linux 下 tomcat 一天挂掉几次!百度几天了,求支招,谢谢。

挂掉前的日志如下: Jun 3, 2014 11:17:05 AM org.apache.coyote.http11.AbstractHttp11Processor process SEVERE: Error processing request java.lang.IllegalArgumentException: Control ......

Sagar
2014/06/04
25.7K
13

没有更多内容

加载失败,请刷新页面

加载更多

线程池总结

1、主要参数说明 corepoolsize核心线程数、maxpoolsize最大线程数、keepalivetime闲置线程收回时间设置、workQueue工作队列(SynchronousQueue、LinkedBlockingQueue、ArrayListBlockingQueu...

青菜番茄h
16分钟前
4
0
Linux 下防火墙开启端口

1. 查看系统防火墙状态(running 表示开启运行状态) firewall-cmd --state 开启防火墙:systemctl start firewalld.service 关闭防火墙:systemctl stop firewalld.service 2. 开启端口外网访...

newdengs
19分钟前
4
0
一文看懂 K8s 日志系统设计和实践

作者 | 元乙 阿里云存储服务技术专家 导读:上一篇文章《6 个 K8s 日志系统建设中的典型问题,你遇到过几个?》中我们介绍了为什么需要一个日志系统、为什么云原生下的日志系统如此重要以及云...

阿里巴巴云原生
20分钟前
3
0
2019上海会议还有哪些召开,11月及12月的互联网技术类等大会?

2019年还剩下40多天的时候,上海有还有哪些会议召开呢?让我们跟随活动家官网的展示,看看今年还剩下哪些会议可以去参加! 上海2019年11月至12月会议列表清单 技术/互联网/通信/区块链 类 20...

活动家峰会
22分钟前
3
0
2019最新数据分析软件PASS&NVIVO视频教程合集

还在为数据繁杂而困扰吗? 还在为不知道怎么提炼有价值的数据而焦躁吗? 别担心,解决的办法来了!本文就为大家介绍两款数据分析的实用软件。当然介绍软件的同时,更有两款软件最全的视频教程...

yuyuyuyo
23分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部