2010-10-28 69 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