powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / не подтягиваются данные из БД в jsp
25 сообщений из 39, страница 1 из 2
не подтягиваются данные из БД в jsp
    #39430114
Natalia_141277
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Написала простой web-проект c jsp, servlets, но почему-то не подтягиваются данные из БД в users.jsp.:-(

GetAllUsersController.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class GetAllUsersController implements Controller {
    private final UserService userService;

    public GetAllUsersController(UserService userService) {
        this.userService = userService;
    }

    public ViewModel process (HttpServletRequest request, HttpServletResponse response) {
        List <User> users = userService.getAllUsers();
        return new ViewModel("users").withAttribute("users",users);
    }
}



UserDaoImpl.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
public class UserDaoImpl implements UserDao {

    private final Connection connection;

    public UserDaoImpl(Connection connection) {
        this.connection = connection;
    }

    @Override
    public User save(User user) {
        try {
            PreparedStatement statement =
                    connection.prepareStatement("insert into users(username, password, email) values(?,?,?)");
            statement.setString(1, user.getUsername());
            statement.setString(2, user.getPassword());
            statement.setString(3, user.getEmail());
            statement.execute();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return user;
    }

    @Override
    public User getByName(String username) {
        User user = null;
        try {
            PreparedStatement statement = connection.prepareStatement("select * from users where username = ?");
            statement.setString(1, username);
            ResultSet rs = statement.executeQuery();
            rs.next();

            String email = rs.getString("email");
            int userId = rs.getInt("userId");
            user = User.from(userId, username, email);

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return user;
    }

    @Override
    public void remove(String username) {
        try {
            PreparedStatement statement =
                    connection.prepareStatement("delete * from users where username = ?");
            statement.setString(1, username);
            ResultSet rs = statement.executeQuery();
            rs.next();

        } catch (SQLException e) {
            throw new RuntimeException();
        }
        return;
    }

    @Override
    public User update(User user) {
        try {
            PreparedStatement statement =
                    connection.prepareStatement("update users set username=?, password=?, email=? where userId = ?");
            statement.setString(1, user.getUsername());
            statement.setString(2, user.getPassword());
            statement.setString(3, user.getEmail());
            statement.execute();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return user;
    }

    @Override
    public List<User> getAllUsers() {
        List<User> users = new ArrayList<User>();
        try {
            PreparedStatement statement =
                    connection.prepareStatement("select * from users");
            ResultSet rs = statement.executeQuery();
            while (rs.next()) {
                int userId = rs.getInt("userId");
                String username = rs.getString("username");
                String email = rs.getString("email");
                String password = rs.getString("password");
                User user = new User(userId,username,password,email);
                users.add(user);
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return users;
    }
}



Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>

<html>
<head>
    <title>Users</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <h3>Users List</h3>

    <form class="form-inline" role="form" action="/search" method="post">
        <input type="text" class="form-control" name="pattern" placeholder="Search">
        <input type="submit" class="btn btn-default" value="Search">
    </form>

    <table class="table table-striped">
        <thead>
        <tr>
            <td><b>userId</b></td>
            <td><b>username</b></td>
            <td><b>email</b></td>
            <td><b>password</b></td>
            <td><b>Action</b></td>
        </tr>
        </thead>
              <tr>
                  <c:forEach var = "users" items="${users}">
                <td>${users.userId}</td>
                <td>${users.username}</td>
                <td>${users.email}</td>
                <td>${users.password}</td>
                <td><a href="/delete?id=${users.username}">Delete</a></td>
                  </c:forEach>
            </tr>
    </table>

    <form class="form-inline" role="form" action="/add_page" method="post">
        <input type="submit" class="btn btn-default" value="Add new">
    </form>
</div>
</body>
</html>



Посмотрите пожалуйста, может еще что-то полезное посоветуете.:-)

Ссылка на проект: https://github.com/FeschenkoNatalia/servletTestEasy

Спасибо большое!:-)
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430131
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277Написала простой web-проект c jsp, servlets, но почему-то не подтягиваются данные из БД в users.jsp.:-(
Посмотрите пожалуйста, может еще что-то полезное посоветуете.:-)

1. Научитесь искать источник проблемы. Как минимум используйте отладку и поиск методом половинного деления. Определитесь проблема в чтении из БД или в выводе в JSP. Для этого достаточно использовать breakpoint в контроллере.

2. Откажитесь от использования JDBC API. Тем более в таком виде как у вас. Выходит огромная куча однообразного кода для простейших операций. А вдруг у вас в БД окажется 3-5 связанных сущностей, это всё выльется в огромную монструозную колбасу. Что уж говорить о реальных проектах, где количество таблиц легко переваливает за сотню.
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430156
Natalia_141277
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczNatalia_141277Написала простой web-проект c jsp, servlets, но почему-то не подтягиваются данные из БД в users.jsp.:-(
Посмотрите пожалуйста, может еще что-то полезное посоветуете.:-)

1. Научитесь искать источник проблемы. Как минимум используйте отладку и поиск методом половинного деления. Определитесь проблема в чтении из БД или в выводе в JSP. Для этого достаточно использовать breakpoint в контроллере.

2. Откажитесь от использования JDBC API. Тем более в таком виде как у вас. Выходит огромная куча однообразного кода для простейших операций. А вдруг у вас в БД окажется 3-5 связанных сущностей, это всё выльется в огромную монструозную колбасу. Что уж говорить о реальных проектах, где количество таблиц легко переваливает за сотню.

Спасибо большое!:-)
1. Проблема в выводе в jsp, правда проверяла не breakpoint, а тем, что считывала данные из БД в консоль:-)
2. В данном конкретном случае отказаться от JDBC API не могу, т.к. проект учебный, задана даже такая структура папок, нам было ДЗ его дописать (реализовать, подключение а БД, операции CRUD, вход user-a и т.д.), если бы писала сама, структура проекта была бы другая.
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430167
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277,

Так у вас ещё и свой собственный MVC фреймверк?
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430168
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_1412771.
в JSTL есть вывод переменных на экран. И в JS есть. Отлаживайте.
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430172
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где код, который аттрибуты из View перекладывает в какое-то доступное для JSP место?
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430209
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    <table class="table table-striped">
        <thead>
        <tr>
            <td><b>userId</b></td>
            <td><b>username</b></td>
            <td><b>email</b></td>
            <td><b>password</b></td>
            <td><b>Action</b></td>
        </tr>
        </thead>
              <tr>
                  <c:forEach var = "users" items="${users}">
                <td>${users.userId}</td>
                <td>${users.username}</td>
                <td>${users.email}</td>
                <td>${users.password}</td>
                <td><a href="/delete?id=${users.username}">Delete</a></td>
                  </c:forEach>
            </tr>
    </table>


с трёх попыток найдёшь ошибку?
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430224
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277,
2 ошибки
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430226
Natalia_141277
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяNatalia_141277,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    <table class="table table-striped">
        <thead>
        <tr>
            <td><b>userId</b></td>
            <td><b>username</b></td>
            <td><b>email</b></td>
            <td><b>password</b></td>
            <td><b>Action</b></td>
        </tr>
        </thead>
              <tr>
                  <c:forEach var = "users" items="${users}">
                <td>${users.userId}</td>
                <td>${users.username}</td>
                <td>${users.email}</td>
                <td>${users.password}</td>
                <td><a href="/delete?id=${users.username}">Delete</a></td>
                  </c:forEach>
            </tr>
    </table>


с трёх попыток найдёшь ошибку?
<td><a href="/delete?id=${users.username}">Delete</a></td> -?
но for each не из-за этого не выводит ничего
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430230
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277<td><a href="/delete?id=${users.username}">Delete</a></td> -?
но for each не из-за этого не выводит ничего
попытка 1 - провалена
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430233
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277но for each не из-за этого не выводит ничего
Что делает тэг <tr> и что находится в переменной users?
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430234
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

не подсказывать
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430235
Natalia_141277
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяNatalia_141277,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    <table class="table table-striped">
        <thead>
        <tr>
            <td><b>userId</b></td>
            <td><b>username</b></td>
            <td><b>email</b></td>
            <td><b>password</b></td>
            <td><b>Action</b></td>
        </tr>
        </thead>
              <tr>
                  <c:forEach var = "users" items="${users}">
                <td>${users.userId}</td>
                <td>${users.username}</td>
                <td>${users.email}</td>
                <td>${users.password}</td>
                <td><a href="/delete?id=${users.username}">Delete</a></td>
                  </c:forEach>
            </tr>
    </table>


с трёх попыток найдёшь ошибку?
если бы сама нашла, то не спрашивала бы:-)
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430237
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277если бы сама нашла, то не спрашивала бы:-)
тебе посказали, что есть ошибки
осталось их найти.
это тоже надо уметь делать. и это очень не просто.
попытайся.
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430240
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277,
правый клик в Ослике - показать исходный код.
Там уже подставленное из кода Java в HTML.
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430265
Natalia_141277
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczNatalia_141277но for each не из-за этого не выводит ничего
Что делает тэг <tr> и что находится в переменной users?

