cgouveia@fes.br
Utilizar ambientes de desenvolvimento integrados e
produtivos;
Utilizar uma metodologia que permita dividir a
aplicação em camadas lógicas;
Utilizar, de forma organizada, uma aplicação no
modelo de três camadas na Internet;
Utilizar frameworks para desenvolvimento de
aplicações;
Pesquisar e utilizar componentes para agilizar e
organizar o desenvolvimento de uma aplicação
Internet.
1º Bimestre:
◦ PR1 – Trabalho prático
◦ OA1 – Trabalho prático
◦ MB1 = PR1*0.7 + OA1*0.3
2º Bimestre:
◦ PR2 – Trabalho prático
◦ OA2 – Trabalho prático
◦ MB2 = PR2*0.7 + OA2*0.3
Média Final = (MB1 + MB2)/2
4
Uma nova realidade de mercado é o desenvolvimento de
sistemas n-tier;
◦t tier: separação física (diferentes máquinas)
◦l layer: camada lógica (mesma máquina)
6
Toda a aplicação é executada em uma única máquina;
7
8
Problemas:
◦ Alta taxa de manutenção.
◦ Mudanças em trechos de código podem afetar outros trechos;
◦ Pequenas alterações exigem re-compilação de todo código;
◦ Atualizações mais complexas;
9
Nasceu do desejo de se compartilhar dados de aplicações
instaladas em várias máquinas;
10
11
Problemas:
◦ A aplicação cliente permanece:
Com toda lógica de negócios (thick client);
Necessita conhecer o local da base de dados;
◦ Atualização problemática;
◦ Aplicação cliente continua com todo o seu código em um único
médulo executável;
◦ Grande consumo de banda (dependendo da regra de negócio);
◦ Segurança para acesso externo;
12
Com a evolução da Internet ocorreu um movimento para
separar a lógica de negócios da interface com o usuário;
O camada de interface com o usuário passou a ser
chamada de thin client;
Sistemas web:
◦ Interface com o usuário -> Web Browser
◦ Regra de Negócios -> Web Server
◦ Acesso a dados -> Database Server
13
14
Vantagens:
◦ Possibilidade de diferentes interfaces com usuário utilizando
as mesmas regras de negócio;
◦ Menor tráfego na rede (dependendo da regra de negócio);
◦ Separação da equipe de desenvolvimento por habilidades;
◦ Maior escalabilidade;
PDA
GUI
Servidor de Servidor de
Banco de Aplicação
Dados
Browser
A Web utiliza um conjunto de protocolos que
mapeiam as ações dos usuários;
O mais comum é o HTTP :
◦ Trabalha com pedidos e respostas
Protocolo HTTP :
GET, POST, HEAD…..
Protocolo HTTP :
200, 304, 401…..
GET
◦ Forma como o browser chama o servidor quando se digita a
URL;
◦ Os parâmetros devem ser codificados nessa solicitação;
www.exemplo.com/portal/consulta.jsp?parametro=Java
%20Servlet
Cabeçalho GET de pacote HTTP:
HTTP/1.1 200 OK
Date: Sat, 28 Sep 2007 08:02:23 GMT
ContentType: text/html; charset=ISSO-8859-1
Content-Lenght: 2541
<html>
<head>
<title>
Disciplina de Servlets e JSP
</title>
</head>
<body>
...
304
3 (NOT MODIFIED)
◦ Os recursos não foram modificados desde a última vez em
que foi feita a solicitação;
401
4 (UNAUTHORIZED)
◦ Cliente não tem permissão para acessar área requisitada;
403
4 (FORBIDDEN)
◦ Acesso à área requisitada falhou;
404
4 (NOT FOUND)
◦ Não encontrado.
Por volta de 1998 a Sun atualizou a especificação
Java para a versão 1.2 com o acompanhamento de
bibliotecas;
Java deixou de ser apenas uma linguagem para ser
tornar uma plataforma – J2SE – Java 2 Standard
Edition;
J2SE passou a incorporar bibliotecas para:
◦ GUI
◦ Rede
◦ Acesso a Banco de Dados
◦ .....
Tier
Enterprise
E Java Beans (EJB)
Java Servlet
Java Server Pages – JSP
Java Server Pages Standard Tag Library - JSTL
Java Server Faces
Java Message Service API
JavaMail API
Java API for XML Processing – JAXP
Java API for XML webServices – JAX-WS
Java Database Conectivity API – JDBC
Java Persistence API – JPA
Java Autentication and Authorization Service - JAAS
Sem os Containers, o desenvolvimento de aplicações
em 3 camadas seria muito difícil:
◦ Codificação complexa;
◦ Controle de transação;
◦ Gerenciamento de Estado;
◦ Multithreading;
37
38
39
No início Java fornecia interatividade na Internet
através de Applets;
41
São classes escritas em Java;
Não possuem Interface Gráfica;
Trabalham no lado do servidor;
Suporta o modelo request/response
Herda todas as características do Java;
◦ JDBC;
◦ Gerenciamento de Memória
◦ Portabilidade
42
init(): é executado somente no momento em que o
servlet é carregado na memória.
◦ O que pode ser feito:
Conexão com o banco de dados;
Ler dados de configuração do disco;
Escrever informações no Log.
43
destroy: é executado quando o servlet é finalizado;
◦ Realiza operações de fechamento da execução do servlet,
como:
Liberação de recursos.
44
45
As ferramentas para utilização de um servlet
encontram-se no pacote:
javax.servlet.*
Interface Servlet
◦ Todo servlet implementa a interface Servlet;
◦ Utilizaremos herança da classe HttpServlet, que implementa o
servlet utilizando o protocolo HTTP;
46
47
javax.servlet.*
javax.servlet.http.*
◦ http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/index.html
Vejamos o Exemplo 1
48
Teve origem no JServ da Sun;
Site: http://tomcat.apache.org/
50
São necessários dois passos para mapear uma servlet para uma
url:
◦ Definir o nome e classe da servlet
◦ Usando o nome da servlet, definir a url
nome
classe
url
Principais ferramentas:
◦ OutputStream: mais utilizado para arquivos
OutputStream stream = response.getOutputStream();
◦ Redirecionamento;
response.sendRedirect(“novaURL”);
53
O objeto request tem por função obter informações do
cliente que está solicitando alguma coisa;
54
Toda requisição pode vir acompanhada de parâmetros;
Método get
◦ Comum ter uma url que termine com: “?parametro=valor”
Método post
◦ É possível enviar todos os parâmetros através de um
formulário;
55
Independente do método chamado, eles podem ser
retornados com o seguinte código:
◦ request.getParameter(“nomeParametro");
56
• Existe muita confusão entre os conceitos de JavaBeans
e Enterprise Java Beans (EJB).
• EJBs
– São java beans com características mais avançadas para a
persistência de dados;
• JavaBeans
– Normalmente as classes de modelo de dados da nossa
aplicação costumam ser Javabeans.
– Estas classes administram:
• As propriedades da classe
58
– Os métodos públicos que dão acesso às propriedades;
• Os métodos devem estar de acordo com determinadas convenções;
– Para cada propriedade legível, o bean deve ter uma método no formato:
59
– Além dos métodos das propriedades, um bean deve definir um construtor
que não tenha parâmetros;
60
Criação de um Projeto Web
Configuração bibliotecas para desenvolvimento;
Como rodar uma aplicação web de forma
convencional;
61