Escolar Documentos
Profissional Documentos
Cultura Documentos
2
Plataforma WEB
• Baseada em HTTP (RFC 2068):
– Protocolo simples de transferência de arquivos
– Sem estado (não mantém sessão aberta)
• Funcionamento (simplificado):
3
Cliente e Servidor HTTP
• 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,...)
4
Principais métodos HTTP
• 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)
5
API Servlet
• API independente de plataforma e praticamente
independente de fabricante
• Componentes são escritos em Java
• Rodam dentro do servidor, mas através de uma Máquina
Virtual Java
• Disponível como ‘plug-in’ ou conector para servidores
que não o suportam diretamente
• Nativo em servidores
– Sun,
– IBM,
– ... 6
Execução de Servlets e JSP
• Para executar Servlets e JSP é 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 JSP
• 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
7
Estrutura do Tomcat
8
Ciclo de Vida
9
Ciclo de Vida
10
Servlets HTTP
11
Servlets HTTP
12
Exemplo de um Servlet
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>< HEAD>< TITLE>");
out.println(" Simple Servlet Output");
out.println("</ TITLE></ HEAD>< BODY>");
out.println("< H1> Simple Servlet Output</ H1>");
out.println("< P> Hello, " + user);
out.println("</ BODY></ HTML>");
out.close();
} 13
}
Página recebida no Browser
• Url da requisição:
– http://servidor/servlet/SimpleServlet?usuario=Rex
– http://servidor/hello.jsp?usuario=Rex
• Código fonte visto no cliente
<HTML>
<HEAD>
<TITLE>Simple Servlet Output</TITLE>
</HEAD>
<BODY>
<H1>Simple Servlet Output</H1>
<P>Hello,World
</BODY>
</HTML>
14
Servlets HTTP
15
Métodos doGet() e doPost()
16
Estrutura de uma aplicação
Web
17
Exemplo de web.xml
18
Exemplo de web.xml
19
JavaServer Pages
20
JavaServer Pages
21
Servlet x JSP
22
JavaServer Pages
23
JavaServer Pages
24
JavaServer Pages
25
Sintaxe
26
Sintaxe
27
Diretiva
28
Declaração
29
Expressões e Scriplets
30
Enterprise Java Beans (EJB)
31
Enterprise Java Beans (EJB)
32
Enterprise Java Beans (EJB)
• 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
– “Verbos”. 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.
34
Enterprise Java Beans (EJB 3.0)
37
Enterprise Java Beans (EJB)
• Componente EJB:
39
Enterprise Java Beans (EJB)
40
Session Beans
• Podem possuir:
– Interface Remota(javax.ejb.EJBObject).
– Interface Local(javax.ejb.EJBLocalObject).
– Interface Home(javax.ejb.EJBHome).
– Interface Home Local(javax.ejb.EJBLocalHome).
– Implementar a interface SessionBean(javax.ejb.SessionBean).
• Tipos:
– Stateless Session Beans:
• Não mantém estado entre invocações de métodos.
• Apó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. 41
Session Beans (Stateless)
42
Session Beans (Statefull)
43
Entity Beans
• Podem possui:
– Interface Remota(javax.ejb.EJBObject).
– Interface Local(javax.ejb.EJBLocalObject).
– Interface Home(javax.ejb.EJBHome).
– Interface Home Local(javax.ejb.EJBLocalHome).
– Implementar a interface EntityBean(javax.ejb.EntityBean).
– A persistência pode ser gerenciada pelo próprio Bean (BMP)
ou pelo container (CMP).
44
MessageDrivenBean
• 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.
45
Arquitetura em Camadas
46
Componentes da Camada Cliente
47
Componentes da Camada Web
48
Componentes da Camada de Negócio
49
Enterprise JavaBeans
50
Enterprise JavaBeans
51
Fim
52