Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Prtica acompanhada 1
[http://exemplos.googlecode.com/svn/trunk/scwcd/pa01/]
GET
Exemplo
http://www.google.com
http://www.google.com.br/search?q=kyriosdata
Em html (index.html)
Passos
Crie o arquivo index.html (veja slide anterior) Crie o descritor de implantao (web.xml) Crie Servlet que exibe argumentos recebidos, cas Compile, implante, inicie o Tomcat e experimente
</web-app>
Servlet
import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.*;
public class ObtemArgumento extends HttpServlet { public void service(HttpServletRequest r, HttpServletResonse s) throws ServletException, IOException { PrintWriter pw = s.getWriter(); String parametro = r.getParameter(a); pw.println(<html><body>); pw.println(<h1>Parmetro</h1>); pw.println(Argumento: a<br>Valor: + parametro); pw.println(</body></html>); } }
5
Compilao...
set CLASSPATH=%CLASSPATH%;<aqui> (win) CLASSPATH=$CLASSPATH:<aqui> (linux) javac -cp <aqui> ... startup.bat (windows) startup.sh (Linux) http://localhost:8080/pa01 (carrega index.html) http://localhost:8080/pa01/GET?a=testando
6
Experimentar
Resultado
Prtica acompanhada 2
[http://exemplos.googlecode.com/svn/trunk/scwcd/pa02/]
POST
Exemplo HTML
<html><body> <form name=teste method=POST action=/pa02/POST> <input type=text name=a> <input type=submit name=botao value=Envie> </form> </body></html>
Acrescente o arquivo index.html (veja acima) WEB-INF (conter web.xml) WEB-INF/classes (conter o Servlet)
</web-app>
10
Para experimentar
11
GET
Tipo de dado: texto (visvel por meio da URL) Quantidade de dados: em geral 255 caracteres Tipo de dado: qualquer (no visvel pela URL) Quantidade de dados: ilimitada Use GET para recuperar arquivo HTML, figura, ... Use POST para enviar dados (formulrio, senha, ...)
POST
Dicas:
12
Tratando requisies
Mtodos de HttpServlet
GET
HEAD
POST
PUT
DELETE
OPTIONS
TRACE
15
exemplo WEB-INF
18
</web-app>
19
20
21
} }
22
doGet()
PrintWriter pw = res.getWriter(); pw.println(<html><body>); pw.println(<h1>ExibeParametros</h1>);
Enumeration pars = req.getParameterNames(); String parametro; while (pars.hasMoreElements()) { parametro = (String) pars.nextElement(); pw.println(<br> + parametro + : ); pw.println(req.getParameter(parametro)); } pw.println(</body></html>);
23
24
http://localhost:8080/pa03 Apenas o ttulo ExibeParametros mostrado http://localhost:8080/pa03?a=1&b=2 Alm do ttulo seguem duas linhas: a: 1 b: 2
25
Resultado
26
Mtodo POST
Prtica acompanhada 4
[http://exemplos.googlecode.com/svn/trunk/scwcd/pa04/]
Problema
Crie pgina que captura o nome de uma cidade e Ao pressionar boto Envie, servidor retorna as i O contexto da aplicao dever ser pa04 Nome do Servlet dever ser pesquisa Classe que implementa ser Pesquisa URL da consulta ser /pesquisa
28
Soluo
Crie estrutura
diretrio pa04
subdiretrio WEB-INF
subdiretrio classes
29
30
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<servlet> <servlet-name>Pesquisa</servlet-name> <servlet-class>Pesquisa</servlet-class> </servlet> <servlet-mapping> <servlet-name>Pesquisa</servlet-name> <url-pattern>/pesquisa</url-pattern> </servlet-mapping> </web-app>
31
32
doPost()
PrintWriter pw = res.getWriter(); pw.println(<html><body>); pw.println(<h1>Pesquisa de Opinio</h1>); pw.println(Sua cidade preferida: <b>); pw.println(req.getParameter(cidade)); pw.println(</b><br>); pw.println(Estado: <b>); pw.println(req.getParameter(estado)); pw.println(</b><br><br>); pw.println(Muito obrigado!);
33
Execuo
URL (http://localhost:8080/pa04)
34
35
Tarefa
[http://exemplos.googlecode.com/svn/trunk/scwcd/pa05/]
Problema
Uma mensagem HTTP tem como um de seus ele O cabealho formado por vrias entradas. Faa um servlet que exiba todos os cabealhos d Dicas
HttpServletRequest.getHeaderNames() HttpServletRequest.getHeader(String)
37
Tarefas
[http://exemplos.googlecode.com/svn/trunk/scwcd/pa06/]
Problema
Lista de opes de pelo menos trs portais distint Usurio seleciona uma das opes e clica em bo Observe que o Servlet ir redirecionar o browser,
39
Dicas
HttpServletResponse.sendRedirect()
Se houver igualdade, ento redirecione para o portal c Seno, gere uma exceo
throw new RuntimeException(Algo estranho)
40
41