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.

Copyright © 2014 AIEC.