spring中session管理

来源:互联网 发布:ps美工字体打包下载 编辑:程序博客网 时间:2024/06/01 09:42

假设:在用户登录系统一段时间没有操作后,session失效,如果这时用户有操作时应该跳转到登录页面要求重新登录。

一般解决方法:

(1)用户首次登录成功时,将用户对象存入session,如 session.setAttibute("loginUser", user);


(2)定义拦截器,对于所有关于某中url请求进行拦截,然后获取loginUser的对象,如果不存在,那么session过期:

[java] view plaincopy
  1. import org.springframework.stereotype.Repository;  
  2. import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;  
  3.   
  4. @Repository  
  5. public class LoginInterceptor extends HandlerInterceptorAdapter {  
  6.     @Override   
  7.     public boolean preHandle(HttpServletRequest request,   
  8.         HttpServletResponse response, Object handler) throws Exception {  
  9.         Object obj = request.getSession().getAttribute("loginUser");  
  10.         if(obj==null){  
  11.             request.getRequestDispatcher("/login.jsp").forward(request, response);   
  12.         return false;  
  13.         }  
  14.         else{  
  15.             return super.preHandle(request, response, handler);  
  16.         }  
  17.     }  
  18. }  

如果发现session失效,将会跳转到login.jsp要求重新登录。


(3)配置拦截器:

[html] view plaincopy
  1. <mvc:interceptors>  
  2.     <mvc:interceptor>  
  3.         <mvc:mapping path="/*.html"/>  
  4.         <bean class="com.xx.xxx.util.LoginInterceptor" />  
  5.     </mvc:interceptor>  
  6. </mvc:interceptors>  
这样,当有以*.html结尾的请求时,将首先被拦截器LoginInterceptor拦截。
0 0
原创粉丝点击