An invalid character [32] was present in the Cookie value(cookie中的空格问题)

睡觉前遇bug,真是个好兆头。。。


问题:
代码:

 Date date=new Date();
 SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
 String time = sdf.format(date);
 Cookie cookie = new Cookie("Time", time);
 cookie.setMaxAge(60*60);
 response.addCookie(cookie);

错误:
An invalid character [32] was present in the Cookie value(cookie中的空格问题)
原因:
发送的Value存在空格,tomcat 8不支持特殊符号

解决:
使用URL编码发送

String time = sdf.format(date);
time= URLEncoder.encode(time,"utf-8");
Cookie cookie = new Cookie("Time", time);

接收时也用其解码
String value = cookie.getValue();
value= URLDecoder.decode(value,"utf-8");
上一篇:mvc 学习笔记


下一篇:有关于url地址的两种模式