java会话属性访问和转换为int?
我在Servlet中使用以下命令将用户id存储在会话中:
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)
问题:
- 如何转换为int并将id发送到DAO以获得SELECT语句
# 1 楼答案
即使您保存了一个
int
,该方法也需要一个对象,因此您的int
将由于自动装箱而成为Integer
。试着把它抛回Integer
,它应该是好的:但是,如果属性为空,您将在此处得到一个
NullPointerException
,因此最好始终使用Integer
:在此之后,您可以安全地检查
userid
是否为null
编辑: 作为对你评论的回应,以下是我所说的“检查空值”的意思
# 2 楼答案
我用了这个:
# 3 楼答案
# 4 楼答案
Java有^{} 包装器类,您可以在
Integer
的对象中存储int值