Java HttpSession .getAttribute(String name)

6

我有一个简单而短的问题,但是无论在哪里搜寻都没有找到答案。我创建了一个 HttpSession 并想要从中获取一个属性,例如一个 User 对象。

HttpSession session = request.getSession(true);
Object userObject = session.getAttribute("name");
if ((userObject != null) && (userObject instanceof User)) {
    User currentUser = (User) userObject;
    ...
}

问题如下: .getAttribute函数以字符串名称作为参数 - 这个名称是什么?我从哪里知道这个名称?它在某个地方预定义了吗?-然后在哪里定义另一个名称? 谢谢!
2个回答

9
通常情况下,您可以通过以下方式自己添加会话属性:
User someObject = new User();
session.setAttribute("pickaName", someObject);

然后,您可以获取会话并使用之前使用的相同名称来提取此属性,就像这样:
User sameObject = (User) session.getAttribute("pickaName");

谢谢,我想我明白了。如果我想通过getAttribute在会话中获取一个用户对象,我必须创建一个例如登录方法,在该方法中设置用户属性,是吗? - Display Name
没错。先创建对象并将其添加,然后稍后可以检索它。 - LeHill
谢谢,它帮了我很多! - Display Name

0
.getAttribute函数以字符串名称作为参数-名称是什么?
如果您想从Session中获取属性,您需要像以下这样将它们设置到Session中:
User aux = new User();
HttpSession session = new HttpSession();
session.setAttribute("myUserObject", aux);
User user = (User) session.getAttribute("myUserObject");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接