在实际的应用场景中,单点登录的功能仍然非常重要。从逻辑上讲,我们不允许一个用户同时执行两个操作,下文是爱站技术频道小编介绍的关于SpringMVC拦截器实现监听session是否过期详解,一起去看看吧。
一、拦截器配置
二、拦截器编码
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object obj) throws Exception {
System.out.println("[AccessInterceptor]:preHandle执行");
HttpSession session = request.getSession();
ServletContext application = session.getServletContext();
if(application.getAttribute(session.getId()) == null){ //未登录
PrintWriter out = response.getWriter();
StringBuffer sb = new StringBuffer("
sb.append("alert(\"你的账号被挤掉,或者没有登录,或者页面已经过期,请重新登录\")");
sb.append("window.location.href='/user/logout';");
sb.append("");
out.print(sb.toString());
out.close();
return false;
}else{ //已经登录
return true;
}
}
三、总结
1.注意这里使用的拦截器是HandlerInterceptor,你的拦截器需要实现这个接口
2.在你的登录handler里面,要将session保存到application中,方便根据sessionId来判断是否存在session
3.sb.append("window.location.href='/user/logout';"); 这行代码是说,执行注销操作,在你的/user/logout 这个handler里面得把页面解析到登录页,方便重新登录
以上就是关于SpringMVC拦截器实现监听session是否过期详解,相信这些内容对你是非常有用的,建议你常来爱站技术频道学习吧!