Тег <tr> служит контейнером для создания строки таблицы. Каждая ячейка в пределах такой строки может задаваться с помощью тега <th> или <td>.

тут все ок, создаем строку таблицы,
в items="${users}" - список юзеров, в var = "users" - юзер
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430270
Natalia_141277
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Natalia_141277Blazkowiczпропущено...

Что делает тэг <tr> и что находится в переменной users?

Тег <tr> служит контейнером для создания строки таблицы. Каждая ячейка в пределах такой строки может задаваться с помощью тега <th> или <td>.

тут все ок, создаем строку таблицы,
в items="${users}" - список юзеров, в var = "users" - юзер

вы к тому, что юзер - не строковый?
если нет, то я вообще ничего не понимаю:-)
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430272
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277Тег <tr> служит контейнером для создания строки таблицы. Каждая ячейка в пределах такой строки может задаваться с помощью тега <th> или <td>.
3-
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430279
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277если нет, то я вообще ничего не понимаю:-)
не надо себя загонять в угол. надо спокойно подумать....
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430281
Natalia_141277
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Natalia_141277,
правый клик в Ослике - показать исходный код.
Там уже подставленное из кода Java в HTML.

спасибо!:-)
будет доступ к идее, попробую!:-)
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430289
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277Тег <tr> служит контейнером для создания строки таблицы. Каждая ячейка в пределах такой строки может задаваться с помощью тега <th> или <td>.
И сколько строк в вашей таблице?

