2014-11-01 139 views
-1

我創建了一個類User,其中包含有關此用戶的若干信息。 如同名稱,會話ID等Java Servlet:將實例設置爲屬性

該類的實例在用戶登錄時創建。 現在,此實例需要在此會話的所有jsp頁面中可用。

所以我想設置實例作爲一個屬性,可以由每個jsp頁面使用。

我在成功登錄的情況下創建在servlet實例:

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 2014-11-01 21:42:45

+0

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

+0

我剛剛意識到,我不能保證這個實例甚至被創建。 – user3352472 2014-11-01 21:46:42

相關問題