Escolar Documentos
Profissional Documentos
Cultura Documentos
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 !
2
i
26
i
2x
V
28
V
2
$i
30
!"
3|
!"
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.
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'
!'#&"
3x
!"
Componente E B:
3
!"
'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