2.6 - HistoricoLivroVisitasDemoServlet.java
package br.aiec.controlador; import java.io.IOException; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.aiec.negocio.Pessoa; import br.aiec.persistencia.FabricaDao; import br.aiec.persistencia.IDAOPessoa; import br.aiec.persistencia.TipoBD; @WebServlet(name="HistoricoLivroVisitas", urlPatterns="/historicoLivroVisitas.do") public class HistoricoLivroVisitasDemoServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //Recuperando o bean criado na JSP Pessoa pessoaBean = (Pessoa)request.getAttribute("pessoaBean"); //Criando o objeto responsávevl por estabelecer a conexão com a persistência TipoBD tipoBD = TipoBD.valueOf(request.getParameter("tipoBD")); IDAOPessoa daoPessoa = FabricaDao.getDaoPessoa(tipoBD); //Persistindo o objeto pessoa no banco de dados daoPessoa.inserir(pessoaBean); //Consultando todos as pessoas existentes no banco de dados List<Pessoa> historicoVisitantes = daoPessoa.consultarTodasPessoas(); //Compartilhando a lista de histórico no contexto da aplicação getServletContext().setAttribute("historyVisits", historicoVisitantes); //Redirecionando para uma JSP exibir o histórico de visitantes RequestDispatcher dispatcher = request.getRequestDispatcher("ExibirHistorico.jsp"); dispatcher.forward(request, response); } }
Observe que o servlet recebe como parâmetro o tipo de base de dados (tipoBD) em que os dados devem ser gravados. A partir daí, o objeto DAO apropriado será criado e já se torna possível perceber o funcionamento do padrão de projeto em questão.