非常基本的问题。 我有一个包含多个servlet的门户,其中一个负责登录(但仅作为管理员)。如何在Servlet之间使用HttpSession来知道管理员是否登录?Java Servlets和HttpSessions
在此先感谢!
非常基本的问题。 我有一个包含多个servlet的门户,其中一个负责登录(但仅作为管理员)。如何在Servlet之间使用HttpSession来知道管理员是否登录?Java Servlets和HttpSessions
在此先感谢!
设置会话
session.setAttribute("isAdmin",true OR false);
属性在登录时决定用户类型和设置。
每当您的管理员用户登录时,都会将session.setAttribute(“admin”,“true”);
选中此项,session.getAttribute(“管理员”),看看是否管理员在
登录我完整的用户对象存储在会话中。
http://download.oracle.com/javaee/1.3/api/javax/servlet/http/HttpServletRequest.html#getSession()
您可以通过这种方法获得的会话。 如果您将整个用户存储在会话中(或数据库中的用户标识),随着应用程序的增长,您可以稍后实施更加完善的基于角色的访问。
问候
这通常不是一个好主意,因为您必须确保对象与您自己的数据库保持同步。通常情况下,只需将会话ID存储在会话中并根据需要进行检索即可。直接的主键查询将命中缓存并且不加载数据库,并且缓存应该与持久性框架集成以确保返回的对象是最新的。 – sapientpants 2010-10-28 16:34:28
更不用说,如果您处于群集配置中,它会在节点之间推送更多数据。 – sapientpants 2010-10-28 16:36:00
是的我的意思是说他应该存储用户作为一个整体的对象,引用的ID ..不能表达自己:D – chzbrgla 2010-10-28 16:52:45
谢谢!这解决了它! – whirlwin 2010-10-28 19:28:34