会话超时后显示消息

时间:2010-02-04 09:22:13

标签: java session

我将应用程序的 web.xml 中的会话超时设置为

<session-config>
    <session-timeout> 1 </session-timeout>
</session-config> 

所以现在会话到期后如果用户尝试进行某些操作,我想显示一条消息“session expired relogin”。如何在Java中这样做?

1 个答案:

答案 0 :(得分:1)

我通过在Google中输入以下内容找到了许多此问题的解决方案:

“Java会话过期消息”

以下是从网络上复制的一个解决方案:

  

创建SessionTimeout.java过滤器   并为过滤器分配一个/app/*.jsp   web.xml文件中的模式。这个   将导致我的过滤器被调用   每个请求(即用户点击时)   30分钟后的按钮)。排除   来自的主页面(login / login.jsp)   这个过滤器可以是一个新的会话   成立。过滤器的代码   非常简单:

public class SessionTimeout implements Filter{
   RequestDispatcher rd = null;

  public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
   throws IOException, ServletException{
      HttpServletRequest req = (HttpServletRequest)request;
      HttpSession session = req.getSession();

   // New Session so forward to login.jsp
   if (session.isNew()){
     requestDispatcher = request.getRequestDispatcher("/login/login.jsp");
     requestDispatcher.forward(request, response);
  }

  // Not a new session so continue to the requested resource
   else{
      filterChain.doFilter(request, response);
  }
}

public void init(filterConfig arg) throws ServletException{}
public void destroy(){}

}