Java Servlet:将实例设置为属性

时间:2014-11-01 21:33:10

标签: java jsp session servlets

我创建了一个类User,其中包含有关此用户的多个信息。 像名称,会话ID等

用户登录后会创建此类的实例。 现在,此实例需要在此会话的所有jsp页面中可用。

所以我考虑将实例设置为一个属性,每个jsp页面都可以使用它。

如果成功登录,我在servlet中创建了一个实例:

User newUser = new User(username,request.getSession().getId());

在jsp页面中:

<% 

    User user=session.getAttribute("newUser");
    %>

现在我遇到了不兼容类型的问题。 该对象无法转换为用户。

如何解决此问题?

编辑:无法保证此实例存在。

1 个答案:

答案 0 :(得分:1)

声明

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