A maior rede de estudos do Brasil

Grátis
94 pág.
3 - Java Servlets

Pré-visualização | Página 1 de 3

Introdução
• Desde meados da década de noventa, a
Internet tem evoluído e se popularizado
no mundo todo;
� O número de usuários é cada vez maior no
mundo inteiro;
� O número de páginas é cada vez maior;
Introdução
• Todos estes fatores tornaram a Web um
ambiente propício para a realização de
diversas atividades:
� Comércio eletrônico;
� Acesso a diversos tipos de informação;
� Oferecimento de diversos tipos de serviços;
Introdução
• Toda essa demanda faz surgir a
necessidade de se desenvolver
aplicações para o ambiente Web;
• É necessário uma tecnologia que dê
suporte ao desenvolvimento deste tipo
de aplicação;
Entendendo o HTTP
• O principal mecanismo para a
navegação na Internet é o protocolo
HTTP;
• Interação na forma de requisição-
resposta;
• O cliente faz a solicitação através de
um browser ao servidor Web no qual o
recurso desejado está armazenado;
Entendendo o HTTP
• Na maioria das vezes, esse recurso é
uma página HTML;
� Mas também pode ser um documento pdf, um
vídeo, uma imagem, um documento de texto, etc;
Entendendo o HTTP
• Visão geral de uma comunicação HTTP:
Entendendo o HTTP
• Uma interação HTTP é composta por
dois elementos principais:
� A requisição enviada pelo cliente;
� A resposta devolvida pelo servidor;
Entendendo o HTTP
• A requisição contém as seguintes
informações:
� A ação (método) que deve ser executada;
� A URL do recurso que deve ser recuperado;
� Os parâmetros que devem ser usados na ação;
Entendendo o HTTP
• A resposta contém as seguintes
informações:
� Um código de status;
� O tipo de recurso que foi retornado;
� O conteúdo que foi retornado pelo servidor;
Entendendo o HTTP
• A maior parte das requisições HTTP é
feita usando os métodos GET e POST;
� Mas o protocolo também define outras operações;
• Os dois métodos recuperam um recurso
armazenado no servidor;
� Embora de uma forma um pouco diferente;
Entendendo o HTTP
• O método GET:
� É o método de requisição mais simples;
� Quantidade limitada de caracteres;
�Varia de acordo com o servidor;
� Normalmente é usado quando clicamos em um
link para ir para outra página ou para abrir/baixar
um arquivo;
Entendendo o HTTP
• O método GET:
� Exemplos de URLs usadas com o método get;
�http://www.ifpb.edu.br
�http://www.ifpb.edu.br/artigos/artigo.doc
Entendendo o HTTP
• O método GET:
� O método também pode enviar parâmetros para o
servidor, mas estas informações são colocadas
como parte da URL;
�http://www.minhaplicacao.com.br/meuservlet?cu
rso=ads&disciplina=psd
Entendendo o HTTP
• O método POST:
� É um tipo de solicitação mais poderosa;
� As informações são passadas no corpo da
mensagem, e não na URL;
� Podemos passar uma grande quantidade de
informações;
�Como os dados de um formulário;
Entendendo o HTTP
• O servidores Web tradicionais só
entregam páginas HTML estáticas;
� Os documentos são estáticos e desenvolvidos em
tempo de design;
• Como gerar páginas cujo conteúdo
varia de acordo com os resultados de
uma aplicação?
Entendendo o HTTP
• Para a geração de páginas dinâmicas,
uma outra aplicação precisa ajudar o
servidor;
� Invocando a aplicação correta para a geração da
página;
� Devolvendo a página gerada para o cliente que
fez a solicitação;
As soluções existentes
• Algumas tecnologias foram propostas
para a geração de páginas dinâmicas:
� Applets;
� Servlets;
� Java Server Pages (JSP);
� Common Gateway Interface (CGI);
� Active Server Pages (ASP);
� Hypertext Preprocessor (PHP);
Applets
• Primeira solução proposta para a
linguagem java;
• As classes java são embutidas na
página HTML através de uma tag
especial;
• São executados na JVM da máquina
cliente;
Applets
• Algumas desvantagens:
� Requerem que o browser tenha uma JVM
instalada;
� A JVM tem que ser carregada antes de executar o
applet pela primeira vez;
� Applets são executados na máquina cliente, e, por
isso, podem sofrer restrições de segurança;
Servlets
• Servlets são classes java capazes de
manipular e responder requisições de clientes
Web;
• Eles são armazenados e executados na
máquina do servidor web;
• São independentes do protocolo de rede, mas,
normalmente atuam com o protocolo HTTP;
Java Server Pages
• Outra tecnologia Java para a geração
de páginas dinâmicas;
• Permite uma melhor abstração para
servlets;
• Permite que tags e códigos para a
chamada de comandos java sejam
inseridos dentro da página;
Common Gateway Interface
• Tecnologia que permite que páginas
sejam geradas a partir de programas
feitos em linguagem de scripting;
� Principalmente Perl;
• Os scripts CGI também rodam no lado
do servidor;
Active Server Pages
• Solução da Microsoft para a geração de
páginas dinâmicas;
• Também baseada em linguagens de
scripting, com os scripts sendo
executados no servidor;
• Foi substituída pela tecnologia ASP.NET;
Hypertext Preprocessor (PHP)
• Linguagem bastante popular
desenvolvida para o desenvolvimento
de páginas dinâmicas;
� Mas também pode ser usada como uma
linguagem de propósito geral;
• A linguagem é interpretada e os
programas rodam no lado do servidor;
O container Web
• O servidor web tradicional não é capaz
de tratar servlets;
• Quem faz isso é um programa chamado
de container Web;
� É ele quem gerencia e executa os servlets de
uma aplicação;
O container Web
• O container Web desempenha várias
tarefas:
� Gerenciamento do ciclo de vida;
�Carregando, instanciando, chamando métodos e
destruindo servlets;
� Suporte a multithread;
�Criando, destruindo e sincronizando threads;
O container Web
• O container Web desempenha várias
tarefas:
� Gerenciamento de segurança;
�Um descritor pode ser usado para configurar e
modificar a segurança da aplicação;
� Suporte a Java Server Pages;
�Traduzindo o código JSP em código java de
verdade;
O Apache Tomcat
• Container web oferecido pela Apache;
• Ferramenta Open Source;
• Implementa as tecnologias de servlets e
JSP;
O Apache Tomcat
• Pode ser integrado às principais IDEs
usadas para o desenvolvimento de
aplicações Java;
� Mas também pode ser usado de forma isolada;
Servlets
• Java Servlets é uma tecnologia
presente na plataforma J2EE;
� Presente no diretório lib do servidor de aplicações
ou do container web;
• O pacote javax.servlet contém as
classes e interfaces necessárias para a
criação de servlets;
Principais componentes da API de servlets
Servlets
• A interface Servlet:
� Interface padrão que descreve o comportamento
de um servlet;
� Descreve entre outras coisas, a implementação
dos métodos referentes ao ciclo de vida do
servlet;
� Ela é implementada pela classe GenericServlet;
Servlets
• A interface Servlet:
� A interface oferece alguns métodos relacionados
ao seu ciclo de vida;
� init(ServletConfig config);
– Chamado no momento em que o servlet é
inicializado;
�service(ServletRequest, ServletResponse);
– Chamado para que o servlet responda à
requisição do cliente;
Servlets
• A interface Servlet:
� A interface oferece alguns métodos relacionados
ao seu ciclo de vida;
�destroy();
– Chamado para finalizar o servlet;
Servlets
• A interface Servlet:
� Todos os métodos que controlam o ciclo de vida
do servlet são invocados pelo container;
� Uma versão default destes métodos já é oferecida
pelas classes que implementam a interface;
Servlets
• A interface ServletConfig:
� Interface que descreve o comportamento de um
objeto que encapsula informações de
configuração do servlet;
� Os objetos desta interface encapsulam
informações de inicialização