会话到期实施问题

时间:2012-11-30 13:42:47

标签: jsp session session-cookies

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

任何人都可以让我知道我在做什么好吗?我现在该怎么办?

1 个答案:

答案 0 :(得分:1)

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

<%@ page session="false" %>

它将指示servlet容器在jsp服务时创建会话。