Your SlideShare is downloading. ×
Java Web - MVC básico com JSP e Servlets
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Java Web - MVC básico com JSP e Servlets

11,021
views

Published on


0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
11,021
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
373
Comments
0
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. JSP & ServletsPadrão MVC com JSP e Servlets
  • 2. Por que este modelo não vingou?
  • 3. Sistema e Requisitos“Para que um sistema de informação alcance o objetivo para o qual foi desenvolvido deve satisfazer certos interesses específicos – os requisitos – sejam eles funcionais ou não funcionais”
  • 4. Tipos de Requisitos  Interface  Recuperação de Dados  Regras de Negócio  Orientação a Objeto   Modelagem
  • 5. O que ocorre se requisitos estiverem acoplados?
  • 6. Requisitos Acoplados
  • 7. Requisitos Acoplados Problemática  Dificuldade de Manutenção   Ex: Se o video queimar, tem que colocar tudo no conserto  Difícil Evolução Interface Recuperação De Dados Regras de Negócios
  • 8. Funcionalidades Acopladas Problemática InterfaceRecuperação Sistemas De Dados Regras de Negócios
  • 9. Separação de Interesses (SoC)  Melhor maneira de criar sistemas gerenciáveis   Separação de interesses, Parnas (1972)   Modularização  Por quê?   Ex: Não se pode assumir que uma lógica de negócios somente será acessada por uma única interface   Requisitos sempre mudam
  • 10. O que é umpadrão de projeto?
  • 11. O padrão Model-View-Controller  Como os Requisitos sempre mudam   é melhor que ocorra a separação da lógica de negócios da apresentação Lógica   Apresentação   de  Negócios     Nunca se deve assumir que uma lógica de negócios somente será acessada por uma aplicação web
  • 12. O padrão Model-View-Controller  Modelo   Representa a lógica do negócio   Aloja as entidades da aplicação   Pode interagir com a base de dados  Visão   Responsável por exibir as informações ao usuário  Controle   Faz o meio de campo 12
  • 13. O padrão Model-View-Controller  JSP e Servlets SEM MVC   Podemos considerar como o nosso primeiro exemplo de Servlet   Tudo estava no Servlet
  • 14. O padrão Model-View-Controller  JSP e Servlets com MVC   MVC retira a lógica de negócios e a interface de dentro dos servlets,   e põe em 2 camadas, a Modelo, usando classes Java simples e a Visão, com JSPs, respectivamente   Os servlets atuarão como a camada de Controle
  • 15. MVC no mundo dos CONTROLLER (Controlador) Servlets e JSPs Recupera a entrada do usuário a partir da requisição e o traduz para o modelo. MODEL (Modelo) Diz ao modelo para se atualizar e disponibiliza Guarda a lógica e o estado um novo estado para a visão do negócio. Conhece as regras para recuperar e alterar o estado. É a parte do sistemaVIEW (Visão) que interage com a base de dadosResponsável pelaapresentação. Recuperao estado do modeloatravés do controle.Também obtém aentrada do usuárioe repassa para ocontrole
  • 16. Mini Tutorial
  • 17. Mini Tutorial  3 passos   Estabeler a visão de usuário e uma arquitetura de alto nível   Criar as classes no Eclipse   Executar desenvolvimentos e testes iterativos
  • 18. Visão do usuárioSugestões de cervejas
  • 19. O Html  Crie 1 HTML na pasta WebContent do projeto
  • 20. O HTML<html><body><h1>Seleção de Cervejas</h1><form method="post“ action="SelecionarCerveja.do"> <p> Selecione as características da cerveja</p> Cor: <select name="cor" size="1"> <option>Clara</option> <option>Translucida</option> <option>Marron</option> <option>Escura</option> </select> <br/><br/> <p> <input type="submit“/> </p></form></body></html>
  • 21. O Html  Salve o HTML  Inicie o tomcat no Eclipse  Teste a página   http://localhost:8080/cervejaria/form.html
  • 22. O SERVLET
  • 23. Criar o Servlet  getParameter(“nomeDoParametro”):String   Método do HttpServletRequest   Informe o nome de um parâmetro vindo de uma requisição   E obtenha o valor(String) que o usuário informou No HTML (Visão) No Servlet (Controle
  • 24. Criar o Servletpublic class SelecaoCerveja extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType(“text/html”); PrintWriter out = response.getWriter(); String c = request.getParameter(“cor”); out.println(“<h1>Cervejas sugeridas</h1><br/>”); out.println(“<br/>Voce escolheu a cor ” + c); }}
  • 25. Editar o Deployment DescriptorMapeie o servlet   Escolha um nome lógico   Servlet-class   br.com.exemplo.web.SelecaoCerveja   Url   /SelecionarCerveja.do
  • 26. Testar  Iniciar o Tomcat  Teste a página   http://localhost:8080/curso/form.html  Selecione uma cor e clique em Enviar
  • 27. O MODELO
  • 28. Construir o Modelo  Pacote   br.com.exemplo.model   A classe de modelo deve possuir um método getMarcas()   Recebe uma cor e retorna uma lista de marcas
  • 29. CervejaExpert.javapackage br.com.exemplo.model;import java.util.*;public class CervejaExpert { public List<String> getMarcas(String cor) { List marcas = new ArrayList<String>(); if (cor.equals(“Clara”)) { marcas.add(“Antarctica”); marcas.add(“Brahma”); } else { marcas.add(“Bohemia”); marcas.add(“Original”); } return marcas; }}
  • 30. Como fazer o Controle acessar o Modelo?
  • 31. Como fazer o Controle acessar o Modelo? Instancie a classeCervejaExpert no Servlet
  • 32. Servlet Versão 2public class SelecaoCerveja extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType(“text/html”); PrintWriter out = response.getWriter(); String c = request.getParameter(“cor”); out.println(“<h1>Cervejas sugeridas</h1><br/>”); CervejaExpert ce = new CervejaExpert(); List<String> resultado = ce.getMarcas(c); Iterator it = resultado.iterator(); while(it.hasNext()) { out.println(“<br/>Experimente ” + it.next()); } }}
  • 33. O servlet deve disponibilizar um valor na requisição  setAttribute(“nomeDoAtributo”, valor)   Método do HttpRequest   Configure um objeto como um atributo   para ser recuperado através de um nome   Obs:   Esse valor será acessado pela JSP (passo 6)
  • 34. Servlet prepara a bola para a JSP  getRequestDispatcher(“pagina.jsp”): RequestDispatcher   Método do HttpRequest   Configura um objeto capaz de redirecionar o fluxo da aplicação para uma JSP
  • 35. Servlet passa a bola para a JSP  forward(request, response)   Método do RequestDispatcher   Redireciona o fluxo
  • 36. Servlet Versão 3public class SelecaoCerveja extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { String c = request.getParameter(“cor”); CervejaExpert ce = new CervejaExpert(); List resultado= ce.getMarcas(c); request.setAttribute(“marcas”, resultado); RequestDispatcher rd = request.getRequestDispatcher(“resultado.jsp”); rd.forward(request,response); }}
  • 37. Como a JSP acessará o atributo na requisição? Se  no  Servlet   Atcha, tcha, tcha, tcha!!! nós  usamos     Deve ser com umum  setA0ribute(),   getAttribute() , então...   passando o nome do atributo
  • 38. getAttribute(“nomeDoAtributo”)  Método do HttpRequest   Recupera um objeto como um atributo disponível na requisição   através de um nome
  • 39. Jsp como View resultado.jsp<%@ page import=“java.util” %><html><body><h1>Selecao de Cervejas</h1><p><% List marcas = (List) request.getAttribute(“marcas”); Iterator it = marcas.iterator(); while (it.hasNext()) { out.println(“<br>Experimente: ” + it.next()); }%></body></html>