如何在spring mvc 3.2中處理會話超時,例如30分鐘後它應該重定向到index.html。處理會話超時?
嘗試使用攔截器,但在web.xml中指定的會話超時值被忽略。
爲spring-servlet.xml
<mvc:interceptors>
<bean class="com.server.utils.AuthenticationTokenInterceptor" />
</mvc:interceptors>
的web.xml
<session-config>
<session-timeout>30</session-timeout>
</session-config>
@Override
public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {
try
{System.out.println("Inside Interceptor");
HttpSession session = request.getSession();
String authToken = (String) session.getAttribute("userId");
System.out.println("Interceptor invoked For Auth token");
if(authToken==null || authToken.equals(""))
{
System.out.println("Auth Token time Out");
response.sendRedirect(servletContext.getContextPath()+"/login");
return false;
}
else
{
return true;
}
}catch(Exception ex)
{
ex.getMessage();
response.sendRedirect(servletContext.getContextPath()+"/login");
return false;
}
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
那麼究竟發生了什麼呢?用戶發出請求,但攔截器不被調用?或者服務器沒有發出請求,但你希望頁面自動被重定向到/ login?什麼?描述你的場景。 –
問題是攔截器被調用。但服務器不提出請求。 – user2692100
描述你的場景。服務器收到請求,但沒有發出請求。我還是不明白。 –