发表于: 2017-06-28 09:46:09

2 1102


今日完成:

基本完成任务5(JSP页面有点问题)

学会打日志



明日计划:

调好页面,开始任务6


收获:

昨天报错cookie里含有非法字符,根据RFC 2109中的规定,在Cookie中只能包含ASCII的编码,不能有中文和斜杠。后来取到加密后的值,发现里边有百分号

2017-06-29 08:37:05,253 [qtp1148735023-27] ERROR [com.ptteng.login.controller.HomeController] - cookie:ezRAsUC9T6R4TEMMDImD2%2F65WbfUZC%2FL%0D%0A

解决Base64报错的方法。使用URLEncoder.encode转换一下就可以了,这个方法其实早在网上找到里,但是不知道怎么实现,今天百度到另外一篇文章才解决掉http://blog.csdn.net/liulong547026741/article/details/11553923

String token = id + "|" + System.currentTimeMillis();
byte[] bytes = DESUtil.desCrypto(token, "12345678");
String results = Base64.encodeBase64String(bytes);
Cookie cookie = new Cookie("token", URLEncoder.encode(results, "UTF-8"));

另外一种解决方法。创建cookie时直接给它一个值,不经过任何转换,可以解决这个bug。把值转换成16进制字符串再赋给cookie应该是更安全点吧。

HttpSession

HttpServletRequest.getSession特性

HttpSession session =request.getSession();

该操作会查询浏览器中是否有session对象,

如果没有就创建一个新的session对象

如果有,就取出session对象

HttpSession session = request.getSession(boolean);

booleantrue时,和request.getSession()一样

booleanfalse时,只查询,没有查到,返回null


session.setAttribute(“sessionName”,Object)

用来设置session值的,sessionName是名称,object是要保存的对象,session.getAttribute”sessionName”)用来得到对应名称的session的值,即得到object对象



request.getContextPath()  返回站点的根目录

request.getRealpath("/")得到的是实际的物理路径,也就是你的项目所在服务器中的路径

request.getScheme() 等到的是协议名称,默认是http

request.getServerName() 得到的是在服务器的配置文件中配置的服务器名称 比如:localhost .baidu.com 等等

request.getServerPort() 得到的是服务器的配置文件中配置的端口号 比如 8080等等


使用拦截器拦截后页面变成这样里


问题: 

任务五弄了好久,已经怀疑人生


时间去哪了

6.28

0820-0850洗漱,吃饭

0850-0910整理日报

0910-0930昨天的bug突然想到另一种解决办法,不用转换

0930-1200写拦截器(未完成)

1200-1240吃饭

1300-1420休息

1430-1810继续写拦截器

1810-1900吃饭

1900-2000调页面

2000-2035师兄讲小课堂

2040-0130代码写完了,JSP页面出不来





返回列表 返回列表
评论

    分享到