嘿傢伙我正在爲我的項目管理模塊。當一個人登錄時,一個請求被髮送到登錄servlet。當通過點擊其他選項進一步要求其他報告時,將報告請求發送到其他servlet,該servlet在用戶正在顯示的頁面上顯示結果。會話在兩個servlet之間丟失。如何將會話從一個servlet轉發到另一個?
我想導航一些其他頁面上生成的報告,但爲此我需要知道第二個servlet中的用戶類型。這可以通過從登錄模塊bean類中獲取user_type的值來完成。
如何處理這種情況?感謝
我登錄的servlet:
LoginService user = new LoginService();
user.setUserName(request.getParameter("username"));
user.setPassword(request.getParameter("password"));
user = UserDAO.login(user);
if (user.isValid())
{
HttpSession session = request.getSession(true);
session.setAttribute("currentSessionUser",user);
if(user.getUser_type().equalsIgnoreCase("admin")){
response.sendRedirect("administrator/homepage.jsp");
}else{
response.sendRedirect("homepage.jsp"); //logged-in page
}
}
else
response.sendRedirect("invalidlogin.jsp"); //error page
}
我試圖在第二個servlet使用這個: -
LoginService session = (LoginService)request.getAttribute("currentSessionUser");
String drake = session.getUser_type();
System.out.println("usertype = " +drake);
這裏login服務是bean類登錄模塊。我在這裏得到一個空指針異常。
爲什麼會話中的用戶是「LoginService」的實例?是一個URL HTTP還是一個HTTPS?如果是這樣,您應該能夠配置兩個協議之間的會話共享。 –
@DaveNewton我認爲'LoginService'是他自己定義的一些類。他添加了他創建它的代碼片段並將其設置爲會話屬性。 –
@G_H我明白了;我的觀點是,這對用戶來說是一個愚蠢的名字。正如第二個servlet中的'session'一樣。命名事項:) –