2013-04-21 2 views
1

로그인 서블릿이 있는데 제대로 작동합니다. 하지만 여러 서블릿이 다른 기능을 수행하기 위해 유효한 사용자 ID & facultyCB 값에 액세스 할 수 있기를 바랍니다. 가장 좋은 방법은 세션과 함께하는 것입니다. some1은 로그인 서블릿과 ViewRegisteredCoursesServlet을 사용하여 세션 작성 및 쓰기의 예제를 제공 할 수 있습니다. 객체 (bean)가 다음과 같이 저장되는 경우 :Java - 서블릿, 프로젝트 (세션 빈) 전체에서 로그인 정보를 가지고 있습니다.

session.setAttribute("currentSessionUser", user); 

서블릿에서 어떻게 다른 값을 얻을 수 있습니까? 전의. 사용자 ID & facultyCB. 내가 세션이 (뭔가 탐색 막대가 호출되는 DIFF 서블릿을 클릭에 따라 같은 옵션을하지 이잖아) 전달 될 필요가 이해하는 것과 또한

HttpSession session = request.getSession(); 
session.getAttribute("currentSessionUser"); 

. 옳은?

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 
     } 

ViewRegisteredCoursesServlet :

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

LoginBean :

private String id; 
private String password; 
private boolean facultyCB; 
public boolean valid; 

미리 감사드립니다 많이!

+0

나는 혼자 생각합니다. 나는 단지 내가 원하는 3 개의 값을 전달한다. 빈을 세션에 전달한 다음 다른 서블릿에서 값을 가져 오는 방법이 있습니까? – SuperNub2TheRescue

답변

0

bean을 다른 서블릿에 저장하고 다른 서블릿에 액세스하려는 경우. 가장 좋은 방법은 빈을 세션 객체 안에 저장하는 것입니다.

HttpSession session = request.getSession(); 
session.setAttribute("BEANNAMEHERE", yourBeanObjectHere); 

다른 서블릿

HttpSession session = request.getSession(); 
YourBeanObject myBean = (YourBeanObjectClass) session.getAttribute("BEANNAMEHERE"); 

는 사이드 참고 나는 사용자가 아마도 단지 그가 ID의 저장하고, 세션 내에서 로그인 정보 저장하는 좋은 아이디어라고 생각하지 않습니다에 액세스 이 ID를 사용하여 데이터베이스에서 그의 데이터를 검색하십시오.

관련 문제