我正在尝试在我的应用程序中实现会话到期。我遵循MVC模式。我在web.xml文件中设置了超时。 这是我的会话到期实现
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
HttpSession session = request.getSession(false);
if (session != null)
{
// controller code
}
else
response.sendRedirect("JSP/HomePage.jsp?message=Your Session Has Expired");
}
AFAIK,如果请求的会话不是已创建的会话,request.getSession(false)将返回一个空对象。
以上代码在(即重定向到HomePage.jsp)时效果很好:
1.我在任何jsp页面中提交一些表格(会话结束后)
2.我刷新一些页面(会话过期后)
现在我的问题是,(在会话过期后)当我在一个jsp页面中点击锚标记链接时,它导航到一些新的jsp页面,在那里我做了一些表单请求,代码将不会转移到 HomePage.jsp 即可。
在 HttpListener 的帮助下,我可以看到创建了一个新会话,并且当新的jsp页面被导航时,request.getSession(false)返回新创建的会话(但是在前两个case,request.getSession(false)返回null)。
任何人都可以让我知道我在做什么好吗?我现在该怎么办?
答案 0 :(得分:1)
您可以将以下行添加到jsp文件中:
<%@ page session="false" %>
它将指示servlet容器不在jsp服务时创建会话。