Java Servlet:将实例设置为属性
问题描述:
我创建了一个类User,其中包含有关此用户的若干信息。 如同名称,会话ID等Java Servlet:将实例设置为属性
该类的实例在用户登录时创建。 现在,此实例需要在此会话的所有jsp页面中可用。
所以我想设置实例作为一个属性,可以由每个jsp页面使用。
我在成功登录的情况下创建在servlet实例:
User newUser = new User(username,request.getSession().getId());
在JSP页面
:
<%
User user=session.getAttribute("newUser");
%>
现在我有不兼容类型的问题。 该对象无法转换为用户。
我该如何解决这个问题?
编辑:不保证这个实例存在。
答
getAttribute
被宣告返回Object
。如果你确信这个对象将是User
例如只使用casting:
<%
User user = (User)session.getAttribute("newUser");
// ^^^^^^ - this means that you claim that you are sure that returned
// Object is in fact of type User (such casting is possible
// because compiler knows that like everything in Java - except
// primitive types - User extends Object).
%>
谢谢你的快速和解释的答案! – user3352472 2014-11-01 21:42:45
@ user3352472不客气:) – Pshemo 2014-11-01 21:43:17
我刚刚意识到,我不能保证这个实例甚至被创建。 – user3352472 2014-11-01 21:46:42