2012-11-05 2 views
1

안녕하세요. 넷빈즈의 서블릿에이 코드가 있습니다. 유효 사용자로 로그인하거나이 URL을 유지할 때 문제가 있습니다. localhost:8080/LogIN123/login. 로그인은 서블릿이며 다음 페이지에 대한 응답이 아닙니다.내 서블릿 페이지에 어떤 것이있다

아무도 도와 줄 수 있습니까?

프로그램이 사용자 이름과 암호를 입력해야합니다. 그러면 관리자 용으로 동일한 사용자 인 Id이 있으면 해당 직원이있는 다른 페이지 으로 다시 보내고 직원이면 직원을 페이지로 리디렉션합니다 편집하지 않고 그 사람에 대한 정보를 가지고 있습니다. 여기

public class login extends HttpServlet { 

    String url = "jdbc:mysql://localhost:3306/"; 
    String dbName = "employee"; 
    String driver = "com.mysql.jdbc.Driver"; 
    String userName = "root"; 
    String password = "root"; 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 

     String name; 
     String pass; 
     Connection conn; 
     Statement Stmt; 
     ResultSet rs; 

     try { 

      name = request.getParameter("username"); 
      pass = request.getParameter("password"); 


      Class.forName(driver); 
      conn = (Connection) DriverManager.getConnection(url + dbName, userName, password); 
      Stmt = conn.createStatement(); 
      PreparedStatement ps = conn.prepareStatement("select * from emp_info where username=? && password=?"); 
      rs = ps.executeQuery(); 

이 될 것 여기

  UserBean userBean = new UserBean(); 

과 listof 콩이 다른 페이지로 전송하는 데이터베이스에서 데이터를 contanis이 UserBean 나는 클래스 이름을 가지고는 사용자 정보를 포함

  List<UserBean> listOfUserBean = new ArrayList<UserBean>(); 

      if (rs.next()) { 
       userBean.setUserID(rs.getString("id")); 
       userBean.setUserName(rs.getString("username")); 
       userBean.setUserGender(rs.getString("gender")); 
       userBean.setUserSupervisour(rs.getString("supervisour")); 
       userBean.setUserBirthDay(rs.getString("BirthOfDate")); 
       userBean.setUserSalary(rs.getString("salary")); 
      } 

      listOfUserBean.add(userBean); 

      response.sendRedirect("mangerpage.jsp"); 
      request.setAttribute("userlist", listOfUserBean); 

아래 코드는 사용자 ID가 t인지 확인합니다 같은 관리자를 그는 그가 어떤 직원의 관리자입니다 그가 당신은 행동 login에 서블릿을 매핑해야합니다 자신의 관리

  if (userBean.getUserID().equals(userBean.getUserSupervisour())) { 
       Stmt = conn.createStatement(); 
       PreparedStatement ps2 = conn.prepareStatement("select * from emp_info where supervisour=?"); 
       ResultSet rs2 = ps2.executeQuery(); 

       if (rs2.next()) { 
        userBean.setUserID(rs2.getString("id")); 
        userBean.setUserName(rs2.getString("username")); 
        userBean.setUserGender(rs2.getString("gender")); 
        userBean.setUserSupervisour(rs2.getString("supervisour")); 
        userBean.setUserBirthDay(rs2.getString("BirthOfDate")); 
        userBean.setUserSalary(rs2.getString("salary")); 
       } 

       listOfUserBean.add(userBean); 
       request.setAttribute("userlist",listOfUserBean); 
       response.sendRedirect("mangerpage.jsp"); 
      } else { 
       request.setAttribute("userlist",listOfUserBean); 
       request.setAttribute("name", name); 
       response.sendRedirect("mypage.jsp"); 
      } 

      if (userBean.getUserID().equals("")) { 
       response.sendRedirect("flogin.jsp"); 
      } 

     } catch (ClassNotFoundException cnfe) { 
      cnfe.printStackTrace(); 
     } catch (SQLException sqle) { 
      sqle.printStackTrace(); 
     } finally { 
      out.close(); 
     } 
    } 
+0

1) 질문을 재현하는 데 필요한 부분으로 코드를 정리하고, 2) 예상되는 동작과 실제 동작이 어떻게 다른지 더 자세하게 설명하십시오. –

+0

코드에 언급 된 jsp로 이동하지 않는다는 것을 의미합니까? – user75ponic

+0

예. dosenot는 페이지를 넘기지 않기 위해 사용자를 리다이렉트합니다. –

답변

0

에서 모든 직원을 보여 새로운 페이지를 얻을 것을 의미합니다.

JSP로 올바르게 리디렉션되지 않는다고 생각합니다.

response.sendRedirect("mangerpage.jsp"); 절대 경로 또는 적절한 상대 경로를 지정해야합니다.

상대 경로는 주석을 달기 위해 디렉토리 구조를 확인해야합니다.

this을 살펴보십시오.

+0

리디렉션에 문제가 없을 것입니다. 리디렉션이 정확합니다. –

+0

어떤 도움을 주시겠습니까? –

0

속성을 설정하기 전에 페이지로 리디렉션 중이므로 목록이 null 일 수 있습니다.

그냥 전에 userlist 속성 을 설정하면 다시 직접 managerpage.jsp

request.setAttribute("userlist", listOfUserBean); 
response.sendRedirect("mangerpage.jsp"); 

에 사용자 목록이 null인지 아닌지 당신은 페이지에서 확인할 수 있습니다.

관련 문제