Escolar Documentos
Profissional Documentos
Cultura Documentos
uma pgina HTML com trechos de programa Java embutidos Simplificam a gerao de contedo dinmico para Web Designers A pgina JSP automaticamente transformada em servlet
2
Arquitetura JSP
1.
2. 3.
O utilizador vai a uma pgina feita com JSP. O browser web efectua o pedido atravs da Internet. O pedido JSP enviado para o servidor web. O servidor web reconhece o pedido especial (extenso .jsp) e entrega o JSP ao JSP Servlet Engine.
Arquitetura JSP
4.
5.
6.
Se o JSP acessado pela primeira vez, processado, caso contrrio passa para o passo 7. O prximo passo gerar um Servlet especial do JSP. Todo o HTML necessrio convertido em declaraes println. O cdigo-fonte do servlet compilado numa classe
Arquitetura JSP
7.
8.
9.
instanciado o Servlet, chamando os mtodos init e service. O cdigo HTML produzido pelo Servlet enviado via Internet. Os resultados HTML so visualizados no web browser do utilizador.
Diretivas
Imports
Declaraes
Scriptlets
Diretivas
Include
Espresses
Tratamento de Erro
Objetos Implcitos
10
Ferramentas Utilizadas
Eclipse verso 3.1.2 para editar os Servlets Tomcat verso 5.5.12 como servidor web DreamWeaver verso 6.0 para editar
11
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>
12
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 promoo muito interessante para voc: Venha conferir ";
if(idade.equals("crianca")){ resposta = resposta + "nossos brinquedos!!!!"; } else if(idade.equals("adolescente")){ resposta = resposta + "nossa promoo de MP3 Players!!!"; } else if (idade.equals("adulto")){ resposta = resposta + "nossa promoo de CDs!!!"; } else { resposta = resposta + "nossas esteiras de descanso!!!"; } %>
13
Exemplo 1 S JSP
Resultado.jsp
14
Exemplo 1 S JSP
Dentro do tomcat/webapps
Cria
Cria
Coloca
15
Exemplo 1 S JSP
Inicia o tomcat A primeira navegao numa pgina JSP mais lenta pois o servlet est sendo criado e compilado, antes da execuo
16
Exemplo 1 S JSP
17
Criando o Servlet
public 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 promoo muito interessante para voc: Venha conferir "; if(idade.equals("crianca")){ resposta = resposta + "nossos brinquedos!!!!"; } else if(idade.equals("adolescente")){resposta = resposta + "nossa promoo de MP3 Players!!!"; } else if (idade.equals("adulto")){resposta = resposta + "nossa promoo 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); } }
18
Alterar Resultado.JSP
19
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>
20
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>
21
Cria a pasta tomcat\webapps\exemplo2\WEBINF\classes Coloca RetornaResultado.class nela Cria tomcat\webapps\exemplo2\WEB-INF\lib Coloca servlet.jar nela Reinicia o tomcat
22
A classe de servlet da pgina JSP pode ter, como qualquer classe, variveis de instncia (atributos) e variveis de classe (estticas) Atributos de objetos de escopo (nos escopos ServletContext, HttpSession, ServletRequest e PageContext) so criados e usados em scriptlets e expresses Componentes JavaBeans podem ser criados e acessados usando elementos JSP
23
No coloque business logic na pgina JSP! melhor encapsular o business logic em objetos Isso permite que Page Designers se concentrem em questes de apresentao
24
Referncias
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: Site da Sun: http://java.sun.com/
25
http://www.macromedia.com/support/dreamweaver/downloads_updaters.html