发表于: 2017-10-13 23:42:01
1 733
今天完成的事
学习了session的操作,
使用session完成了免登录
先进行账户密码验证,再把信息存进session
//验证账户密码,如果正确就创建cookie并通过登录
boolean loginType = loginService.login(account,password);
//是true会通过判定并生成cookie
if (loginType) {
//得到session 如果没有就自动创建
HttpSession session = request.getSession();
//往session中储存用户信息
session.setAttribute("user",userInfo);
//实例化一个cookie储存sessionID
CookieUtils.addCookie(response,"sessionId",session.getId(),"/",maxAge);
log.info("sessionId为:"+session.getId());
response.setHeader("refresh", "0;url=/a/home");
}
else {
response.setHeader("refresh", "0;url=/a/login/error");
}
进入登陆页面判定session中的信息
String name = "sessionId";
String s1 = null ;
String s2 = null ;
HttpSession session = request.getSession();
//如果session中有用户信息就取出
if(session.getAttribute("user")!=null){
//将获取到的值赋值给mes变量
String mes = session.getAttribute("user").toString();//强制转换成String
log.info("测试:"+mes);
//以逗号拆分储存着账户密码的值为一个数组
String[] array = mes.split(",");
s1 = array[0];
s2 = array[1];
}
else {return "/jsp/login";}
log.info("拆分后的cookie的值:"+s1+"-"+s2);
//把两个变量使用登录验证方法进行验证
boolean loginType = loginService.login(s1,s2);
if (loginType) {
response.setHeader("refresh", "0;url=/a/home");
}
else {
return "/common/loginMistake";}
return "";
在学习写session的过程中学到了一个语句
response.setHeader("refresh", "0;url=/a/home");
解决了我昨天遇到的免登录跳转到home页面只是跳到了JSP页面,没有动态资源的问题
其中 0 代表刷新时间 0代表不刷新
了解了一下怎么通过sessionId获得session:主要就是通过遍历sessionId,判定ID来取得session
遇到的问题:
这里之前使用的是response.setHeader("refresh", "0;url=/a/login");
出现了无限刷新 死循环,原因是每次载入这个url都会再次执行方法,相同的条件会再次跳转到这个url,所以造成了死循环
今天又遇到了空指针错误
把这个语句移到从if外移动到if内就OK了
收获:学习了session的使用,response.setHeader语句,session免登录
明天计划:MD5加密和DES加密 得加快速度了
任务进度:任务五步骤一
任务开始时间:2017-10-2
预计demo时间:2017-10-10
延期5天至15号
禅道:http://task.ptteng.com/zentao/project-task-276.html
评论