发表于: 2017-07-03 14:38:15
1 1223
今天完成的事:
把task5剩余的部分拦截器完成了,task6还有点尾巴没做完。
明日计划:
把task6扫尾,开始一边看复盘项目,一边复习下面的任务。
遇到的问题:
1,使用cookie时,其中的登录代码:
//其次判断username与password是否匹配
if (userService.getUser(username, md5) != null) {
User user = userService.getUserByName(username);
Long id = user.getId();
//将用户id和登录时间放入token中加密后再放入cookie中
String token = id +"="+System.currentTimeMillis();
byte[] bytes = DESUtil.desCrypto(token, "12345678");
Cookie cookie = new Cookie("token", URLEncoder.encode(Base64.encodeBase64String(bytes), "UTF-8"));
// Cookie cookie = new Cookie("token", Base64.encodeBase64String(bytes));
cookie.setMaxAge(7 * 24 * 60 * 60); //设置cookie有效时间7天
cookie.setPath("/"); //设置cookie作用路径
System.out.println("新生成的cookie和其MaxAge:" + cookie.getName() + "--->" + cookie.getMaxAge());
log.info("cookie----->" + cookie.getValue());
//将生成的cookie装入response发送给客户端浏览器
response.addCookie(cookie);
一开始我是用的有下划线的代码,然后运行时报错:
An invalid character [13] was present in the Cookie value
有非法字符,通过打日志看到是cookie里面有两个“==”,尝试了很久没解决掉。所以改用了上面代码中加粗的部分,一开始还是不行,后面看杨舜代码结合着session使用,就可以了。
2,拦截器把静态资源也给拦截了。。。明明配了
<!-- 静态页面访问 -->
<mvc:default-servlet-handler />
我还是再看看吧。
收获:
虽然是复习,但是每次都会有不一样的问题遇到,程序员就是在解决问题中成长的。
评论