25
Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

Embed Size (px)

Citation preview

Page 1: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

Java Server Pages

Um estudo de caso para aprendizagem

Renata França de Pontes

Page 2: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

2

O que é uma Página JSP?

É uma página HTML com trechos de programa Java embutidos

Simplificam a geração de conteúdo dinâmico para Web Designers

A página JSP é automaticamente

transformada em servlet

Page 3: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

3

Porque usar Páginas Dinâmicas

Permite o desenvolvimento de aplicações do lado do servidor

Page 4: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

4

Porque usar JSP

Baseado em Java, uma linguagem OO Reutilização de componentes Vantagens do Java (segurança,

portabilidade, ...)

Plataformas múltiplas (JRUN-IIS e Tomcat-Apache)

Ser open-source

Page 5: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

5

Arquitetura JSP

1. O utilizador vai a uma página feita com JSP. O browser web efectua o pedido através da Internet.

2. O pedido JSP é enviado para o servidor web.

3. O servidor web reconhece o pedido especial (extensão .jsp) e entrega o JSP ao JSP Servlet Engine.

Page 6: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

6

Arquitetura JSP

4. Se o JSP é acessado pela primeira vez, é processado, caso contrário passa para o passo 7.

5. O próximo passo é gerar um Servlet especial do JSP. Todo o HTML necessário é convertido em declarações println.

6. O código-fonte do servlet é compilado numa classe

Page 7: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

7

Arquitetura JSP

7. É instanciado o Servlet, chamando os métodos init e service.

8. O código HTML produzido pelo Servlet é enviado via Internet.

9. Os resultados HTML são visualizados no web browser do utilizador.

Page 8: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

8

Diretivas

Imports <%@ page import="java.util.*, cart.*" %>

Declarações <%! private DB db = null; ...%>

Scriptlets <% código java %>

Page 9: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

9

Diretivas

Include <%@ include file="initdestroy.jsp" %>

Espressões <%= variável %>

Tratamento de Erro <%@ page isErrorPage="true" %> <%@ page errorPage="errorpage.jsp"%>

Page 10: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

10

Objetos Implícitos

Retirado do material do Prof. Jacques

Page 11: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

11

Ferramentas Utilizadas

Eclipse versão 3.1.2 para editar os Servlets

Tomcat versão 5.5.12 como servidor web

DreamWeaver versão 6.0 para editar Html JSP XML

Page 12: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

12

Exemplo 1 – Só JSP Index.htm

<form name="form1" method="post" action="resultado.jsp"> Seu Nome: <input type="text" name="nome" value="">Sexo: <label><input type="radio" name="sexo" value="M"> M</label> <label> <input type="radio" name="sexo" value="F"> F</label>Idade:

<label><input type="radio" name="idade" value="crianca">0 - 12</label> <label><input type="radio" name="idade" value="adolescente">13 - 18</label> <label><input type="radio" name="idade" value="adulto"> 19 - 65</label> <label><input type="radio" name="idade" value="idoso">66 - 120</label>

<input type="submit" name="Submit" value="enviar"></form>

Page 13: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

13

Exemplo 1 – Só JSP Resultado.JSP<% String nome = request. getParameter("nome");

String sexo = request. getParameter("sexo");String idade =request. getParameter("idade");

String resposta = "Olá " + nome + ", estamos muito felizes de ";if(sexo.equals("M")) {

resposta = resposta + "te-lo";} else {

resposta = resposta + "te-la";}

resposta = resposta + " conosco. Temos uma promoção muito interessante para você: Venha conferir ";

if(idade.equals("crianca")){resposta = resposta + "nossos brinquedos!!!!";

} else if(idade.equals("adolescente")){resposta = resposta + "nossa promoção de MP3 Players!!!";

} else if (idade.equals("adulto")){resposta = resposta + "nossa promoção de CDs!!!";

} else {resposta = resposta + "nossas esteiras de descanso!!!";

} %>

Page 14: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

14

Exemplo 1 – Só JSP

Resultado.jsp

<p align="center"><%=resposta%> </p>

Page 15: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

15

Exemplo 1 – Só JSP

Dentro do tomcat/webapps

Cria uma pasta exemplo1

Cria exemplo1/WEB-INF

Coloca o index.htm e o resultado.jsp em exemplo1

Page 16: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

16

Exemplo 1 – Só JSP

