jsessionid介紹及怎么產生


Jsessionid就是sessionid;Tomcat容器中就是叫jsessionid。

瀏覽器第一次訪問服務器會在服務器端生成一個session,有一個sessionid和它對應。它存儲在服務器的內存中,tomcat的StandardManager類將session存儲在內存中,也可以持久化到文件等保存

客戶端只保存sessionid到cookie中,而不會保存session,session銷毀只能通過invalidate或超時,關掉瀏覽器並不會關閉session。


(1)、在server沒有關閉,並在session對象銷毀時間內,當客戶端再次來請求server端的servlet或jsp時, 將會將在第一次請求時生成的sessionId並附帶在請求信息頭中並向server端發送,server端收到sessionId后根據此 sessionId會去搜索server對應的session對象並直接返回這個session對象,此時不會重新去建立一個新的 session對象.

(2)、當server關閉(之前產生的session對象也就消亡了),或session對象過了其銷毀時間后, 瀏覽器窗口不關,並在本瀏覽器窗口再次去請求sever端的servlet和jsp時,此時同樣會將sessionId(server關閉或 session銷毀時生成的sessionId)發送到server端,server根據sessionId去找其對應的session對象,但此時 session對象已經不存在,此時會重新生成一個新的session對象,並生成新的sessionId並同樣將這個新生成的sessionId以響應報文的形式送到瀏覽器內存中,重新更新
cookie

(3)、當server沒有關閉,並session對象在其銷毀時間內,當請求一個jsp頁面回客戶端后, 關閉此瀏覽器窗口,此時其內存中的sessionId也就隨之銷毀,在重新去請求sever端的servlet或jsp時,會重新生成一個 sessionId給客戶端瀏覽器,並存在瀏覽內存中.

總結,工作流程可以簡單用下面的圖表示:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM