gpt4 book ai didi

java - session 属性访问并转换为 int?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:48 24 4
gpt4 key购买 nike

我在 Servlet 中使用以下命令将用户 ID 存储在 Session 中:

HttpSession session = request.getSession();
session.setAttribute("user", user.getId());

现在,我想从另一个 Servlet 访问该用户 ID:

HttpSession session = request.getSession(false);
int userid = (int) session.getAttribute("user"); // This is not working

OR

User user = new User();
user.setId(session.getAttribute("user")); This ain't possible (Object != int)

问题:

  1. 如何转换为 int 并将 id 发送到 DAO 以用于 SELECT 语句

最佳答案

即使您保存了一个 int,该方法需要一个对象,因此您的 int 将由于自动装箱而变成一个 Integer。尝试将其转换回 Integer,应该没问题:

int userid = (Integer) session.getAttribute("user");

但是,如果该属性为 null,您将在此处获得 NullPointerException,因此最好始终使用 Integer:

Integer userid = (Integer) session.getAttribute("user");

在此之后,您可以安全地检查 userid 是否为 null


编辑:为了回应您的评论,这就是我所说的“检查是否为空”的意思。

Integer userid = (Integer) session.getAttribute("user");
User user = null;
if (userid != null) {
user = new UserDAO().getUser(userid);
}
// here user will be null if no userid has been stored on the session,
// and it wil be loaded from your persistence layer otherwise.

关于java - session 属性访问并转换为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com