Você está na página 1de 11

UNIP Centro Universitrio de Joo Pessoa

Desenvolvimento para Web HTTP e Servlets

JSP e Servlet Princpio de MVC Princpio


Prof. Eduardo Ribas ducaribas@gmail.com
1 12 JSP e Servlets

Desenvolvimento para Web HTTP e Servlets

Prof. Eduardo Ribas

Desvantagens de JSP e Servlets

Servlets
Escrever cdigo HTML dentro de cdigo Java pode ser complicado:
Falta de um editor. Mistura de linguagens. Imagine uma pgina com mais de 1.000 linhas de cdigo para ser gerada por um Servlet...

JSP
Escrever cdigo Java dentro de cdigo HTML pode ser complicado:
Mistura de linguagens. Imagine uma pgina com algoritmos muito complicados.

Captulo JSP e Servlets 12 1 Conceitos Bsicos

Desenvolvimento para Web HTTP e Servlets

Prof. Eduardo Ribas

MVC: Model View Controller

A soluo consiste em usar os dois: JSP + Servlet; Porm, cada um fazendo aquilo que lhe convm. MVC no assunto desta disciplina, vamos mostrar apenas um princpio do seu uso na WEB.
Browser + JSP (View)

Servlet (Controller)

Model

Captulo JSP e Servlets 12 1 Conceitos Bsicos

Desenvolvimento para Web HTTP e Servlets

Prof. Eduardo Ribas

MVC: Model View Controller

O usurio s v pginas geradas por JSP;


Nenhum cdigo HTML encontrado em um Servlet.

Toda ao do usurio (links, processada por um Servlet;

formulrios,

etc.)

Nenhum link gerado para o usurio possui um *.jsp.

O Servlet quem chama as classes do modelo da aplicao; Aps o processamento, quando necessrio exibir os dados na tela, o Servlet redireciona a execuo para um JSP;
response.sendRedirect(pagina.jsp);

Captulo JSP e Servlets 12 1 Conceitos Bsicos

Desenvolvimento para Web HTTP e Servlets

Prof. Eduardo Ribas

Exemplo: Carrinho de Compras

Vamos implementar uma pgina de carrinho de compras de livros; Temos um JSP que exibe a lista de livros para compra e o atual contedo do carrinho; Dois Servlets: um para adio de livros ao carrinho, e outro para remoo; As classes que gerenciam o carrinho (model) esto no pacote carrinho.*, no jar carrinho.jar;

Captulo JSP e Servlets 12 1 Conceitos Bsicos

Desenvolvimento para Web HTTP e Servlets

Prof. Eduardo Ribas

Exemplo: ListaCatalogo.jsp
<%@ <%@ <%@ <%@ page page page page import="java.util.Iterator" %> import="java.util.List"%> import="carrinho.*" %> contentType="text/html" %>

<html><head><title>Livros de Java</title></head> <body><h1 align="center">Livros de Java</h1> <% for (Iterator<Item> it = Catalogo.iterator(); it.hasNext(); ) { Item item = it.next(); %> <hr> <form action="/pratica/servlet/PedidoServlet"> <input type="hidden" name="itemId" value="<%=item.getItemID()%>"> <h2><%=item.getDescricaoCurta()%> (R$ <%=item.getPreco()%>) <%=item.getDescricaoLonga()%></h2> <center> <input type="submit" value="Adicionar"> </center></form> <% } %> <hr> <hr>
6 Captulo JSP e Servlets 12 1 Conceitos Bsicos

Desenvolvimento para Web HTTP e Servlets

Prof. Eduardo Ribas

Exemplo: ListaCatalogo.jsp

<h1 align="center">Carrinho</h1> <% Carrinho carrinho = (Carrinho) session.getAttribute("carrinho"); List<ItemCarrinho> itens = null; if (carrinho != null) { itens = carrinho.getItemsCarrinho(); } if (itens == null || itens.size() == 0) { %> <b>No h itens no carrinho!</b> <% } else { ...

Captulo JSP e Servlets 12 1 Conceitos Bsicos

Desenvolvimento para Web HTTP e Servlets

} else { %> Exemplo: ListaCatalogo.jsp <table border="1" align="center"> <tr><th>ID do Item</th><th>Descrio</th> <th>Custo Unitrio</th><th>Quantidade</th> <th>Custo Total</th><th>Remover</th></tr> <% for (ItemCarrinho item : itens) { %> <tr><td><%= item.getItemID()%></td> <td><%= item.getDescricaoCurta()%></td> <td><%= item.getPrecoUnitario()%></td> <td><%= item.getNumItens()%></td> <td><%= item.getPrecoTotal()%></td> <td><form name="form1" method="post" action="/pratica/servlet/RemoveServlet"> <input type="hidden" name="itemId" value="<%= item.getItemID()%>"> <input type="submit" value="Remover"> </form></td> </tr> <% } %> </table> <% } %> <hr></body></html>
Captulo JSP e Servlets 12 1 Conceitos Bsicos

Prof. Eduardo Ribas

Desenvolvimento para Web HTTP e Servlets

Prof. Eduardo Ribas

Exemplo: PedidoServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(true); Carrinho carrinho = (Carrinho) session.getAttribute("carrinho"); if (carrinho == null) { carrinho = new Carrinho(); session.setAttribute("carrinho", carrinho); } String itemId = request.getParameter("itemId"); if (itemId != null) { carrinho.adicioneItem(itemId); } response.sendRedirect("/pratica/ListaCatalogo.jsp"); }
9 Captulo JSP e Servlets 12 1 Conceitos Bsicos

Desenvolvimento para Web HTTP e Servlets

Prof. Eduardo Ribas

Exemplo: RemoveServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(true); Carrinho carrinho = (Carrinho) session.getAttribute("carrinho"); if (carrinho == null) { carrinho = new Carrinho(); session.setAttribute("carrinho", carrinho); } String itemId = request.getParameter("itemId"); if (itemId != null) { carrinho.removeItem(itemId); } response.sendRedirect("/pratica/ListaCatalogo.jsp");
10

Captulo JSP e Servlets 12 1 Conceitos Bsicos

UNIP Centro Universitrio de Joo Pessoa

Desenvolvimento para Web HTTP e Servlets

JSP e Servlet Princpio de MVC Princpio


Prof. Andr Figueiredo andre.unipe@gmail.com
11 12 JSP e Servlets

Você também pode gostar