Natalia_141277тут все ок, создаем строку таблицы,
в items="${users}" - список юзеров, в var = "users" - юзер
items и var это аттрибуты тега forEach. А вопрос был про переменную users.
Вы только что расписались в полном нипонимании JSP. Нужно перестать копипастить код и сесть почитать учебники.
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430293
Natalia_141277
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczNatalia_141277Тег <tr> служит контейнером для создания строки таблицы. Каждая ячейка в пределах такой строки может задаваться с помощью тега <th> или <td>.
И сколько строк в вашей таблице?

Natalia_141277тут все ок, создаем строку таблицы,
в items="${users}" - список юзеров, в var = "users" - юзер
items и var это аттрибуты тега forEach. А вопрос был про переменную users.
Вы только что расписались в полном нипонимании JSP. Нужно перестать копипастить код и сесть почитать учебники.

насчет jsp вы правы, я даже отрицать не буду:-)
я просто пишу и учусь параллельно:-)
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430299
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277насчет jsp вы правы, я даже отрицать не буду:-)
я просто пишу и учусь параллельно:-)
Как обычно, девушки отвечают только на демагогические замечание, а не на вопросы по теме.
Давайте попробуем совсем прямо.
Почему в таблице помимо заголовка только одна строка?
Почему для списока пользователя и для одного пользователя используется та же самая переменная users?
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430313
Natalia_141277
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczNatalia_141277насчет jsp вы правы, я даже отрицать не буду:-)
я просто пишу и учусь параллельно:-)
Как обычно, девушки отвечают только на демагогические замечание, а не на вопросы по теме.
Давайте попробуем совсем прямо.
Почему в таблице помимо заголовка только одна строка?
Почему для списока пользователя и для одного пользователя используется та же самая переменная users?

:-))))))))))
блин, это ж надо было цикл не туда вставить...
как-то неудобно получилось:-)

спасибо большое!:-)
...
Рейтинг: 0 / 0
не подтягиваются данные из БД в jsp
    #39430330
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Natalia_141277блин, это ж надо было цикл не туда вставить...
но это только одна из ошибок :)
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / не подтягиваются данные из БД в jsp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]