这是Servlet中的一个方法,它从helper类调用一个方法(管理数据库操作)来验证用户名和密码并获取用户类型(比如admin,student ......)。
我正在尝试在httpSession中获取usertype,并在usernameSession中获取用户名。
private void loginUser(HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
HttpSession httpSession = request.getSession();
HttpSession usernameSession = request.getSession();
//get selected username and password from login.jsp
String username= request.getParameter("username");
String password = request.getParameter("password");
List<User> users = userUtilDB.checkUser(username, password);
if(users.get(0).getUsername()==null)
{
httpSession.setAttribute("USER",null );
request.setAttribute("USER",null );
RequestDispatcher dispatcher =
request.getRequestDispatcher("/redirect.jsp");
dispatcher.forward(request, response);
}
else
{
httpSession.setAttribute("USER", users.get(0).getusertype());
usernameSession.setAttribute("USERNAME",users.get(0).getUsername());
List<User> userAll = userUtilDB.getUsers();
request.setAttribute("USER_LIST", userAll);
RequestDispatcher dispatcher =
request.getRequestDispatcher("/redirect.jsp");
dispatcher.forward(request, response);
}
}
一旦我获得了usertype,我试图根据usertype将用户重定向到适当的页面。在redirect.jsp页面上,这是我重定向usertype的方式(对于其他用户类型)
<c:choose>
<c:when test="${sessionScope.USER=='Student' }">
<c:redirect url="/sample.jsp"/>
</c:when>
</c:choose>
在sample.jsp页面上,我试图打印出USERNAME会话属性,如下所示:
<p>Welcome</p>:<c:out value="${sessionScope.USERNAME}" />
是否可以将Servlet中设置的会话属性从一个JSP转发到另一个JSP,或者由多个JSP访问。我也尝试使用jsp:forward
,但我不知道如何在<jsp:param ... />
中传递会话属性。
我是JSP编程的新手。任何帮助,将不胜感激。 谢谢。