2010-10-28 74 views
3

非常基本的問題。 我有一個包含多個servlet的門戶,其中一個負責登錄(但僅作爲管理員)。如何在Servlet之間使用HttpSession來知道管理員是否登錄?Java Servlets和HttpSessions

在此先感謝!

回答

2

設置會話

session.setAttribute("isAdmin",true OR false); 

屬性在登錄時決定用戶類型和設置。

+0

謝謝!這解決了它! – whirlwin 2010-10-28 19:28:34

3

每當您的管理員用戶登錄時,都會將session.setAttribute(「admin」,「true」);

選中此項,session.getAttribute(「管理員」),看看是否管理員在

0

登錄我完整的用戶對象存儲在會話中。

http://download.oracle.com/javaee/1.3/api/javax/servlet/http/HttpServletRequest.html#getSession()

您可以通過這種方法獲得的會話。 如果您將整個用戶存儲在會話中(或數據庫中的用戶標識),隨着應用程序的增長,您可以稍後實施更加完善的基於角色的訪問。

問候

+0

這通常不是一個好主意,因爲您必須確保對象與您自己的數據庫保持同步。通常情況下,只需將會話ID存儲在會話中並根據需要進行檢索即可。直接的主鍵查詢將命中緩存並且不加載數據庫,並且緩存應該與持久性框架集成以確保返回的對象是最新的。 – sapientpants 2010-10-28 16:34:28

+0

更不用說,如果您處於羣集配置中,它會在節點之間推送更多數據。 – sapientpants 2010-10-28 16:36:00

+0

是的我的意思是說他應該存儲用戶作爲一個整體的對象,引用的ID ..不能表達自己:D – chzbrgla 2010-10-28 16:52:45