Servlets, JSP e Web Services Eider Oliveira 13 de junho de 2002

Preview:

Citation preview

Servlets, JSP eWeb Services

Eider Oliveira

13 de junho de 2002

Interação Cliente Servidorna 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 GETGET /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

RespostaHTTP/1.1 200 OK Date: Mon, 10 May 1999 06:15:49 GMTServer: 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: POSTPOST /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 em Java Executam exclusivamente no

servidor Atendem requisições GET e POST Atuam conjuntamente com o

Servidor Web

Servlets

Browser Servlet Server

Servlet

Servlet

Servlet

Máquina Cliente Máquina Servidora

Solicitação e parâmetros

Resposta (HTML)

Características de uma Servlet

Baixo consumo de memória Uma instância atende diversas requisições Possibilita reutilização de recursos caros Grande velocidade de execução

Uma Servlet Simplesimport 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 transparente em Servlets Uso 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: sim

XML: lento e complexo Mas interoperável!

A 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

Launch

Experiments

Deployment

Established

9896 9795 99 00 01 02

Lang

uage

Applets

J2EE

JSP Web Services

Evolução da Computação DistribuídaClient-Server After thatNextWeb ServicesWeb Apps3/N-Tier

Catch Phrase

SystemCollectionsComponentsScale

Leaf Protocol(s)

Directory(s)

Session

When/Peak

Schematic

The Network Isthe Computer

Network ofThings

Network ofEmbedded

Things

The Computer Isthe Network

Objects Legacy tothe Web

1000s100s 1000000s 10000000s 100000000s 1000000000s

1984/1987 1990/1993 1996/1999 2001/2003 1998/2004 2004/2007X X +HTTP +RMI

+JVM)+XML, + ? + ?

NIS, NIS+ + CDS + LDAP (*) +UDDI + ? + ?

RPC, XDR +CORBA +CORBA, RMI+ SOAP, XML + ? + ?

(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 ?!

Recommended