2016-04-19 76 views
0

好吧,我在解釋我的問題方面有點無能,但我會盡量做到儘可能詳盡,儘可能簡潔。Java Servlet如何從會話屬性中獲取特定值

我有2個servlet; NewCustomerServlet和 LoginServlet

我有1個Java bean; 用戶

用戶有一堆字段。用戶名,名字,密碼等...

我的index.jsp自動將用戶導向到NewCustomerServlet,因此用戶可以創建一個「帳戶」 一旦他們填寫完字段後,User bean被創建並保存在會議。然後,用戶能夠「登錄」

我遇到的問題是使用會話驗證「user」會話與login.jsp字段的用戶名。

如何訪問會話「用戶名」或「密碼」字段。我看起來可以訪問的是會話的名稱,這將是「用戶」?

回答

0

引用了HttpSession的JavaDoc,

你會意識到,HttpSession存儲由關鍵屬性,就像一個HashMap,你會放置在會議狀物體(任何可序列化對象):

String userName = "something";// 
session.setAttribute("username", userName); 

然後你可以使用它返回:

String un=(String)session.getAttribute("username"); 

可以存儲更復雜的obj學分,就像一個完整的User對象,只要該對象實現Serializable

User someUser = //details left to the OP 
session.setAttribute("user", someUser); 

然後你就可以在以後檢索該用戶的信息:

User someUser = (User)session.getAttribute("user"); 
if(user != null){ 
    String username = user.getUsername(); 
} 

而且,這裏是一個很好的,簡要的奔跑通過常見的會話利用與ServletsHttpSessionSession Tracking

+0

耶穌...我已經「學習」了大約2年的Java現在,有一件事情讓我放棄了這個項目, O; User someUser =(User)session.getAttribute(「user」); 這是我失蹤的關鍵。 我忘了提及用戶是可序列化的,我對此表示歉意。總而言之,這正是我所需要的,感謝您提供簡潔的信息! – surlistyc