Vamos agora criar o nosso Servlet que irá utilizar os serviços oferecidos pelo nosso DAO.
Servlet
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author User
*/
public class ListarProdutos extends HttpServlet {
/**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//variável que controla para qual view rotear após a execução desse Servlet
String view = "";
//Vamos criar uma conexão com o banco de Dados para passar ao nosso Dao.
//É esse servlet que irá gerenciar a conexão
java.sql.Connection con = null;
try {
con = Conexao.fabricar();//padrão factory, classe descrita depois desse servlet.
con.setAutoCommit(false);//permitindo transações
ProdutoDao dao = new ProdutoDao(con);
List<Produto> produtos = dao.listarTodos();
con.commit();
//manda para a view
request.setAttribute("produtos",produtos);
view = "listagem.jsp";
} catch(Exception ex){
view = "erro.jsp";
try{
con.rollback();
}catch(Exception ex2){}
}finally {
try{
con.close();
}catch(Exception ex3){}
}
request.getRequestDispatcher(view).foward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP
* <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP
* <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Não esqueça de registrar seu Servlet no arquivo web.xml, logo abaixo da tag <web-app> inclua:
web.xml
<servlet>
<servlet-name>ListarProdutos</servlet-name>
<servlet-class>servlets.ListarProdutos</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ListarProdutos</servlet-name>
<url-pattern>/ListarProdutos</url-pattern>
</servlet-mapping>
Agora a classe Fábrica de Conexões:
Conexao.java
Conexao.java
public class Conexao {
public static Connection fabricar() throws Exception {
Class.forName("com.mysql.jdbc.Driver").newInstance();
return DriverManager.getConnection("jdbc:mysql://localhost/banco" ,"usuario" ,"senha" );
}
}
No próximo post implementaremos a View com JSP e JSTL.
Gustavo Marques.
Nenhum comentário:
Postar um comentário