Buscar

Padrão MVC

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Padrão MVC
Uneb – LTP3
O que estudamos até agora?
HTML e javaScript
Servlet e JSP
Beans
JDBC
Mas qual a melhor opção para utilizarmos?
Servlet ou JSP?
Escrever HTML dentro de uma Servlet é no mínimo “deselegante”
Usar apenas JSP também não é interessante 
Muito código java dentro do jsp
Vamos aproveitar o que há melhor em cada um deles!
JSP foi feito para apresentar resultados, não para instanciar objetos, acessar banco, etc.
Esse tipo de código deve estar em classes Java (servlets)
Vamos analisar um exemplo de servlet para incluir os dados de um aluno
protected void processRequest(HttpServletRequest request, HttpServletResponse response) {
// acessa o bean
Aluno a = new Aluno(); 
// chama os setters ...
a.setNome(request.getParameter(“nome”);
...
// adiciona ao banco de dados
a.salvar();
 
// visualização do resultado
out.println("<html>"); 
out.println("<body>"); 
out.println(“Aluno " + a.getNome() + " adicionado com sucesso"); 
out.println("</body>"); 
out.println("</html>"); 
}
Código Java
Código HTML
Poderíamos ter um arquivo .jsp com a parte de apresentação separada!
Precisamos redirecionar requisições
de um servlet para um JSP
Cliente
Servlet
JSP
Beans
Banco
Fazemos um dispatch das requisições 
 O JSP é apenas um renderizador 
 O processamento (negocio) já foi executado
Redirecionamento
A API do java permite redirecionar requisições
Basta conhecer a URL que queremos acessar
Usamos o objeto RequestDispatcher
RequestDispatcher rd = request .getRequestDispatcher(“confirmacaoAluno.jsp"); 
rd.forward(request,response);
O método forward só pode ser chamado quando nada foi ainda escrito para a saída. 
No momento que algo for escrito, fica impossível redirecionar o usuário, pois o protocolo HTTP não possui meios de voltar atrás naquilo que já foi enviado ao cliente.
Voltando ao MVC 
(Model View Controller)
Controller: Nossa servlet funciona como um controlador responsável por receber requisições, processá-las (acessando beans) e redirecionar a saída para um JSP.
Páginas JSP
Servlet
JSP
Beans
Banco
View: responsável pela apresentação dos dados
Model: processamento da lógica, acesso ao banco.
DAO (Data Access Object)
Não é interessante colocar SQL dentro da nossa lógica (classes de negócio)
O padrão DAO orienta a criação de classes específicas para fazer acesso ao banco de dados. Pode-se implementar uma classe DAO para persistir cada classe do negócio
Nesta classe teremos os métodos para CRUD (incluir, alterar, excluir, consultar)
Vamos implementar um exemplo
Criar uma pagina JSP para cadastro de alunos como cpf, nome, telefone e email. (View)
Criar uma pagina de confirmação do cadastro com a mensagem “cadastro efetuado com sucesso” chamada confirmaCadAluno.jsp, que será chamada pela Servlet (View)
Criar uma servlet controlador que será chamada no action na pagina de cadastro de alunos (Controller)
Receber os dados digitados na página
Criar o objeto Aluno (classe de negocio)
Setar os atributos de alunos
Criar o objeto AlunoDAO
Chamar o método salvar
Redirecionar a requisição para uma página JSP de confirmação do cadastro (confirmaCadAluno.jsp) 
Criar o bean Aluno (Model)
Criar a classe AlunoDAO com o método salvar (Model)
Criar um banco com uma tabela chamada Aluno 
Criar a classe Banco (para registrar o banco e fazer a conexao) (Model)
Rodar a aplicação

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando