嘿家伙我正在为我的项目管理模块。当一个人登录时,一个请求被发送到登录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'一样。命名事项:) –