1. 程式人生 > >springmvc控制登入使用者session失效後跳轉登入頁面

springmvc控制登入使用者session失效後跳轉登入頁面

第一步,配置 web.xml

[html] view plain copy   print?
  1. <spanstyle="font-size:18px;"><session-config>
  2.     <session-timeout>15</session-timeout>
  3.   </session-config>
  4. </span>

第二步,配置spring-mvc.xml
[html] view plain copy   print?
  1. <spanstyle="font-size:18px;"
    ><!-- Session失效攔截 -->
  2.     <mvc:interceptors>
  3.         <!-- 定義攔截器 -->
  4.          <mvc:interceptor>
  5.                 <!-- 匹配的是url路徑, 如果不配置或/**,將攔截所有的Controller -->
  6.                 <mvc:mappingpath="/**"/>
  7.                 <!-- 不需要攔截的地址 -->
  8.                 <mvc:exclude-mapping
    path="/login.do"/>
  9.                 <beanclass="com.cm.contract.controller.annotation.GEISSSessionTimeoutInterceptor"></bean>
  10.         </mvc:interceptor>
  11.     </mvc:interceptors>
  12. </span>

第三步,寫攔截器SystemSessionInterceptor 方法

[java] view plain copy   print?
  1. publicclass
     SystemSessionInterceptor implements HandlerInterceptor {  
  2.     privatestaticfinal String LOGIN_URL="/jsp/sessionrun.jsp";  
  3.     @Override
  4.     publicvoid postHandle(HttpServletRequest request,  
  5.             HttpServletResponse response, Object handler,  
  6.             ModelAndView modelAndView) throws Exception {  
  7.     }  
  8.     @Override
  9.     publicvoid afterCompletion(HttpServletRequest request,  
  10.             HttpServletResponse response, Object handler, Exception ex)  
  11.             throws Exception {  
  12.     }  
  13.     @Override
  14.     publicboolean preHandle(HttpServletRequest request, HttpServletResponse response,  
  15.             Object handler) throws Exception {  
  16.         HttpSession session=request.getSession(true);  
  17.         //session中獲取使用者名稱資訊
  18.         Object obj = session.getAttribute(CMConstant.LOGINUSER);  
  19.         if (obj==null||"".equals(obj.toString())) {  
  20.             response.sendRedirect(request.getSession().getServletContext().getContextPath()+LOGIN_URL;
  21.                  returnfalse;
  22.            }
  23.            returntrue;
  24.      }
第五步,配置友情提示頁面sessionrun.jsp [javascript] view plain copy   print?
  1. <span style="white-space:pre">    </span><body>  
  2.     <SCRIPT language="JavaScript">  
  3.         alert("使用者已在其他地方登陸,請重新登入。");  
  4.         setTimeout(function () {  
  5.             window.top.location.href="<%=path%>/index.jsp";  
  6.         },2000);  
  7.     </script>  
  8.     </body>  
到此 springMvc攔截session失效後處理方式結束。點選開啟連結