我正在尝试在我的应用程序中实现会话到期。我遵循 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的帮助下,我可以看到创建了一个新会话,并且 request.getSession(false) 在导航新 jsp 页面时返回新创建的会话(但在前两种情况下, request.getSession(false) 返回 null )。
谁能让我知道我在做什么可以吗?我现在应该以什么方式进行?