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

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

Embed Size (px)

Citation preview

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

Servlets, JSP eWeb Services

Eider Oliveira

13 de junho de 2002

Page 2: Servlets, JSP e Web 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

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

Protocolo HTTP Protocolo sem estado (“stateless”)

Solicitações: Get Post

Resposta: página HTML

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

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

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

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>

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

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>

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

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

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

Servlets Programas em Java Executam exclusivamente no

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

Servidor Web

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

Servlets

Browser Servlet Server

Servlet

Servlet

Servlet

Máquina Cliente Máquina Servidora

Solicitação e parâmetros

Resposta (HTML)

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

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

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

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>"); } }

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

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?

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

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

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

Exemplo de JSP<HTML> <HEAD> <TITLE>JSP example</TITLE> </HEAD> <BODY> <% out.println(“Good afternoon “+ request.getParameter(“name”)); %> </BODY></HTML>

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

“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.

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

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

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

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

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

Curvas de Adoção

Launch

Experiments

Deployment

Established

9896 9795 99 00 01 02

Lang

uage

Applets

J2EE

JSP Web Services

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

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)

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

Olhando a frente `Web Services’ é a infraestrutura

E o mundo de Java inclui muito mais...

Desktops Embedded Real Time Wireless Smart Cards Games ?!

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