15分钟内免登录
登录成功之后,发现再次登录时,还需要请求登录方法,有没有在规定的时间内,不需要点击登录的时候,自动登录的呢?
15分钟内免登录实现原理:用户登录成功后,将用户信息保存在 Session
中,并设置失效时间为15分钟,是指15分钟内用户没有操作浏览器,如果15分钟内操作浏览器后重新计时。用户退出登录则删除 Session
保存的信息。
实现过程主要包括以下6步:
1.在 web.xml 中 配置 Session 的失效时间:
<!-- session配置 -->
<session-config>
<session-timeout>15</session-timeout>
</session-config>
2.在 后台登录 映射方法内,用户登录成功后,在 return 语句之前将用户信息保存到 Session 中:
getSession().setAttribute( "user",user );
3.增加 /login 映射 URL 方法:
@RequestMapping("/login")
public String login(Model model) {
// 取出session里面的user
User user = (User)getSession().getAttribute("user");
// 判断 user是否为null 如果为null 重新登录,否则 不需要再次登录
if(user!=null){
return "/personal/personal";
}
return "../login";
}
获取 Session 中的User,如果 User 不为 null 则直接跳转到个人主页,如果为 null,则跳转到 login.jsp 登录页面。
4.修改 index.jsp 页面的登录链接:
<a href="/login">点我登录</a>
5.重新启动 Tomcat,点击“点我登录”链接,输入用户名密码后跳转到个人主页。
6.重新访问:http://localhost:8080/ , 再次点击“点我登录”链接,发现直接跳转到了个人主页。15分钟内免登录成功!