2014-11-01 2 views
-1

Я создал класс User, который содержит несколько информации об этом пользователе. Как имя, идентификатор сеанса и т. Д.Java Servlet: установить экземпляр как атрибут

Экземпляр этого класса создается, когда пользователь вошел в систему. Теперь этот экземпляр должен быть доступен на всех страницах jsp для этого сеанса.

Так что я думал об установке экземпляра как атрибута, который может использоваться каждой страницей jsp.

Я создал экземпляр в сервлет в случае успешной регистрации:

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

на странице JSP:

<% 

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

Теперь у меня есть проблемы с несовместимыми типами. Объект не может быть преобразован в Пользователь.

Как это разрешить?

Редактировать: Не гарантируется, что этот экземпляр существует.

ответ

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

Спасибо за быстрый и объясняющий ответ! – user3352472

+0

@ user3352472 Добро пожаловать :) – Pshemo

+0

Я только что понял, я не могу гарантировать, что этот экземпляр был даже создан. – user3352472