Buscar

Apresentação_Servlets

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof. William Geraldo Sallum
Curso Técnico em Informática
SERVLETS
Conceitos
SERVLETS
Histórico 1/2
 Boa parte do que se acessa na Web (portais, blogs, home 
bankings, etc.) é baseado em conteúdo dinâmicos: 
servidores web consultando outros arquivos com conteúdos 
(CGI : Perl, PHP, ASP e até C ou C++).
 Surgiu então, em 1997, o Servlet, um “pequeno servidor” 
(traduzindo do inglês: servidozinho) cujo objetivo era 
receber chamadas HTTP, processá-las e devolver as 
respostas.
 As Servlets são programas Java residentes na memória, 
executando na porta 8080, dentro de containers e se 
tornaram a primeira forma de se criar páginas dinâmicas 
com Java.
 De forma prática, a tecnologia Servlet é uma classe Java, a 
qual consegue gerar páginas dinâmicas para a camada de 
apresentação de aplicações web. 
SERVLETS
Histórico 1/2
 Como se acessa o servidor Web, utilizando Servlets, através do 
protocolo HTTP:
SERVLETS
Histórico 1/2
 E por que usar Servlets?
 Portabilidade - Os servlets permitem ser movidos 
para outras aplicações Java em diferentes sistemas 
operacionais.
 Desempenho - Ao contrário da tecnologia CGI, cada 
solicitação é gerenciada pelo processo de um 
container.
 Agilidade - Possui acesso às bibliotecas Java, as 
quais ajudam no ciclo do desenvolvimento.
 Robustez - Por serem gerenciados pela JVM, os 
Servlets não têm muitos problemas de memória.
SERVLETS
Histórico 1/2
 Em Servlets, tal como no Java tradicional, tenta-se (sempre que 
possível), trabalhar OO - orientado a objetos. Assim, nada mais 
natural que uma Servlet seja representada como um objeto a 
partir de uma classe Java. 
 Cada servlet é um objeto Java que recebe requisições 
(request) e produz algo (response), tal como uma página 
HTML dinamicamente gerada. 
 A servlet pode ser carregada ou executada através de 
um servidor web especial, conhecido como “Container” -
isso acontece, porque as Servlets não possuem um 
método main().
SERVLETS
 As Servlets promovem a comunicação entre clientes e 
servidores através do protocolo HTTP.
1. O cliente envia uma solicitação de HTTP ao servidor ou ao 
contêiner da Servlet. 
2. O servidor ou contêiner recebe a solicitação e a direciona para 
ser processada pela Servlet apropriada. 
3. A Servlet faz seu processamento, que pode incluir interação com 
um banco de dados ou com outros componentes do lado 
servidor, como outros JSPs ou Enterprise JavaBeans. 
4. A Servlet retorna seus resultados para o cliente - normalmente 
na forma de um documento HTML, XHTML ou XML para exibir 
em um navegador, podendo também ser retornados outros 
formatos de dados, tal como imagens e dados binários.
SERVLETS
Histórico 1/2
Elementos e fluxos de requisições e respostas dos Sevlets
SERVLETS
Histórico 1/2
 Container:
 É um tipo de servidor Web especial;
 Exemplos: Apache-Tomcat, GlassFish e JBoss.
 TomCat: originalmente projetado pela Sun, teve seu código fonte 
entregue à Apache Software Foundation. É uma referência quando 
se trata de implementações em Servlet, pois é um servidor HTTP 
e também um contêiner Servlet Java mais leve.
 GlassFish: possui inteface HTTP própria. É um Application Server 
produzido pela Oracle e que necessida de JDK completo. Será 
Nossa escolha para as atividades!
 JBoss: atualmente denominado WildFly e desenvolvido pela Red
Hat, recentemente adquirida pela IBM, é semelhante ao GlassFish, 
nas suas características.
SERVLETS
Histórico 1/2
 Benefícios dos Containers:
 Suporte para comunicações;
 Suporte a multithread;
 Segurança;
 Suporte ao JSP (visto mais adiante);
 Gerenciamento do ciclo de vida;
 Para começar a construir uma Servlet é 
necessário o IDE, Eclipse ou Netbeans e o 
container Tomcat e/ou GlassFish (ou outro) 
instalado(s) e configurado(s).
SERVLETS
SERVLETS
 Interface Servlet e o ciclo de vida de um Servlet
 Todos os Servelts devem implementar a interface Servlet
 Os métodos de interface Servlet são invocados automaticamente pelo 
servidor.
 Essa interface defini os métodos:
 Void init(ServletConfig config) – chamado uma única vez para 
