如何将Servlet中的会话属性集转发给多个JSP?

时间:2018-02-05 09:18:33

标签: java jsp servlets

这是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编程的新手。任何帮助,将不胜感激。 谢谢。

0 个答案:

没有答案