0

我正在尝试在我的应用程序中实现会话到期。我遵循 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 )。

谁能让我知道我在做什么可以吗?我现在应该以什么方式进行?

4

1 回答 1

1

您可以将以下行添加到您的 jsp 文件中:

<%@ page session="false" %>

它将指示 servlet 容器在提供 jsp 时不要创建会话。

于 2012-11-30T14:24:19.477 回答