inicializar o Servlet.
 ServletConfig getServletConfig() – fornece os parâmetros de 
configuração na inicialização ao ambiente (container).
 String getServletInfo() – retorna um string contendo versão, autor, 
etc. do Servlet.
 Void service(ServletRequest req, ServletResponse res) –
chamado para responder a uma solicitação de um Servlet. É executado 
uma única vez e as múltiplas chamadas são feitas por threads de execução.
 Void Destroy() – método de limpeza chamado pelo container quando o 
Servlet é terminado.
SERVLETS
SERVLETS
Histórico 1/2
 Em suma, quando uma aplicação web executa 
servlets, o Container trata dos seguintes casos:
 Criação do servlet ou da nova thread para tratar uma 
solicitação de resposta.
 Invocação do método doPost() ou doGet() do servlet.
 Tratamento do envio das solicitações de requisição e resposta 
HTTP.
 Gerenciamento da vida e morte dos recursos do servlet.
SERVLETS
Histórico 1/2
 O comportamento das servlets é definido na classe HttpServlet do 
pacote javax.servlet onde são definidos os métodos doGet e 
doPost (chamados pelo método service), responsáveis por 
responder às solicitações get e post de um servidor.
 Os métodos doGet e doPost recebem como argumentos os 
métodos: HttpServletRequest e HttpServletResponse
 HttpServletRequest: facilita acesso aos dados fornecidos pela 
solcitação.
 HttpServletResponse: facilita o retorno dos resultados do servlet 
para o cliente web.
public class Helloworld extends HttpServlet {
public void service (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
...
}
}
SERVLETS
 Interface HttpServletRequest
 O método criado por essa interface contém a solicitação do cliente.
 Métodos fornecidos pela interface:
 String getParameters(String name) – Obtém o valor de um 
parâmetro enviado ao servlet (por get ou post), em que name é o nome do 
parâmetro.
 Enumeration getParameterName() – Retorna os nomes de todos 
os parâmetros enviados ao servlet como parte de uma solicitação post.
 String[] getParameterValues(String name) – Retorna um 
array de string contendo os valores do parâmetro de um servlet
especificado.
 Cookie[] getCookies() – Retorna um array de objetos Cookie
armazenados no cliente pelo servidor.
 HttpSession getSession(boolean create) – Retorna objeto 
HttpSession associado à sessão de navegação atual do cliente.
SERVLETS
 Interface HttpServletResponse
 Esta interface é implementada a cada chamada (doGet/doPost) 
para um HttpServlet.
 Métodos que permitem ao servlet formular a resposta para o 
cliente, em get (onde é recuperado o conteúdo de uma URL) ou 
post (onde é recuperado o conteúdo de formulários):
 void addCookie(Cookie cookie) – Adiciona um cookie ao 
cabeçalho da resposta para o cliente.
 ServletOutputStream getOutStream() – Obtém o fluxo de 
dados (em bytes) que permitem que os dados binários sejam enviados 
para o cliente.
 PrintWriter getWriter() – Obtém um fluxo de dados (em 
caracteres) que permitem que os dados de texto sejam enviados para o 
cliente.
 void setContentType(String type) – Especifica o tipo MIME 
da resposta para o navegador. (p.ex: “text/html” indica uma resposta de 
um documento XHTML; ou “text/plain” ou “image/gif”, etc.).
SERVLETS
Histórico 1/2
 Completando o exemplo anterior, é possível obter um objeto que represente 
a saída a ser enviada ao usuário através do método getWriter da variável 
response. E, a partir disso, utilizar um PrintWriter para imprimir algo na 
resposta do cliente: 
public class Helloworld extends HttpServlet {
public void service (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
// escreve o texto
out.println("<html>\n" +
"<head><title>Hello WORLD</title></head>\n"+
"<body>\n" +
"<h1>Hello WORLD</h1>\n" +
"</body></html>"); 
}
}
SERVLETS
Histórico 1/2
 Para implementar os exemplos e 
atividades Servlets, utilizaremos a IDE 
NetBeans (versão >= 8.0).
 A instalação e preparação desta plataforma de 
desenvolvimento é pré-requisito para as 
atividades e, portanto, já deve ter sido 
aprendido e executada.
SERVLETS
Histórico 1/2
 Nos exemplos a seguir, através de 
sequências de ações na IDE, elaboraremos 
duas Servlets: 
 a) uma simples que deverá apresentar uma 
mensagem de boas vindas e 
 b) uma que apresentará dados pessoais tais 
