发表于: 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





返回列表 返回列表
评论

    分享到