不受欢迎的会话创建

时间:2012-02-07 01:14:52

标签: java jsp session servlets session-cookies

我有两个JSP页面:Login.jspMain.jsp

对于url模式/我有一个servlet来执行此操作:

HttpSession session = request.getSession(false);
if (session == null) {
    response.sendRedirect("Login.jsp");
} else {
    response.sendRedirect("Home.jsp");
}

截至目前,这两个JSP页面都是空的。

当我在浏览器中浏览localhost:8080/appname/时,它会按预期路由到Login.jsp。但是当我第二次尝试浏览它时,它会路由到Home.jsp

当我尝试调试时,session不为空,我可以在Chrome浏览器中找到JSESSIONID的Cookie。

我在其他任何地方都没有getSession()

有谁能解释一下这里发生了什么?

感谢。

2 个答案:

答案 0 :(得分:1)

JSP默认创建会话。如果您不想要会话,请添加

<%@ page session="false" %>

答案 1 :(得分:-1)

不仅是jsp,服务器上的任何请求都将启动会话。所以正在发生的事情是你第一次没有得到任何会话,但下次你得到了在之前的请求中创建的会话。

你能做的是: a)设置会话的一些属性,而不是检查会话检查属性,只有在用户登录后才会设置该属性。 b)您可以尝试每次无效会话。即使在验证用户时,也要确保会话无效,然后生成会话,然后设置会话属性。