2013-04-21 24 views
1

我有一個登錄servlet,它工作正常。但是我想讓多個servlet能夠訪問userID,有效的facultyCB值來完成不同的功能。我知道最好的方法是使用會話,可以使用我的Login Servlet和ViewRegisteredCoursesServlet從一個會話中提供一個寫作示例。如果一個對象(bean)存儲在:Java - Servlet,攜帶整個項目的登錄信息(會話bean)

session.setAttribute("currentSessionUser", user); 

如何從servlet中獲得不同的值? EX。 userId & facultyCB。

HttpSession session = request.getSession(); 
session.getAttribute("currentSessionUser"); 

而且,從我的理解會話需要轉發(東西那不是一種選擇,因爲這取決於導航欄點擊一個diff的servlet調用)。正確?

LoginServlet:

ViewRegisteredCoursesServlet:

String userID = "100000001"; 

    //Created code to determine term based on course dates 
    String year = "2012"; 
    String term = "FALL"; 

    try { 

     List<RegisteredCoursesBean> registeredCoursesArray = ViewRegisteredCoursesDAO.viewRegisteredCourses(userID, year, term); 

     request.setAttribute("registeredCoursesBean", registeredCoursesArray); 

     request.getRequestDispatcher("registered_courses.jsp").forward(request, response); 

    } catch (Throwable theException) { 
     System.out.println(theException); 
    } 

LoginBean:

private String id; 
private String password; 
private boolean facultyCB; 
public boolean valid; 

感謝這麼多提前!

+0

我想我自己做到了。我只是分別傳遞了我想要的3個值。有沒有辦法將bean傳遞到會話中,然後在另一個servlet中獲取值? – SuperNub2TheRescue 2013-04-21 00:40:27

回答

0

如果你想存儲一個bean並在其他servlet中訪問它。您可以做的最好的方法是將該bean存儲在會話對象中。

HttpSession session = request.getSession(); 
session.setAttribute("BEANNAMEHERE", yourBeanObjectHere); 

訪問它在其他servlet

HttpSession session = request.getSession(); 
YourBeanObject myBean = (YourBeanObjectClass) session.getAttribute("BEANNAMEHERE"); 

邊注 我不認爲這是存儲用戶登錄會話內部的信息,也許只是存儲他的ID和一個好主意使用該ID從數據庫檢索他的數據。