Como inserir dados de um bd em uma table de HTML

O meu problema em questão, vem a partir do ponto de como posso inserir os dados de meu bd, na tabela que fiz com html, por não estar inserindo os dados, aparenta que nem o servlet está executando, o código da tabela é o seguinte:

public class ListaProduto extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
Connection conexao = ConnectionFactoryMercearia.getConnection();
Produto produto = new Produto();
PrintWriter gravador = resp.getWriter();

	gravador.println("<html>");
	gravador.println("<style>");
	gravador.println("table, th, td { border:1px solid black; }");
	gravador.println("</style>");
	gravador.println("<head><title>ListaDeProdutos</title></head>");
	
	gravador.println("<body>");
	gravador.println("<h1>Lista dos Produtos</h1><br>");
	gravador.println("<table style = 'width:100%' >");
	gravador.println("<tr>");
	gravador.println("<th>Descricao</th>");
	gravador.println("<th>Valor de Custo</th>");
	gravador.println("<th>Valor de Venda</th>");
	gravador.println("<th>Garantia</th>");
	gravador.println("<th>Estoque</th>");
	gravador.println("<th>Codigo de Barras</th>");
	gravador.println("<th>Nome do Vendedor</th>");
	gravador.println("</tr>");
	
	
	gravador.println("<tr>");
	gravador.println("</tr>");
	//Problema de inserção em questão
	
	
	gravador.println("<a href =http://localhost:8080/TesteWeb/Mercearia.html>Voltar</a><br>");
	gravador.println("</body>");
	gravador.println("</html>");
}

}

Bem, ao que tudo indica é por meio do servlet que é pra eu criar essa listagem de produtos no html, contudo procurei na internet e em sites, mas não achei nada a respeito de como posso realizar isso, puxando do bd e inserindo nesse Writer, alguem com conhecimento em html poderia me auxiliar em como posso efetuar essa inserção ?

Consegue usar o objeto conexao para listar os registros do seu banco?

Consigo por meio desse metodo:

public List listarProdutos() throws SQLException {
String sql = " select * from produto order by codigo";
PreparedStatement comando = conexao.prepareStatement(sql);
ResultSet rs = comando.executeQuery();
Listproduto = new ArrayList();
while(rs.next() ) {
Produto produtoInsere = new Produto();
produtoInsere.setDescricao(rs.getString(“Descricao”));
produtoInsere.setValorDeCusto(rs.getDouble(“ValCusto”));
produtoInsere.setValorDeVenda(rs.getDouble(“ValVenda”));
produtoInsere.setGarantia(rs.getInt(“Garantia”));
produtoInsere.setEstoque(rs.getInt(“Estoque”));
produtoInsere.setCodigoDeBarras(rs.getString(“CodigoDeBarras”));
produtoInsere.setNomeDoVendedor(rs.getString(“NomeDoVendedor”));

		produto.add(produtoInsere);
	}
	return produto;

}

Com isso não vejo uma forma de jogar esses dados em uma table de html

image

Eu tentei fazer da mesma forma como executei antes em outra table mas em tela, contudo não tem a mesma realização ao que tudo indica.

Você tentou usar expressões lâmbda onde não faz sentido.

Eu mudaria o retorno do seu método para:

public List<Produto> listarProdutos() throws SQLException {

Depois no seu Servlet faria assim:

public class ListaProduto extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter gravador = resp.getWriter();

        gravador.println("<html>");
        gravador.println("<style>");
        gravador.println("table, th, td { border:1px solid black; }");
        gravador.println("</style>");
        gravador.println("<head><title>ListaDeProdutos</title></head>");

        gravador.println("<body>");
        gravador.println("<h1>Lista dos Produtos</h1><br>");
        gravador.println("<table style = 'width:100%' >");
        gravador.println("  <tr>");
        gravador.println("    <th>Descricao</th>");
        gravador.println("    <th>Valor de Custo</th>");
        gravador.println("    <th>Valor de Venda</th>");
        gravador.println("    <th>Garantia</th>");
        gravador.println("    <th>Estoque</th>");
        gravador.println("    <th>Codigo de Barras</th>");
        gravador.println("    <th>Nome do Vendedor</th>");
        gravador.println("  </tr>");

        for (Produto p : listarProdutos()) {
            gravador.println("  <tr>");
            gravador.println("    <td>" + p.getDescricao() + "</td>");
            gravador.println("    <td>" + p.getValorDeCusto() + "</td>");
            gravador.println("    <td>" + p.getValorDeVenda() + "</td>");
            gravador.println("    <td>" + p.getGarantia() + "</td>");
            gravador.println("    <td>" + p.getEstoque() + "</td>");
            gravador.println("    <td>" + p.getCodigoDeBarras() + "</td>");
            gravador.println("    <td>" + p.getNomeDoVendedor() + "</td>");
            gravador.println("  </tr>");
        }
        
        gravador.println("</table>");

        gravador.println("<a href =http://localhost:8080/TesteWeb/Mercearia.html>Voltar</a><br>");
        gravador.println("</body>");
        gravador.println("</html>");
    }

    public List<Produto> listarProdutos() throws SQLException {
        String sql = " select * from produto order by codigo";
        Connection conexao = ConnectionFactoryMercearia.getConnection();
        PreparedStatement comando = conexao.prepareStatement(sql);
        ResultSet rs = comando.executeQuery();
        List<Produto> produtos = new ArrayList<>();
        while (rs.next() ) {
            Produto produto = new Produto();
            produto.setDescricao(rs.getString("Descricao"));
            produto.setValorDeCusto(rs.getDouble("ValCusto"));
            produto.setValorDeVenda(rs.getDouble("ValVenda"));
            produto.setGarantia(rs.getInt("Garantia"));
            produto.setEstoque(rs.getInt("Estoque"));
            produto.setCodigoDeBarras(rs.getString("CodigoDeBarras"));
            produto.setNomeDoVendedor(rs.getString("NomeDoVendedor"));

            produtos.add(produto);
        }
        return produtos;
    }
}
1 curtida