详解springmvc控制登录用户session失效后跳转登录页面
springmvc控制登录用户session失效后跳转登录页面,废话不多少了,具体如下:
第一步,配置web.xml
<session-config> <session-timeout>15</session-timeout> </session-config>
第二步,配置spring-mvc.xml
<!--Session失效拦截--> <mvc:interceptors> <!--定义拦截器--> <mvc:interceptor> <!--匹配的是url路径,如果不配置或/**,将拦截所有的Controller--> <mvc:mappingpath="/**"/> <!--不需要拦截的地址--> <mvc:exclude-mappingpath="/login.do"/> <beanclass="com.cm.contract.controller.annotation.GEISSSessionTimeoutInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
第三步,写拦截器SystemSessionInterceptor方法
publicclassSystemSessionInterceptorimplementsHandlerInterceptor{ privatestaticfinalStringLOGIN_URL="/jsp/sessionrun.jsp"; @Override publicvoidpostHandle(HttpServletRequestrequest, HttpServletResponseresponse,Objecthandler, ModelAndViewmodelAndView)throwsException{ } @Override publicvoidafterCompletion(HttpServletRequestrequest, HttpServletResponseresponse,Objecthandler,Exceptionex) throwsException{ } @Override publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse, Objecthandler)throwsException{ HttpSessionsession=request.getSession(true); //session中获取用户名信息 Objectobj=session.getAttribute(CMConstant.LOGINUSER); if(obj==null||"".equals(obj.toString())){ response.sendRedirect(request.getSession().getServletContext().getContextPath()+LOGIN_URL; returnfalse; } returntrue; }
第五步,配置友情提示页面sessionrun.jsp
<body> <SCRIPTlanguage="JavaScript"> alert("用户已在其他地方登陆,请重新登录。"); setTimeout(function(){ window.top.location.href="<%=path%>/index.jsp"; },2000); </script> </body>
到此springMvc拦截session失效后处理方式结束。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。