【发布时间】:2014-03-25 03:54:50
【问题描述】:
我正在使用禁用 cookie 的 Firefox 浏览器。现在,对于生成会话 ID 时的第一次命中,我可以看到附加到 URL 的新会话 ID - 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发出的点击提交按钮的后续请求中,当流到Servlet代码时,它会生成一个新的会话ID。那么 URL 重写是否应该有所不同?
建议?
【问题讨论】:
-
在生成表单动作的 URL 时是否使用 URL 重写?这是需要对应用程序生成的每个 URL 执行的操作。向我们展示表单的代码。
-
您指出的是正确的。 servlet 中的所有内容都是正确的。 jsp 中的动作实际上需要像 这样编码