Top Banner
Servlets Profa. Karen Selbach Borges
22

3-Servlets2014

Dec 14, 2015

Download

Documents

Jean Lopes

servlets ppt
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 3-Servlets2014

Servlets

Profa. Karen Selbach Borges

Page 2: 3-Servlets2014

Introdução

• As Servlets constituem o recurso básico para criação de páginas dinâmicas com Java.

• Implementam classes que com a capacidade de gerar conteúdo HTML.

• O objetivo é receber chamadas HTTP, processá-las e devolver uma resposta ao cliente.

Page 3: 3-Servlets2014

Container Web

Servlet

HTTP, HTTPS

Arquitetura

Init

Service

DestroyResposta

Resposta

PedidoPedido

Page 4: 3-Servlets2014

Container Web

• Um container web é um programa que recebe requisições HTTP,executa componentes Java (Servlets) e devolve para o usuário (browser) código HTML, além de todos os outros recursos necessários (como imagens, vídeos, folhas de estilo e etc).

Page 5: 3-Servlets2014

Container Web

•  Destacam-se :– Apache Tomcat– JBoss AS– Glassfish– JOnAS– Apache Geronimo– IBM WebSphere Application Server– Oracle WebLogic Server (antigo BEA)– Oracle Application Serve

Page 6: 3-Servlets2014

Ciclo de Vida da Servlet

init(config)Iniciando

Processando

Finalizandodestroy()

service(request,response)

Page 7: 3-Servlets2014

Ciclo de Vida - Métodos

• init (ServletConfig config) :– É automaticamente chamado uma vez

durante um ciclo de vida do servlet para inicializá-lo.

– O argumento ServletConfig é fornecido automaticamente pelo servidor que executa o servlet

Page 8: 3-Servlets2014

Ciclo de Vida - Métodos

• service (ServletRequest request, ServletResponse response)– Cada solicitação do cliente resulta em uma

única chamada para este método. – Este método trata o pedido do cliente

(request) e produz a mensagem de resposta (response)

Page 9: 3-Servlets2014

Ciclo de Vida - Métodos

• destroy() :– É chamado para permitir que o servlet libere

quaisquer recursos (arquivos ou conexões a banco de dados, por exemplo) antes do servlet ser descarregado.

Page 10: 3-Servlets2014

Exemplo – Meu primeiro servletpublic class PrimerioServlet extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void destroy() { } public void service (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(); out.println("<html> <head> <title> UM EXEMPLO DE SERVLET </title> </head>"); out.println("<body>"); out.println("<h1> Meu primeiro Servlet <h1>"); out.println("</body>"); out.println("</html>"); out.close(); } }

Page 11: 3-Servlets2014

HTTP Servlet

• Tipo de servlet utilizado para estender servidores HTTP;• Definido pela classe javax.servlet.http.HttpServlet;• Esta classe define um método abstrato para cada tipo

de requisição HTTP possível;• Estes métodos são refinamentos do método service, que

já é implementado por HttpServlet;• Não se faz necessário sobrescrever o método service.

Ao invés disso deve-se implementar pelo menos um destes métodos abstratos relacionados aos tipos de requisição HTTP para se obter alguma funcionalidade

Page 12: 3-Servlets2014

HTTP Servlet

• Principais métodos :– doGet(HttpServletRequest,HttpServletResponse)

• Executando ao receber requisições com o método GET;

– doPost(HttpServletRequest,HttpServletResponse)

• Executando ao receber requisições com o método POST;

Page 13: 3-Servlets2014

Tratando Pedidos GET e POSTimport java.io.*;import java.net.*;

import javax.servlet.*;import javax.servlet.http.*;

public class BasicFormProcessor extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } }

Page 14: 3-Servlets2014

Tratando Pedidos GET e POST protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(); out.println("<html> <head> <title> INFORMAÇÕES FORNECIDAS </title> </head>"); out.println("<body>"); out.println("<h1> Confirme os dados abaixo : <h1>"); String nome = request.getParameter("Nome"); String login = request.getParameter("Login"); String senha = request.getParameter("Senha"); out.println("Nome : " + nome); out.println("Login : " + login); out.println("Senha : " + senha); out.println("</body>"); out.println("</html>"); out.close(); }}

Page 15: 3-Servlets2014

Tratando Pedidos GET e POST

• Entrada de dados via GET :– http://localhost:8084/exaula4/formProcessor?

Nome='karen'&Login='kaka'&Senha='1234'

• Entrada de dados via POST :

Page 16: 3-Servlets2014

Mapeando uma servlet no web.xml

1. Definir o nome e a classe da servlet;<servlet> <servlet-name>primeiraServlet</servlet-name>

<servlet-class>br.edu.ifrs.poa.OiMundo</servlet-class>

</servlet>

2. Usando o nome da servlet, definir a URL.<servlet-mapping>

<servlet-name>primeiraServlet</servlet-name>

<url-pattern>/oi</url-pattern>

</servlet-mapping>

Page 17: 3-Servlets2014

Mapeando uma servlet no web.xml

• Em resumo:– <servlet-name> nome conhecido pelo

container– <servlet-class> arquivo class Servlet do

desenvolvedor (.java)– <url-pattern> endereço para usuário,

normalmente é falso.– um XML pode declarar vários Servlets

Page 18: 3-Servlets2014

Erros comuns

• Esquecer da barra inicial do url pattern

<url-pattern>oi</url-pattern>

Page 19: 3-Servlets2014

Erros comuns

• Digitar errado o nome do pacote da sua servlet:<servlet-class>br.edu.ifrs.OiMundo</servlet-class>

Page 20: 3-Servlets2014

Erros comuns

• Esquecer de colocar o nome da classe no mapeamento da servlet: <servlet-class>br.edu.ifrs.poa.OiMundo</servlet-class>

Page 21: 3-Servlets2014

Referências

• Caelum. Apostila do curso FJ-21. Java para Desenvolvimento Web. Disponível em http://www.caelum.com.br/apostila-java-web/

• Oracle. Creating and Configuring Servlets. Disponível em http://docs.oracle.com/cd/E13222_01/wls/docs92/webapp/configureservlet.html

Page 22: 3-Servlets2014