JSP & ServletsPadrão MVC com JSP e Servlets
Por que este modelo         não vingou?
Sistema e Requisitos“Para que um sistema de informação  alcance o objetivo para o qual foi desenvolvido deve satisfazer ce...
Tipos de Requisitos    Interface    Recuperação de Dados    Regras de Negócio    Orientação a Objeto       Modelagem
O que ocorre se requisitos     estiverem acoplados?
Requisitos Acoplados
Requisitos Acoplados                               Problemática    Dificuldade de Manutenção       Ex: Se o video queima...
Funcionalidades Acopladas                       Problemática    InterfaceRecuperação                Sistemas De Dados   Re...
Separação de Interesses (SoC)    Melhor maneira de criar sistemas     gerenciáveis        Separação de interesses, Parna...
O que é umpadrão de projeto?
O padrão Model-View-Controller    Como os Requisitos sempre mudam        é melhor que ocorra a         separação da lógi...
O padrão Model-View-Controller    Modelo       Representa a lógica do negócio       Aloja as entidades da aplicação    ...
O padrão Model-View-Controller    JSP e Servlets SEM MVC       Podemos considerar como o nosso primeiro        exemplo d...
O padrão Model-View-Controller    JSP e Servlets com MVC         MVC retira a lógica de negócios e a interface de       ...
MVC no mundo dos   CONTROLLER (Controlador)          Servlets e JSPs   Recupera a entrada do usuário   a partir da requisi...
Mini Tutorial
Mini Tutorial    3 passos        Estabeler a visão de usuário e uma arquitetura         de alto nível         Criar as ...
Visão do usuárioSugestões de cervejas
O Html    Crie 1 HTML na pasta WebContent do projeto
O HTML<html><body><h1>Seleção de Cervejas</h1><form method="post“ action="SelecionarCerveja.do"> <p> Selecione as caracter...
O Html    Salve o HTML    Inicie o tomcat no Eclipse    Teste a página       http://localhost:8080/cervejaria/form.html
O SERVLET
Criar o                                                    Servlet    getParameter(“nomeDoParametro”):String        Méto...
Criar o                                                  Servletpublic class SelecaoCerveja extends HttpServlet {  public ...
Editar o                        Deployment DescriptorMapeie o servlet    Escolha um nome lógico    Servlet-class       ...
Testar    Iniciar o Tomcat    Teste a página       http://localhost:8080/curso/form.html    Selecione uma cor e clique...
O MODELO
Construir                                                o Modelo    Pacote        br.com.exemplo.model        A classe...
CervejaExpert.javapackage br.com.exemplo.model;import java.util.*;public class CervejaExpert {  public List<String> getMar...
Como fazer o Controle   acessar o Modelo?
Como fazer o Controle       acessar o Modelo?   Instancie a classeCervejaExpert no Servlet
Servlet                                             Versão 2public class SelecaoCerveja extends HttpServlet {  public void...
O servlet deve disponibilizar                um valor na requisição    setAttribute(“nomeDoAtributo”, valor)        Méto...
Servlet prepara a bola                             para a JSP    getRequestDispatcher(“pagina.jsp”): RequestDispatcher   ...
Servlet passa a bola                             para a JSP    forward(request, response)        Método do RequestDispat...
Servlet                                              Versão 3public class SelecaoCerveja extends HttpServlet {  public voi...
Como a JSP acessará                o atributo na requisição?  Se  no  Servlet             Atcha, tcha, tcha, tcha!!!   nós...
getAttribute(“nomeDoAtributo”)    Método do HttpRequest       Recupera um objeto como um atributo        disponível na r...
Jsp como View                              resultado.jsp<%@ page import=“java.util” %><html><body><h1>Selecao de Cervejas<...
Java Web - MVC básico com JSP e Servlets
Upcoming SlideShare
Loading in...5
×

Java Web - MVC básico com JSP e Servlets

13,442

Published on

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

No Downloads
Views
Total Views
13,442
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
493
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Java Web - MVC básico com JSP e Servlets

  1. 1. JSP & ServletsPadrão MVC com JSP e Servlets
  2. 2. Por que este modelo não vingou?
  3. 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. 4. Tipos de Requisitos  Interface  Recuperação de Dados  Regras de Negócio  Orientação a Objeto   Modelagem
  5. 5. O que ocorre se requisitos estiverem acoplados?
  6. 6. Requisitos Acoplados
  7. 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. 8. Funcionalidades Acopladas Problemática InterfaceRecuperação Sistemas De Dados Regras de Negócios
  9. 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. 10. O que é umpadrão de projeto?
  11. 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. 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. 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. 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. 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. 16. Mini Tutorial
  17. 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. 18. Visão do usuárioSugestões de cervejas
  19. 19. O Html  Crie 1 HTML na pasta WebContent do projeto
  20. 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. 21. O Html  Salve o HTML  Inicie o tomcat no Eclipse  Teste a página   http://localhost:8080/cervejaria/form.html
  22. 22. O SERVLET
  23. 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. 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. 25. Editar o Deployment DescriptorMapeie o servlet   Escolha um nome lógico   Servlet-class   br.com.exemplo.web.SelecaoCerveja   Url   /SelecionarCerveja.do
  26. 26. Testar  Iniciar o Tomcat  Teste a página   http://localhost:8080/curso/form.html  Selecione uma cor e clique em Enviar
  27. 27. O MODELO
  28. 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. 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. 30. Como fazer o Controle acessar o Modelo?
  31. 31. Como fazer o Controle acessar o Modelo? Instancie a classeCervejaExpert no Servlet
  32. 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. 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. 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. 35. Servlet passa a bola para a JSP  forward(request, response)   Método do RequestDispatcher   Redireciona o fluxo
  36. 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. 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. 38. getAttribute(“nomeDoAtributo”)  Método do HttpRequest   Recupera um objeto como um atributo disponível na requisição   através de um nome
  39. 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>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×