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). 
%> 
+0

谢谢你的快速和解释的答案! – user3352472 2014-11-01 21:42:45

+0

@ user3352472不客气:) – Pshemo 2014-11-01 21:43:17

+0

我刚刚意识到,我不能保证这个实例甚至被创建。 – user3352472 2014-11-01 21:46:42