发表于: 2016-12-05 22:34:56
1 2046
今天完成的事情:
1)写第二个拦截器,对/u/**路径的请求设置登录方可见的权限,这里感觉简单点,在springmvc配置中配置好拦截/u/**,代码如下
2)第一个登录认证的拦截器逻辑存在问题,重新设计
原来的逻辑:
修改后逻辑:
3)写退出逻辑,需要删除对应cookie,删除名为user的session,然后重定向回主页
4)设置两个viewResolver,一个处理tiles的,一个处理普通视图响应的,tiles的优先级大于普通的
5)任务5完成,过两周再review
明天计划的事情:
了解任务8需求
遇到的问题:
暂无
收获:
1)response.sendRedirect()后的代码继续执行,执行完毕再跳转
2)request.getServletPath()可以获取当前请求路径
3)刚刚翻网页,又看到了session,感觉对它的概念又清晰了点,它也属于一种上下文。
session创建以后,就存在服务器里,先不管它是什么样的存在,也不管它存在哪里,就把它想成一个箱子,把服务器想成屋子;
一个人进屋,就把自己的箱子放在屋子里,就是一个用户上线;
箱子里可以放很多东西,放N多对象,对象有绑定名,这是session.Attribute("","");
箱子有编号,就是sessionID,用户拿着单据,上面写着JSESSIONID=sessionID,这个单据是cookie,而且设置了关浏览器就销毁;
同时这个箱子放在那里太占地方,规定只能放30分钟,超时了就清除,有的人有门路可以放的时间长一点,这就是session.setMaxInactiveInterval(),这是session超时;
当A用户在30分钟内关掉了浏览器,屋子的管理员会认为他不要箱子了,就直接清除了箱子,单据也被浏览器清除了;
如果B用户凭关系拜托屋子管理员给他保存箱子10天,当他关掉浏览器,单据会被清除,等他再上线,没了单据,那个箱子虽然还在那里摆着,但管理员不会给他;
如果C用户也凭关系拜托屋子管理员给他保存箱子10天,然后自己把单据抄了一份,比如hahah=sessionID,就是一个新cookie,然后设置保存30天,当他关掉浏览器,虽然单据原件已经被销毁,但是他有个备份,于是凭备份单据拿到了自己的箱子;
不管进行了几次请求,几次响应,只要原来的session跟sessionID还在,我们就能通过session拿到我们存储的东西,对象。也就是说,一般讲,30分钟内,从打开浏览器请求某个网站,到关掉浏览器,我们的session是可以通用的,不管进行了几次会话,都可以为我们提供记录信息的途径。
评论