JSP-Servlets - IME-USP

Propaganda
Servlets, JSP e
Web Services
Eider Oliveira
13 de junho de 2002
Interação Cliente Servidor
na Internet
Código cliente:


Applets

JavaScript

Alternativas da Microsoft
Código servidor


CGI, NSAPI, ISAPI

PHP, Coldfusion, ASP, etc

Servlets
Protocolo HTTP
Protocolo sem estado (“stateless”)
Solicitações:


Get

Post
Resposta:


página HTML
Solicitação GET
GET /index.html HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.08 [en] (X11; I; Linux 2.0.36 i586; Nav)
Host: silverfish.sd.monash.edu.au:3213
Accept: image/gif, image/jpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Resposta
HTTP/1.1 200 OK
Date: Mon, 10 May 1999 06:15:49 GMT
Server: Apache/1.3.0 (Unix)
Connection: close
Content-Type: text/html
<HTML><HEAD>
<meta http-equiv="refresh" content="0;
URL=http://bcomp.csse.monash.edu.au/">
</HEAD>
Formulário
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="servlet/Hello">
Qual seu nome?
<INPUT TYPE=TEXT NAME="nome"><P>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
Envio de dados: POST
POST /servlet/Hello HTTP/1.0
Referer: http://silverfish.sd.monash.edu.au:3213/
Connection: Keep-Alive
User-Agent: Mozilla/4.08 [en] (X11; I; Linux 2.0.36 i586; Nav)
Host: silverfish.sd.monash.edu.au:3213
Accept: image/gif, image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Content-type: application/x-www-form-urlencoded
Content-length: 22
nome=Ex+President+Bush
Servlets
 Programas
 Executam
 Atendem
 Atuam
em Java
exclusivamente no servidor
requisições GET e POST
conjuntamente com o Servidor Web
Servlets
Máquina Cliente
Máquina Servidora
Solicitação e parâmetros
Browser
Servlet Server
Resposta (HTML)
Servlet
Servlet
Servlet
Características de uma
Servlet
 Baixo
 Uma
consumo de memória
instância atende diversas requisições
 Possibilita
 Grande
reutilização de recursos caros
velocidade de execução
Uma Servlet Simples
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class EchoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
ServletOutputStream out = response.getOutputStream();
out.println("<HTML><BODY>“);
out.println("the value of parameter theParameter is “);
out.println(request.getParameter("theParameter"));
out.println("</BODY></HTML>");
}
}
Problemas...
A
interface HTML está difusa dentro do
código Java
 Qualquer
alteração visual implica em
recompilação da Servlet
 Quem
modifica os fontes: o Webmaster
ou o programador?
Solução: JSP
 Java
Server Pages
 Código
Java dentro das páginas HTML
(Scriptlet)
 Compilação
 Uso
transparente em Servlets
de JavaBeans e Taglibs
Exemplo de JSP
<HTML>
<HEAD>
<TITLE>JSP example</TITLE>
</HEAD>
<BODY>
<%
out.println(“Good afternoon “+ request.getParameter(“name”));
%>
</BODY>
</HTML>
“E que *&%@!! são Web Services?”
 SOAP:
uma outra forma de RPC?
 Fundamentalmente:
 XML:
lento e complexo
 Mas
A
sim
interoperável!
mágica dos padrões da indústria…
 Indo além do arquitetado e alcançando o
dinâmico
 RPC: foi uma boa idéia nos anos 70 e
continua sendo uma boa idéia.
Web Services...
“A” aplicação: Sinergia

Onde estão meus distribuidores,
cobradores, vendedores.

Um sistema de saúde sem redigitação
de formulários

Uma loja promove leilão do seu saldo
de estoque

Java Web Services
Developer Pack



APIs de Web Services e Applicações:

Java API for XML Processing (JAXP) , RPC (JAX-RPC),
Messaging (JAXM), Registries (JAXR)

UDDI-based registry server (Universal Description,
Discovery and Integration)

The JSP Standard Tag Library
Desenvolvimento e testes:

A UDDI-based registry server

Apache Tomcat

Java Secure Socket Extension (JSSE)

Apache Ant build tool
Documentação
Curvas de Adoção
Established
Applets
Deployment
Experiments
Launch
95 96 97 98 99 00 01 02
Evolução da Computação Distribuída
Client-Server
Catch Phrase The Network Is
the Computer
3/N-Tier
Web Apps
Objects
Legacy to
the Web
Web Services
The Computer Is
the Network
Next
After that
Network of
Embedded
Things
Network of
Things
System
Collections
Components
Scale
When/Peak
Leaf Protocol(s)
100s
1000s
1000000s
10000000s
100000000s
1000000000s
1984/1987
1990/1993
1996/1999
2001/2003
1998/2004
2004/2007
X
X
+HTTP +RMI
+JVM)
Directory(s)
NIS, NIS+
+ CDS
Session
RPC, XDR
+CORBA
+ LDAP (*)
+XML,
+UDDI
+CORBA, RMI + SOAP, XML
Schematic
(A seqüência Gingell)
+?
+?
+?
+?
+?
+?
Olhando a frente
`Web Services’ é a infraestrutura
E o mundo de Java inclui muito mais...

 Desktops
 Embedded
 Real Time
 Wireless
 Smart Cards
 Games ?!
Download