Inicia o tomcat

A primeira navegação numa página JSP é mais lenta pois o servlet está sendo criado e compilado, antes da execução

Page 17: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

17

Exemplo 1 – Só JSP

Resultado.jsp

<%@ include file="banner.htm" %>

Page 18: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

18

Exemplo 2 – JSP e Servlet Criando o Servletpublic class RetornaResultado extends HttpServlet {

public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter();

String nome = request.getParameter("nome");String sexo = request.getParameter("sexo");String idade = request.getParameter("idade");

String resposta = "Olá " + nome + ", estamos muito felizes de ";if(sexo.equals("M")) {resposta = resposta + "te-lo";} else {resposta = resposta + "te-la";}resposta = resposta + " conosco. Temos uma promoção muito interessante para você: Venha conferir ";if(idade.equals("crianca")){ resposta = resposta + "nossos brinquedos!!!!";} else if(idade.equals("adolescente")){resposta = resposta + "nossa promoção de MP3 Players!!!";} else if (idade.equals("adulto")){resposta = resposta + "nossa promoção de CDs!!!";}else {resposta = resposta + "nossas esteiras de descanso!!!";}

request.setAttribute("resposta", resposta); forward("resultado.jsp", request, response); }private void forward(String viewPage, HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

RequestDispatcher rd = req.getRequestDispatcher("/"+viewPage);rd.forward(req,res);}

}

Page 19: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

19

Exemplo 2 – JSP e Servlet

Alterar Resultado.JSP

<% String resposta = (String)request.getAttribute("resposta");%>

<p align="center"><%=resposta%> </p>

Page 20: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

20

Exemplo 2 – JSP e Servlet

Criar web.xml

<display-name>Exemplo2</display-name> <description>Aprendendo JSP e Servlet</description> <servlet> <servlet-name>RetornaResultado</servlet-name> <servlet-class>RetornaResultado</servlet-class> </servlet> <servlet-mapping> <servlet-name>RetornaResultado</servlet-name> <url-pattern>/RetornaResultado</url-pattern> </servlet-mapping> </web-app>

Page 21: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

21

Exemplo 2 – JSP e Servlet Alterar Index.htm

<form name="form1" method="post" action=“RetornaResultado"> Seu Nome: <input type="text" name="nome" value="">Sexo: <label><input type="radio" name="sexo" value="M"> M</label> <label> <input type="radio" name="sexo" value="F"> F</label>Idade:

<label><input type="radio" name="idade" value="crianca">0 - 12</label> <label><input type="radio" name="idade" value="adolescente">13 - 18</label> <label><input type="radio" name="idade" value="adulto"> 19 - 65</label> <label><input type="radio" name="idade" value="idoso">66 - 120</label>

<input type="submit" name="Submit" value="enviar"></form>

Page 22: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

22

Exemplo 2 – JSP e Servlet

Cria a pasta tomcat\webapps\exemplo2\WEB-INF\classes

Coloca RetornaResultado.class nela

Cria tomcat\webapps\exemplo2\WEB-INF\lib

Coloca servlet.jar nela

Reinicia o tomcat

Page 23: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

23

Objetivos Específicos de Aplicação

Há 3 formas de criar objetos numa página JSP

A classe de servlet da página JSP pode ter, como qualquer classe, variáveis de instância (atributos) e variáveis de classe (estáticas)

Atributos de objetos de escopo (nos escopos ServletContext, HttpSession, ServletRequest e PageContext) são criados e usados em scriptlets e expressões

Componentes JavaBeans podem ser criados e acessados usando elementos JSP

Page 24: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

24

Objetivos Específicos de Aplicação

Não coloque business logic na página JSP!

É melhor encapsular o business logic em objetos

Isso permite que Page Designers se concentrem em questões de apresentação

Page 25: Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes

25

Referências• Site da disciplina de DACA: http://www.dsc.ufcg.edu.br/~jacques/cursos/2005.2/daca/

• Site sobre HotsPots que utiliza JSP em seu modelo: http://sweet.ua.pt/~a21539/app_hotspots.ppt

• Site do Eclipse:http://www.eclipse.org/

•Site do Tomcat:http://tomcat.apache.org/

• Site do DreamWeaver: http://www.macromedia.com/support/dreamweaver/downloads_updaters.html

•Site da Sun:http://java.sun.com/