Java-Servlet,在整个项目中携带登录信息(会话bean)

Java-Servlet,在整个项目中携带登录信息(会话bean),java,jsp,session,netbeans,javabeans,Java,Jsp,Session,Netbeans,Javabeans,我有一个登录servlet,它工作正常。但是我希望多个servlet能够访问userID、valid和facultyCB值来执行不同的功能。我知道最好的方法是使用会话,请提供一个使用我的登录Servlet和ViewRegisteredCourseServlet在会话中编写和调用的示例。如果objectbean存储在以下位置: session.setAttribute("currentSessionUser", user); 在servlet中如何从中获得不同的值?例如userId和facult

我有一个登录servlet,它工作正常。但是我希望多个servlet能够访问userID、valid和facultyCB值来执行不同的功能。我知道最好的方法是使用会话,请提供一个使用我的登录Servlet和ViewRegisteredCourseServlet在会话中编写和调用的示例。如果objectbean存储在以下位置:

session.setAttribute("currentSessionUser", user);
在servlet中如何从中获得不同的值?例如userId和facultyCB

HttpSession session = request.getSession();
session.getAttribute("currentSessionUser");
另外,据我所知,会话需要转发一些东西,这不是一个选项,因为根据单击哪个导航栏,会调用一个diff servlet。对吗

LoginServlet:

    LoginBean user = new LoginBean();

    try {
        String checkBox = request.getParameter("facultyCB");

        user.setID(request.getParameter("id"));
        user.setPassword(request.getParameter("password"));

        if (checkBox != null) {
            user.setFacultyCB(true);
        } else {
            user.setFacultyCB(false);
        }

        user = LoginDAO.login(user);

        if (user.isValid()) {
            HttpSession session = request.getSession(true);
            if (checkBox != null) {
                user.setFacultyCB(true);
            } else {
                user.setFacultyCB(false);
            }

            session.setAttribute("currentSessionUser", user);
            response.sendRedirect("success_login.jsp"); //logged-in page

        } else {
            response.sendRedirect("invalid_login.jsp"); //error page 
        }
ViewRegisteredCourseServlet:

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);
    }

非常感谢

如果您想在中存储bean并在其他servlet中访问它。最好的方法是将bean存储在会话对象中

HttpSession session = request.getSession();
session.setAttribute("BEANNAMEHERE", yourBeanObjectHere);
在其他servlet中访问它

HttpSession session = request.getSession();
YourBeanObject myBean =  (YourBeanObjectClass) session.getAttribute("BEANNAMEHERE");
旁注
我认为在会话中存储用户的登录信息不是一个好主意,也许只是存储他的ID并使用该ID从数据库中检索他的数据。

我想这是我自己得到的。我只需要分别传递我想要的3个值。有没有办法将bean传递到会话中,然后在另一个servlet中获取值?
HttpSession session = request.getSession();
YourBeanObject myBean =  (YourBeanObjectClass) session.getAttribute("BEANNAMEHERE");