2012-02-18 36 views
0

我已閱讀關於會話對象和cookie的信息。 會話對象在服務器端進行維護。 Cookie是由瀏覽器根據請求維護客戶端併發送到服務器的東西。 我有些疑惑,我仍然無法澄清的是會話對象,Java servlets中的cookie vs ASP .NET

1.)在ASP .NET會話可以通過cookie進行跟蹤。在配置文件中使用類似下面的內容

<configuration> 
    <sessionstate 
     mode="inproc" 
     cookieless="false" 
     timeout="20" 
     sqlconnectionstring="data source=127.0.0.1;user id=<user id>;password=<password>" 
     server="127.0.0.1" 
     port="42424" 
    /> 
</configuration> 

什麼是上面的等效Java servlet配置,它在哪裏配置?

2)在Java的情況下,cookiefull狀態跟蹤啓用那麼我們是否仍然需要編寫代碼 拔出從請求中的cookie,並用它獲取會話對象的詳細信息, 或者是這個由J2EE內部完成框架,即J2EE框架可以看到cookie並自動將相應的會話對象分配給頁面請求?

回答

1

Java EE容器默認會話管理正在使用cookie(儘管它支持其他方法,如URL重寫)。

沒有必要 - 你不應該自己管理會話cookie,因爲容器會爲你做這些事情。它公開了一個表示當前用戶會話的HttpSession實例:如果您希望特定對象在請求之間持續存在,您可以將其存儲爲屬性,並在稍後訪問該HttpSession對象時恢復。沒有必要寫出與cookie相關的代碼。

+0

這幾乎是我需要的信息,謝謝! – seahorse 2012-02-18 16:41:05

2

ASP.NET和J2EE在J2EE只是企業Java應用程序的規範這一意義上是不同的,並且它缺少實際的實現。 J2EE有很多實現,這裏有一個列表:http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition#Certified_application_servers

如果你看HttpServletRequest界面,你會發現getSession()方法,它在那裏說,返回HttpSession

服務器可維持在很多方面會如使用cookie 或改寫網址

不同的服務器可以用不同的方式處理這個問題。您需要爲特定服務器找到您的答案,即:Supporting Sessions Without Cookies in Tomcat