como: nome, data de nascimento (calculada 
através de método de classe criada para esta 
finalidade) e idade atual.
SERVLETS
Histórico 1/2
Simples SERVLET de BOAS VINDAS 
SERVLETS
Histórico 1/2
(1) Selecionando Novo projeto (2) Selecionando o tipo do projeto
(3) Denominando o projeto
SERVLETS
Histórico 1/2
(4) Selecionando o Web Server, a
versão do Java EE e o caminho
do Contexto.
(5) Término e visualização 
da estrutura inicial do 
projeto
SERVLETS
Histórico 1/2
(6) Insere uma nova Servlet
(7) Denominando a nova Servlet
SERVLETS
Histórico 1/2
(8) Código produzido
SERVLETS
Histórico 1/2
(8) Alterando Servelt
SERVLETS
Histórico 1/2
(9) Alterando index.java
(10) Executando projeto App1
SERVLETS
Histórico 1/2
SERVLET de apresentação de dados
SERVLETS
Histórico 1/2
(1) Selecionando Novo projeto (2) Selecionando o tipo do projeto
(3) Denominando o projeto
SERVLETS
Histórico 1/2
(4) Selecionando o Web Server, a
versão do Java EE e o caminho
do Contexto.
(5) Término e visualização 
da estrutura inicial do 
projeto
SERVLETS
Histórico 1/2
(6) Insere uma nova sessão 
para as regras de negócios 
(7) Denominando a sessão num novo 
pacote 
SERVLETS
Histórico 1/2
(8) Visualização dos códigos gerados: classe e interface “CalculaIdadeBean”
(9) Inserção do método de regra de negócio “CalculaIdade”
SERVLETS
Histórico 1/2
(10) Denominação do novo 
método e respectivos parâmetros
(11) Visualização do método “CalculaIdade”
SERVLETS
Histórico 1/2
(12) Estrutura física, até então gerada...
SERVLETS
Histórico 1/2
(13) Criação do Servlet “CalculaIdadeServlet”
1
3
2
SERVLETS
Histórico 1/2
(14) Estrutura física, até então gerada...
SERVLETS
Histórico 1/2
SERVLETS
Histórico 1/2
SERVLETS
Histórico 1/2
SERVLETS
Histórico 1/2
SERVLETS
Histórico 1/2
SERVLETS
Histórico 1/2
(15) Inserindo chamada ao Bean (método de 
negócio anteriormente criado)
SERVLETS
Histórico 1/2
Gera objeto CalculaIdadeBean a 
partir do método CalculaIdade
SERVLETS
Histórico 1/2
Atribuição a idade do retorno produzido 
pelo método CalculaIdade.
SERVLETS
Histórico 1/2
SERVLETS
Histórico 1/2
SERVLETS
Histórico 1/2
(16) Execução do Servlet
SERVLETS
Os servlets trabalham 
juntamente com a 
tecnologia Java Server Pages 
(JSP).
https://www.devmedia.com.br/introducao-ao-java-server-pages-jsp/25602
SERVLETS
Histórico 1/2
Fim
SERVLETS
 CGI - Commom Gateway Interface: 
 No surgimento da Internet, existiam apenas páginas com 
conteúdos estáticos desenvolvidos em HTML. Com o tempo, 
foram aparecendo no mercado páginas web com conteúdos 
dinâmicos através da tecnologia Commom Gateway Interface 
(CGI). A maioria dos programas CGI é escrita como script em 
Perl, C, Python e PHP.
Voltar
https://www.devmedia.com.br/python-tutorial/33274
https://www.devmedia.com.br/guia/linguagem-php/38780
SERVLETS
 CGI - Commom Gateway Interface: 
 Mas essa tecnologia tem a seguinte falha: consome muitos ciclos 
de CPU e memória, com isso, a cada solicitação do cliente, o 
servidor web acaba reproduzindo um novo processo do 
programa CGI solicitado. Resumindo: em CGI, cada cliente é 
representado por um processo, enquanto que com Servlets, 
cada cliente é representado por uma linha de execução.
Voltar
SERVLETS
 JVM - Java Virtual Machine: 
 Máquina virtual Java - MVJ é um programa que carrega e 
executa os aplicativos Java, convertendo os bytecodes em 
código executável de máquina. A JVM é responsável pelo 
gerenciamento dos aplicativos, à medida que são executados.
 Graças à máquina virtual Java, os programas escritos em Java 
podem funcionar em qualquer plataforma de hardware e 
software que possua uma versão da JVM, tornando assim essas 
aplicações independentes da plataforma onde funcionam.
Voltar
https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_Java
https://pt.wikipedia.org/wiki/Bytecode_Java

Continue navegando