簡體   English   中英

如果瀏覽器存儲了cookie和jsessionid,則在URL中傳遞jsessionid

[英]jsessionid passed in url if cookie and jsessionid stored by browser

我的Web應用程序在其他瀏覽器和計算機中使用cookie基本會話管理時,正在通過URL傳遞jsessionid,這是理想的行為。

為了解決此問題,我從區域設置存儲中刪除了存儲的cookie和jsessionid,然后開始使用cookie基本會話管理而不是URL重寫。

有人可以解釋為什么會這樣嗎,存儲的cookie和jsessionid會阻止應​​用程序使用cookie基礎管理。我只需要在應用程序中執行cookie基礎會話管理即可。

環境:

Chrome瀏覽器,Struts 2,Tomcat 7,Java 8

預先感謝。

jsessionid是Java應用程序/ Web服務器用來跟蹤用戶會話的特殊cookie(以識別用戶是舊用戶,例如已經登錄的用戶)。 對於對服務器的第一個請求,瀏覽器將不會發送任何cookie。 因此,服務器不知道客戶端是否支持cookie。 對於該服務器,在cookie和URL(URL重寫)中發送jsessionid 但是對於接下來的下一個請求,cookie將可用(從上一個請求中,瀏覽器將存儲服務器發送的cookie,並且對於相同的上下文,它現在知道已經具有cookie,因此將其發送)。 這就是為什么對於下一個請求,您在URL中看不到jsessionid的原因。 要強制服務器僅使用基於COOKIE的跟蹤,您將在web.xml添加以下片段

<session-config>
  <!-- Only cookie based tracking -->
  <tracking-mode>COOKIE</tracking-mode>
</session-config>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM