Java 当在后续响应中添加新cookie时,为什么cookie哈希代码会发生变化?
} 各位好, 我有上面的代码,理想情况下它应该执行以下操作 对于第一个请求,因为没有PegaRULES cookie,所以应该在响应中添加一个 从沃兹的第二次请求开始,相同的cookie应该打印在浏览器上,我是说ClassName@hashcode饼干状的Cookie@Ac35c 我的观察 对于第一个请求,按预期显示空白页,并且响应中存在cookie 第二次请求,Cookie@af33d说 对于所有后续请求,它不应更改,即相同Cookie@af33d应在浏览器上打印 但是,我看到每个后续请求的值都发生了更改,我每次都刷新浏览器以触发后续请求 仅供参考,我正在使用Fiddler跟踪请求和响应 我在沃兹的第二次请求的后续响应中没有看到任何cookie,这是意料之中的。。我更关心的是打印在浏览器上的值,它在每次刷新浏览器(即触发新请求)时都会更改 PS:IE和Google Chrome的行为也一样,根据,javax.servlet.http.Cookieclass不会覆盖ObjecthashCode,因此其实例的哈希代码不是基于其上设置的值,而是或多或少随机分配给每个实例Java 当在后续响应中添加新cookie时,为什么cookie哈希代码会发生变化?,java,http,jakarta-ee,servlets,cookies,Java,Http,Jakarta Ee,Servlets,Cookies,} 各位好, 我有上面的代码,理想情况下它应该执行以下操作 对于第一个请求,因为没有PegaRULES cookie,所以应该在响应中添加一个 从沃兹的第二次请求开始,相同的cookie应该打印在浏览器上,我是说ClassName@hashcode饼干状的Cookie@Ac35c 我的观察 对于第一个请求,按预期显示空白页,并且响应中存在cookie 第二次请求,Cookie@af33d说 对于所有后续请求,它不应更改,即相同Cookie@af33d应在浏览器上打印 但是,我看到每个后续请求的值
由于每个请求都会获得一个新的Cookie实例,因此每次的结果都是不同的哈希代码。为什么每个请求都会获得一个新的Cookie实例?如果你看一下这里的逻辑,它应该只发送cookie一次,并且是这样工作的。我只看到一个cookie发送作为第一个响应的一部分,后续响应不包含任何。。我说的是这个具体的案例,应该没有新的案例吧?
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/html");
Cookie[] cookies = request.getCookies();
if(null != cookies) {
for(Cookie cookie : cookies) {
out.println(cookie);
out.println("<br>");
}
} else {
//Set the Cookie in response, so that you can retrieve this in subsequent requests
Cookie PegaRULES = new Cookie("PegaRULES", "This is PegaRULES Cookie");
response.addCookie(PegaRULES);
}