spring中session管理
阿新 • • 發佈:2019-01-10
假設:在使用者登入系統一段時間沒有操作後,session失效,如果這時使用者有操作時應該跳轉到登入頁面要求重新登入。
一般解決方法:
(1)使用者首次登入成功時,將使用者物件存入session,如 session.setAttibute("loginUser", user);
(2)定義攔截器,對於所有關於某中url請求進行攔截,然後獲取loginUser的物件,如果不存在,那麼session過期:
- import org.springframework.stereotype.Repository;
-
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
- @Repository
- publicclass LoginInterceptor extends HandlerInterceptorAdapter {
- @Override
- publicboolean preHandle(HttpServletRequest request,
- HttpServletResponse response, Object handler) throws Exception {
- Object obj = request.getSession().getAttribute("loginUser");
-
if
- request.getRequestDispatcher("/login.jsp").forward(request, response);
- returnfalse;
- }
- else{
- returnsuper.preHandle(request, response, handler);
- }
- }
- }
如果發現session失效,將會跳轉到login.jsp要求重新登入。
(3)配置攔截器:-
<mvc:interceptors
- <mvc:interceptor>
- <mvc:mappingpath="/*.html"/>
- <beanclass="com.xx.xxx.util.LoginInterceptor"/>
- </mvc:interceptor>
- </mvc:interceptors>