Настройте меню главной страницы в зависимости от типа пользователя - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь отобразить разные пункты меню в зависимости от типа пользователя и от того, вошли они в систему или нет. В моем проекте есть два типа пользователей: «Общий пользователь», обозначенный («gen») и «Администратор» («Admin). Я использую Netbeans 8.2 в качестве своей IDE. Если никто не вошел в систему, я просто хочу отобразить« войти » Если обычный пользователь вошел в систему, я хочу отобразить «Добро пожаловать», а если администратор вошел в систему, я хочу отобразить «Администратор». Проблема, с которой я сталкиваюсь, заключается в том, что при входе в систему в качестве обычного пользователя он показывает их пункт 'admin'menu вместо того, чтобы говорить приветствовать пользователя. Код домашней страницы

           <% User user = (User) session.getAttribute("user"); 
           if (user == null) {
            %>
     <li class="nav-item">
        <a class="nav-link js-scroll-trigger" href="usersignin.jsp">Log in</a>
      </li>
      <!-- if the user is a general user show them a welcome menu item-->
       <% } else if (user != null && user.usertype == ("gen")) {
     %>
     <li class="nav-item">
        <a class="nav-link js-scroll-trigger" href="useraccount.jsp">Welcome ${user.username} </a>
      </li>
      <!-- If the user is an admin give them the Admin menu Item -->
      <% } else {
     %>
      <li class="nav-item">
        <a class="nav-link js-scroll-trigger" href="admin.jsp">Admin</a>
      </li>

    <% }%>.

Код UserLoginServlet

   public UserLoginServlet() {
       super();
   }

   protected void doPost(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
       String username = request.getParameter("username");
       String password = request.getParameter("password");


       UserDAO userDao = new UserDAO();

       try {
           User user = userDao.checkLogin(username, password);
           String destPage = "usersignin.jsp";

           if (user != null) {
               HttpSession session = request.getSession(true);
               session.setAttribute("user", user);
               destPage = "rrrhome.jsp";
           } else {

                if (user == null) {
               request.setAttribute("errorMessage", "Incorrect Login Credentials");
               /* END */
           } 


           }

           RequestDispatcher dispatcher = request.getRequestDispatcher(destPage);
           dispatcher.forward(request, response);

       } catch (SQLException | ClassNotFoundException ex) {
           throw new ServletException(ex);
       }
   }
}        
    ````  
**UserDAO Code**
   ````
    public class UserDAO {

   public User checkLogin(String username, String password) throws SQLException,
           ClassNotFoundException {
       String jdbcURL = "jdbc:mysql://localhost:xxxx/xxx";
       String dbUser = "x";
       String dbPassword = "x";

       Class.forName("com.mysql.jdbc.Driver");
       Connection connection = DriverManager.getConnection(jdbcURL, dbUser, dbPassword);
       String sql = "SELECT * FROM users WHERE username = ? and password = ?";
       PreparedStatement statement = connection.prepareStatement(sql);
       statement.setString(1, username);
       statement.setString(2, password);


       ResultSet result = statement.executeQuery();

       User user = null;

       if (result.next()) {
           user = new User();
           user.setUsername(result.getString("username"));

       }

       connection.close();

       return user;
   }
}     

Пользователь. java Код

    private int userid;
    public String username;
    public String password;
    public String usertype;



    /**
     * @return the password
     */
    public String getPassword() {
        return password;
    }

    /**
     * @param password the password to set
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * @return the userid
     */
    public int getUserid() {
        return userid;
    }

    /**
     * @param userid the userid to set
     */
    public void setUserid(int userid) {
        this.userid = userid;
    }

    /**
     * @return the username
     */
    public String getUsername() {
        return username;
    }

    /**
     * @param username the username to set
     */
    public void setUsername(String username) {
        this.username = username;
    }

        /**
     * @return the usertype
     */
    public String getUsertype() {
        return usertype;
    }

    /**
     * @param usertype the usertype to set
     */
    public void setUsertype(String usertype) {
        this.usertype = usertype;
    }

Наконец, моя таблица БД называется «пользователи» и содержит следующие столбцы:

имя пользователя (PK) имя, фамилия, адрес электронной почты, номер телефона, имя пользователя, пароль, адрес, тип пользователя.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...