自动登录的思路

第一次登录,如果勾选了自动登录,会创建一个Cookie写到客户端(response.addCookie),否则不创建。

(Cookie的path和name决定了是否是相同cookie),并将信息写入session

第二次会话访问主页,被Filter拦截,判断你的Cookie是否有登录信息,有就拿出替你登录,信息写入session。没有则不做操作;

如果又执行登录时,没有点击自动登录,记得清除Cookie(maxage设置为0)。

 

注意:Filter的条件拦截,fileter 必须不对用户的登录操作拦截, filter必须不对session中有用户信息(已经登录的状态做拦截)。

这个Filter只是对用户登录操作时选择了自动登录了,所以在客户再次会话时,有Cookie信息第一次带来,替客户做了登录操作,接下来的用户浏览,它一概不做工作了。

 

 

注意一些概念问题

Cookie 是 客户端 访问 服务端 的钥匙 。 决定是否可以自动登录、、

Session 每次关闭浏览器,再次访问 , Jsessionid 就不相同了, 所以 在Filter中需要 帮你登录, 帮你写入session。

拦截的 性能 问题,只在客户端有Cookie , 不存在session(再次会话),且不能拦截登录操作(控制request.getRequestURI),否则,如果在登录状态下执行了两次登录,浪费资源.

posted @ 2017-09-20 23:35  Soe  阅读(232)  评论(0编辑  收藏  举报