2016-11-21 2 views
0

У меня есть форма для входа с именем пользователя, паролем и кнопкой входа.Перенаправить страницу JSP на страницу пыльника JSP на основании зарегистрированного пользователя

У меня есть MySQL DB, который имеет одну таблицу входа, содержащую имена пользователей и пароли.

Использование входа Servlet, я пытаюсь добиться следующего:

если
  • Проверить Имя пользователя и пароль соответствуют то, что хранится в регистрационной таблице.
  • Если выбран, проверьте, кто этот пользователь, и перенаправляет его на страницу JSP.

Однако, мой код ниже не работает:

Войти Таблица:

enter image description here

lgoin Servlet код примерочных загвоздка:

String userName_Login = request.getParameter("Username"); 
    String passWord_Login = request.getParameter("Password"); 
    String DB_URL = "jdbc:mysql://localhost:3306/evaluationDB"; 
    String DB_UNAME = "root"; 
    String DB_PASS = "******"; 
try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection conn = (Connection) DriverManager.getConnection(DB_URL, DB_UNAME, DB_PASS); 
      Statement stmt = conn.createStatement(); 
      //String loginSQL = "SELECT userName, passWord FROM login"; 
      String loginSQL = "SELECT * from login"; 
      ResultSet rs = stmt.executeQuery(loginSQL); 

      while(rs.next()){ 
       ArrayList<String> userNameArray = new ArrayList<String>(); 
       ArrayList<String> passWordArray = new ArrayList<String>(); 

       userNameArray.add(rs.getString("userName")); 
       passWordArray.add(rs.getString("passWord")); 

       if (rs.getString("userName").equals(userName_Login) && rs.getString("passWord").equals(passWord_Login)){ 
        for (int index = 0 ; index < userNameArray.size() ; index++){ 
         switch (userNameArray.get(index)){ 
         case "SystemManager": 
          response.sendRedirect("SystemManager.jsp"); 
          System.out.println("Welcome SystemManager "); 
          break; 
         case "Secretary": 
          response.sendRedirect("Secretary.jsp"); 
          System.out.println("Welcome Secretary "); 
          break; 

          case "TeamLeader": 
          response.sendRedirect("TeamLeader.jsp"); 
          System.out.println("Welcome TeamLeader "); 
          break; 

          case "WorkOrganizerLeader": 
          response.sendRedirect("WorkOrganizerLeader.jsp"); 
          System.out.println("Welcome WorkOrganizerLeader "); 
          break; 

          case "ProjectManager": 
          response.sendRedirect("ProjectManager.jsp"); 
          System.out.println("Welcome ProjectManager "); 
          break; 

          default : 
           System.out.println("I don't know you ... "); 

        } 
       } 

       } 
       else{ 
        System.out.println("Get Out ... : "); 
        break; 
       } 

      } 
      rs.close(); 
     stmt.close(); 
     conn.close(); 
     } 


     catch (ClassNotFoundException ex) { 
      Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (SQLException ex) { 
      Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
     } 

Но это не рабочий и корпус коммутатора распечатывают все случаи и открывают все страницы jsp.

Благодарим за помощь.

ответ

0

Измените свой запрос loginSQL ниже, чтобы получить запись, содержащую имя пользователя и пароль, введенные пользователем.

String loginSQL = "SELECT * from login where userNameArray 
='"+userName_Login+"' and passWord ='"+passWord_Login+"'"; 

Обновить код, чтобы удалить петлю while и и if заявление, так как логика в for цикле работает для всех пользователей, как показано ниже:

ResultSet rs = stmt.executeQuery(loginSQL); 
    if(rs.next()){ 
    //If record exists as per updated query 
    String mycase=rs.getString("userName"); 
     switch (mycase){//fetch Username 
      case "SystemManager": 
       response.sendRedirect("SystemManager.jsp"); 
       System.out.println("Welcome SystemManager "); 
       break; 
      case "Secretary": 
       response.sendRedirect("Secretary.jsp"); 
       System.out.println("Welcome Secretary "); 
       break; 

      case "TeamLeader": 
       response.sendRedirect("TeamLeader.jsp"); 
       System.out.println("Welcome TeamLeader "); 
       break; 

      case "WorkOrganizerLeader": 
       response.sendRedirect("WorkOrganizerLeader.jsp"); 
       System.out.println("Welcome WorkOrganizerLeader "); 
       break; 

      case "ProjectManager": 
       response.sendRedirect("ProjectManager.jsp"); 
       System.out.println("Welcome ProjectManager "); 
       break; 

      default : 
       System.out.println("I don't know you ... "); 

     } 
    } 
    else{ 
    System.out.println("Get Out ... : "); 
    } 
    rs.close(); 
    stmt.close(); 
    conn.close(); 
Смежные вопросы