2013-07-24 72 views
13

從我的理解,Servlet容器處理會話使用的HTTP協議,如,Tomcat如何在內部處理會話?

  1. 隱藏的表單域
  2. URL重寫
  3. 餅乾

我很好奇如何的Apache Tomcat手柄會議內部,雖然它與普通開發人員無關。

Tomcat是使用cookie還是其他?

+0

http://stackoverflow.com/questions/1905244/session-management-in-tomcat 請參考上面的鏈接 –

+0

它是開源的,你可以去看看到底是什麼它是:http:/ /tomcat.apache.org/svn.html – cjstehno

+0

@cjstehno謝謝。任何想法從哪裏開始? – Mawia

回答

9

默認情況下,Tomcat直接在HTTP響應中發送cookie,例如SET COOKIE:JSESSIONID....回到瀏覽器並重寫URL,以在第一個請求中添加JSESSIONID參數,以便它可以在後面的情況下回退在客戶端瀏覽器中禁用了Cookie

下一次,如果瀏覽器請求服務器JSESSIONID在其request中,Tomcat將使用JSESSIONID cookie來維護會話。

您可以通過修改的context.xml此改變Tomcat中的會話cookie行爲:

<Context cookies="false"> 
</Context> 

,並禁用URL重寫以同樣的方式:

<Context disableURLRewriting="true"> 
</Context> 

即使閱讀本Servlet Session Tracking with cookies (JSESSIONID)

0

Tomcat默認發送cookie,除非它們被用戶從瀏覽器阻止(你這種做法不鼓勵)。此外,創建的會話cookie(JSESSIONID)不是持久性cookie,只要關閉瀏覽器的實例(窗口),就會消失。