发表于: 2017-06-27 14:51:35
1 1196
今天完成的事情:
今天一直在解决bug,没有进度
明天计划的事情:
完成任务5开始任务6
遇到的问题:
创建cookie时使用
Cookie cookie = new Cookie("cookie", Base64.encodeBase64String(bytes)
会报一个cookie里边有违非法字符的错误,
[WARNING]
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: Illegal character in cookie value
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:751)
但是我看赵宇同样的代码就没事,所以一直在找这个问题的原因。百度说是cookie里边有中文的原因,我的没中文,pass。又有说是cookie长度问题,试了下cookie里边只放一个id,还是不行。
后来打里断点用debug跑了一遍发现在response里一直有这段代码,看别人的就没有这个东西,百度后只是说是一个请求报文,没找到解决办法
后来实在没办法不用base64转换,使用
Cookie cookie = new Cookie("cookie", TypeUtil.bytesToHexString(bytes));
把字节数组转换为16进制字符串,解决这个问题了
收获:
cookie.setpath的作用:
path表示cookie所在的目录,asp.net默认为/,就是根目录。在同一个服务器上有目录如下:/test/,/test/cd/,/test/dd/,现设一个cookie1的path为/test/,cookie2的path为/test/cd/,那么test下的所有页面都可以访问到cookie1,而/test/和/test/dd/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。
时间去哪了:
6.27
08:20-08:50洗漱
08:50-10:00复习昨天知识点
10:00-12:00写代码
12:00-12:48吃饭
12:50-13:50休息
14:00-18:00找bug原因,报错:
Caused by:
java.lang.IllegalArgumentException: Illegal character in cookie value
18:00-19:00吃饭
19:10-19:50浏览了会儿网页
19:54-20:20师兄dome评审,没通过
20:30-24:00找bug原因
评论