Baixe o app para aproveitar ainda mais
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
Compartilhar