Você está na página 1de 52



p  
  
|
i
 

2
!
 
‡ Baseada em HTTP (RFC 2068):
± Protocolo simples de transferência de arquivos
± Sem estado (não mantém sessão aberta)
‡ Funcionamento (simplificado):

3

 i !
‡ Servidor HTTP:
± Gerencia sistema virtual de arquivos e diretórios
± Mapeia pastas do sistema de arquivos local (ex:c:\htdocs) a
diretórios virtuais (ex:/) acessíveis remotamente
‡ Papel do servidor HTTP:
± Interpretar requisições HTTP do cliente (métodos
GET,POST,...)
± Devolver resposta HTTP à saída padrão
‡ Papel do cliente HTTP:
± Enviar requisições HTTP (GET,POST,...) a um servidor
± Processar respostas HTTP recebidas (interpretar cabeçalhos,...)

'
!  !
‡ GET - pede ao servidor um arquivo (informado
sua URI) absoluta (relativa à raiz do servidor)
± GET pode enviar dados através da URI (tamanho
limitado) <uri>?dados
‡ POST - envia dados ao servidor (como fluxo de
bytes)

„
á! i

‡ PI independente de plataforma e praticamente
independente de fabricante
‡ Componentes são escritos em ava
‡ Rodam dentro do servidor, mas através de uma Máquina
irtual ava
‡ Disponível como µplug-in¶ ou conector para servidores
que não o suportam diretamente
‡ Nativo em servidores
± Sun,
± IBM,
± ... 6
i
 i!
‡ Para executar Servlets e SP é preciso implantá-
los em um Web Container
‡ Um Web Container pode estar executando como
parte de um servidor HTTP que o repassa as
requisições destinadas a Servlets e SP
‡ O Tomcat é um exemplo de Web Container, que
pode tanto funcionar conectado a outro servidor
como usar seu próprio servidor Web
‡ O Tomcat ocupará a porta 8080

x
   

8

 



 

|0
i
 !

||
i
 !

|2

i

import java. io.*;
import javax. servlet.*;
import javax. servlet. http.*;
public class SimpleServlet extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
PrintWriter out;
response.setContentType(" text/ html");
out = response.getWriter();
String user = request.getParameter("usuario");
if (user == null)
user = "World";
out.println("< HTML>< HED>< TITLE>");
out.println(" Simple Servlet Output");
out.println("</ TITLE></ HED>< BODY>");
out.println("< H|> Simple Servlet Output</ H|>");
out.println("< P> Hello, " + user);
out.println("</ BODY></ HTML>");
out.close();
} |3
}
!  
‡ Url da requisição:
± http://servidor/servlet/SimpleServlet?usuario=Rex
± http://servidor/hello.jsp?usuario=Rex
‡ Código fonte visto no cliente
¬ 
¬ 
¬
   ¬
¬ 
¬
¬ 
   ¬ 
¬   
¬
¬ 
|'
i
 !


p   !"! !"

|6
     
 


|x

#

|8

#


 i ! 

20
 i ! 

2|
i
 i!

22
 i ! 

23
 i ! 

2'
 i ! 


i 

26
i 

2x
V 

28
V
 


$i
 

30
   !"

3|
   !"

‡ plicações corporativas são naturalmente


distribuídas
±   !
"!#$ %!&"'
! " ("
  )&
"
* +!  !,! &-
‡ Necessidade de uma infraestrutura comum
Middleware com serviços complexos
KK  

‡ s organizações podem preocupar-se apenas com a
lógica de negócio.

32
   !"
‡ Uma aplicação deve ser composta de componentes.
‡ Um único componente pode ser reutilizado em diversas
aplicações.

‡ Características:
± Portabilidade entre servidores de aplicação.
± Desenvolvimento acelerado.
± Padrão de mercado.

tenção! E B não é apropriado para todos os cenários.


33
   !%#&"

‡ Session Beans
± ³erbos´. Modelam processos de negócio, como
autorização de cartão de crédito, engine de cálculo de
preços, etc.
‡ Entity Beans
± ³Substantivos´. Modelam dados como produto, pedido,
empregado.
‡ Message Driven Beans
± São semelhantes aos Session Beans, entretanto são
invocados apenas por meio de mensagens.

3'
   !'#&"

‡ ntes da versão 3.0 a persistência era parte da


plataforma E B.
‡ Na E B 3.0, a persistência possui sua própria
especificação chamada ³ ava Persistence´.
‡  PI ava Persitence define uma maneira de mapear
objetos simples (PO O) para um Banco de Dados
( DBC).
‡ Entidades ava Persistence não precisam implementar
interfaces ou estender classes definidas com uma
especificação especial.

   !"

‡ Um cliente NUNC invoca os métodos de um Bean


diretamente.

‡ Um E BObject intercepta as chamadas e as delega para a


instância do Bean.

‡ O E BObject fornece serviços para a gerência de


transações, segurança, persistência, gerência de recursos
e outros.
36
   !"

3x
   !"
‡ Componente E B:

|. Escrever os arquivos .java que compõem o Bean.


2. Escrever o deployment descriptor.
3. Compilar os arquivos .java do passo | em arquivos .class.
'. Criar o arquivo ejb-jar, contendo o deployment descriptor e os
arquivos .class.
„. Implantar o arquivo ejb-jar no servidor de aplicação.
6. Configurar o servidor E B, caso necessário.
x. Iniciar o servidor E B e executar uma aplicação cliente para testar
o Bean implantado.
38
   !"


   !"

'0
i 
‡ Podem possuir:
± Interface Remota(javax.ejb.E BObject).
± Interface Local(javax.ejb.E BLocalObject).
± Interface Home(javax.ejb.E BHome).
± Interface Home Local(javax.ejb.E BLocalHome).
± Implementar a interface SessionBean(javax.ejb.SessionBean).

‡ Tipos:
± Stateless Session Beans:
‡ Não mantém estado entre invocações de métodos.
‡ pós cada chamada de método o Container pode escolher entre destruir o Bean,
recriá-lo ou mesmo mantê-lo. O algoritmo é específico do Container.
± Stateful Session Beans:
‡ Mantém seu estado entre chamadas de métodos.
‡ Projetados para situações que requerem várias requisições simultâneas ou
transações. '|
i !i 
"

'2
i !i 

"

'3
  ( 

‡ Podem possui:
± Interface Remota(javax.ejb.E BObject).
± Interface Local(javax.ejb.E BLocalObject).
± Interface Home(javax.ejb.E BHome).
± Interface Home Local(javax.ejb.E BLocalHome).
± Implementar a interface EntityBean(javax.ejb.EntityBean).
±  persistência pode ser gerenciada pelo próprio Bean (BMP)
ou pelo container (CMP).

''
p V  

‡ Devem:
± Implementar a interface MessageDrivenBean
(javax.ejb.MessageDrivenBean).
± Implementar a interface MessageListener
(javax.jms.MessageListener).
± MDBs não possuem interfaces (home, local, localHome e
remote).
± MDBs têm um único método de negócio (onMessage()).
± MDBs não retornam valores nem tampouco lançam exceções
aos clientes.
± São stateless.

á)      

'6
     
 

'x
     

'8
     *


   

„0
   

„|


„2

Você também pode gostar