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);
}
}爲什麼當新的cookie被添加到隨後的響應中時,Cookie哈希碼會發生變化?
大家好,
我上面的代碼,在理想情況下它是應該做以下
的第一個要求,因爲就沒有PegaRULES的cookie,它應該添加一個在響應
從第二個請求的病房,相同的cookie應打印在瀏覽器(我的意思是餅乾的ClassName @哈希碼像Cookie @ Ac35c)
我的意見
對於第一個要求,空白頁(如預期),並在響應中的Cookie存在
的第二個請求,餅乾@ af33d(說)
所有後續請求,它不應該改變(即同樣的Cookie @ af33d應該打印在瀏覽器上) 但是,我看到每個後續請求的價值都發生了變化(我每次刷新瀏覽器以觸發後續請求)
僅供參考,我正在使用Fiddler跟蹤請求和響應
並且我在第二次請求對病房的後續響應中沒有看到任何cookie(這和預期的一樣)。我更關心瀏覽器上打印的值,每當我更改時刷新瀏覽器(即發出新請求)
PS:與IE和Google Chrome的行爲相同
爲什麼每個請求都會得到一個新的Cookie實例? 如果你看看那裏的邏輯,它應該只發送一次cookie,並以這種方式工作。 我看到只有一個cookie作爲第一個響應的一部分發送,並且隨後的響應不包含任何.. 我在談論這個特定情況時,應該沒有新的實例對嗎? – JavaHopper