Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / не подтягиваются данные из БД в jsp / 25 сообщений из 39, страница 1 из 2
30.03.2017, 14:00
    #39430114
Natalia_141277
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
Добрый день!
Написала простой 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
30.03.2017, 14:14
    #39430131
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
Natalia_141277Написала простой web-проект c jsp, servlets, но почему-то не подтягиваются данные из БД в users.jsp.:-(
Посмотрите пожалуйста, может еще что-то полезное посоветуете.:-)

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

2. Откажитесь от использования JDBC API. Тем более в таком виде как у вас. Выходит огромная куча однообразного кода для простейших операций. А вдруг у вас в БД окажется 3-5 связанных сущностей, это всё выльется в огромную монструозную колбасу. Что уж говорить о реальных проектах, где количество таблиц легко переваливает за сотню.
...
Рейтинг: 0 / 0
30.03.2017, 14:34
    #39430156
Natalia_141277
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
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
30.03.2017, 14:41
    #39430167
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
Natalia_141277,

Так у вас ещё и свой собственный MVC фреймверк?
...
Рейтинг: 0 / 0
30.03.2017, 14:41
    #39430168
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
Natalia_1412771.
в JSTL есть вывод переменных на экран. И в JS есть. Отлаживайте.
...
Рейтинг: 0 / 0
30.03.2017, 14:42
    #39430172
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
А где код, который аттрибуты из View перекладывает в какое-то доступное для JSP место?
...
Рейтинг: 0 / 0
30.03.2017, 15:06
    #39430209
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
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
30.03.2017, 15:14
    #39430224
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
Natalia_141277,
2 ошибки
...
Рейтинг: 0 / 0
30.03.2017, 15:15
    #39430226
Natalia_141277
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
вадя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
30.03.2017, 15:18
    #39430230
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
Natalia_141277<td><a href="/delete?id=${users.username}">Delete</a></td> -?
но for each не из-за этого не выводит ничего
попытка 1 - провалена
...
Рейтинг: 0 / 0
30.03.2017, 15:19
    #39430233
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
Natalia_141277но for each не из-за этого не выводит ничего
Что делает тэг <tr> и что находится в переменной users?
...
Рейтинг: 0 / 0
30.03.2017, 15:20
    #39430234
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не подтягиваются данные из БД в jsp
Blazkowicz,

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

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

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

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

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

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

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

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

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

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

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

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

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


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