admin 管理员组文章数量: 888526
使用Session+Cookie实现7天免登录
session存在于服务器端,cookie存在于浏览器端。
如果我们在服务器端使用Session保存用户信息,那么在用户登录某个页面时,访问服务器的时候,就会生成一个cookie返回到浏览器端,如果没有设置cookie的过期时间,浏览器关闭的时候cookie失效。
关闭浏览器重新打开这个网站,就要重新登录,这是用户不愿意看到的。
在浏览器没有关闭的情况下,用户访问服务器,是不需要频繁登录的。服务器是通过浏览器携带的cookie找到对应的session对象。具体就是根据cookie的JSESSIONID对应的值,找到服务器得session。
具体的原理如图:
所以我们可以设置cookie得过期时间,就算浏览器关闭,cookie也不会失效。
Cookie cookie = new Cookie("JSESSIONID", req.getSession().getId());
cookie.setMaxAge(60 * 60 * 24 * 7);
session.setMaxInactiveInterval(60 * 60 * 24 * 7);
//默认情况下,如果不设置Cookie的path,默认是“/项目名/当前路径的上一层地址”
//我这里省略,因为我在http://localhost:8080/userLogin 根路径下,直接绑定了根路径
resp.addCookie(cookie);
这样当我们关闭浏览器,如果cookie没有过期,我们就不需要登录,因为浏览器会携带cookie发送给服务器,服务器帮我们解析找到session,判断用户身份。
本文标签: 使用SessionCookie实现7天免登录
版权声明:本文标题:使用Session+Cookie实现7天免登录 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1688274869h200264.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论