如何在 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 {
}