我有一个登录 servlet,它工作正常。但我希望多个 servlet 能够访问 userID、valid 和 coachCB 值来执行不同的功能。我知道最好的方法是使用 session ,请提供一个使用我的登录 Servlet 和 ViewRegisteredCoursesServlet 从 session 中编写和调用的示例。如果一个对象(bean)存储为:
session.setAttribute("currentSessionUser", user);
如何在 servlet 中从中获取不同的值?前任。用户 ID 和教职人员CB。
HttpSession session = request.getSession();
session.getAttribute("currentSessionUser");
此外,据我了解, session 需要转发(这不是一个选项,因为根据单击的导航栏,将调用 diff servlet)。对吗?
登录Servlet:
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
}
查看注册类(class)Servlet:
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:
private String id;
private String password;
private boolean facultyCB;
public boolean valid;
提前非常感谢!
最佳答案
如果您想存储 bean 并在其他 servlet 中访问它。最好的方法是将该 bean 存储在 session 对象中。
HttpSession session = request.getSession();
session.setAttribute("BEANNAMEHERE", yourBeanObjectHere);
在其他 servlet 中访问它
HttpSession session = request.getSession();
YourBeanObject myBean = (YourBeanObjectClass) session.getAttribute("BEANNAMEHERE");
旁注 我认为在 session 中存储用户登录信息不是一个好主意,也许只是存储他的 ID 并使用该 ID 从数据库中检索他的数据。
关于Java - Servlet,在整个项目中携带登录信息( session bean),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16126709/