Почему session.getAttribute возвращает ноль? - PullRequest
0 голосов
/ 03 мая 2019

Я создал базовую страницу входа и регистрации с помощью сервлетов. Мой первый сервлет проверяет базу данных, существуют ли имя пользователя и пароль, и если они это делают, для второго сервлета используется session.setAttribute("user", username). Мой второй сервлет имеет код request.getAttribute("user"). Мой проект работает просто отлично, но во втором сервлете возвращает "Welcome null" для вывода. Как я могу это исправить? Спасибо ...

Sv1.java

try {
    Connection Conn = DriverManager.getConnection("jdbc:mysql://localhost/?user=root");
    Statement s = Conn.createStatement();
    ResultSet rs = s.executeQuery("SELECT * FROM users.info");
    while (rs.next()) {
        if (username.equals(rs.getString("Username")) && password.equals(rs.getString("Password"))) {
            session.setAttribute("user", username);
            flag = true;
            response.sendRedirect("./Sv2");
        }
    }

    if (flag == false) {
        out.print("Invalid username or password");
    }
}

Sv2.java

PrintWriter out = response.getWriter();
HttpSession session = request.getSession(false);
if (session != null) {
    String name = (String) request.getAttribute("user");
    out.print("Welcome " + name);
}

1 Ответ

2 голосов
/ 03 мая 2019

Вы устанавливаете это на сеанс

session.setAttribute("user", username);

и чтение из запроса

String name = (String)request.getAttribute("user"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...