我将应用程序的 web.xml 中的会话超时设置为
<session-config>
<session-timeout> 1 </session-timeout>
</session-config>
所以现在会话到期后如果用户尝试进行某些操作,我想显示一条消息“session expired relogin”。如何在Java中这样做?
答案 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(){}
}