Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java request.getSession()始终返回新会话id,尽管使用URL重写_Java_Session_Servlets - Fatal编程技术网

Java request.getSession()始终返回新会话id,尽管使用URL重写

Java request.getSession()始终返回新会话id,尽管使用URL重写,java,session,servlets,Java,Session,Servlets,我正在使用Firefox浏览器,禁用了Cookie。现在,对于生成会话id时的第一个点击,我可以看到一个新的会话id附加到URL-38E838B8D401E9E03DF93D5DFC10260C。但是在下一个请求中,会再次生成一个新id——A1C93B0A9B28E4BDCD9D5B0DA3793D15,从而再次创建一个全新的会话。我正在使用encodeRedirectURL()重写URL。这是我的密码: Servlet Code: HttpSession session = req.getSe

我正在使用Firefox浏览器,禁用了Cookie。现在,对于生成会话id时的第一个点击,我可以看到一个新的会话id附加到URL-38E838B8D401E9E03DF93D5DFC10260C。但是在下一个请求中,会再次生成一个新id——A1C93B0A9B28E4BDCD9D5B0DA3793D15,从而再次创建一个全新的会话。我正在使用encodeRedirectURL()重写URL。这是我的密码:

Servlet Code:
HttpSession session = req.getSession();
if(session.isNew()){//this is always returning new
   System.out.println("New Session created");
}
String contextPath = req.getContextPath();
resp.sendRedirect(resp.encodeRedirectURL(contextPath+"/chapter6/Authenticated2.jsp"));
在Authenticated2.jsp上,我可以看到附加到URL的jsession id。但是在这个jsp发出的点击submit按钮的后续请求中,当流到达Servlet代码时,它会生成一个新的会话id。那么URL重写是否应该有所不同呢


建议

确保会话ID包含在每个URL中。如果JSP中有一个URL缺少会话ID,会话ID将不会报告回servlet,servlet将生成一个新的会话ID。只要包含会话ID,就只能识别和维护会话

在servlet中,始终使用以下两种方法添加会话ID:


在JSP中,您可以使用类似于标记的东西。或者,您可以手动获取会话ID并附加
;jsessionid=xxx
位于URL末尾,查询字符串之前。

在生成表单操作的URL时是否使用URL重写?这是需要在应用程序生成的每个URL上执行的操作。给我们看看表格的代码。你指出的是正确的。servlet中的所有内容都是正确的。jsp中的操作实际上需要进行编码,就像servlet中的所有内容都是正确的一样。jsp中的操作实际上需要像这样编码。谢谢你的关注。