Возвращает список из базы данных в сервлете

#sql #list #jsp #servlets #oracle-sqldeveloper

#sql #Список #jsp #сервлеты #oracle-sqldeveloper

Вопрос:

Я пытаюсь вернуть список из своей базы данных, но без JSTL и таким образом (добавив немного html в сам сервлет. Это для моей школьной задачи). Вот мой код:

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        try {
            Connection conexao = (Connection) new ConexaoFactory().getConnection();
            Cliente cliente = new Cliente();
            PreparedStatement estrutura = conexao
                    .prepareStatement("SELECT * FROM TB_MOVTIN_CLIENTE");
            
            ResultSet resultadoDados = estrutura.executeQuery();
            while(resultadoDados.next()) {
                cliente.setId(resultadoDados.getInt("ID_CLIENTE"));
                cliente.setNome(resultadoDados.getString("NOME"));
                request.setAttribute("message",
                                "<h1>Retorno da seleção</h1>" 
                                  "<table border=1> "
                                  "<tr> "
                                  "<td>Identificação</td>"
                                  "<td>Nome</td> " 
                                  "</tr>" 
                                  "<tr> "
                                  "<td>"   cliente.getId()   "</td>" 
                                  "<td>"   cliente.getNome()   "</td>" 
                                  " </tr> </table>");
            }
            resultadoDados.close();
            estrutura.close();
        } catch (SQLException e) {
            System.out.print("Erro: ");
            e.printStackTrace();
        }
        RequestDispatcher dispatcher = request.getRequestDispatcher("selecionaCliente.jsp");
        dispatcher.forward(request, response);
    }
  

Ответ №1:

Вы должны быть более конкретны в этом вопросе.
1. Если вам нужно создать список: чтобы вернуть список, вы должны заранее создать список клиентов. В цикле while сначала инициализируйте новый объект Cliente, затем используйте метод set для установки атрибутов для этого объекта. Наконец, добавьте недавно созданный объект в список.
2. Если нет: замените request.setAttribute с помощью PrintWriter . Вы можете посмотреть здесь пример

 final PrintWriter writerA = response.getWriter();
writerA.println("A1");