instrodução ao servlet.pdf

23
Programação para WEB Prof. Edson F. da Fonseca UNIVERSIDADE CATÓLICA DE BRASÍLIA CatólicaTec Cursos Tecnológicos SERVLET Introdução (Versão 2012/2) Prof. Edson F. da Fonseca MBA, MsC, PMP, Cobit

Upload: ripardo

Post on 20-Oct-2015

28 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

SERVLET Introdução

(Versão 2012/2)

Prof. Edson F. da Fonseca MBA, MsC, PMP, Cobit

Page 2: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

História do Java

Projeto Green iniciou em 1991 com Patrick

Naughton, Mike Sheridan e James Gosling

Primeiro produto *7 (StarSeven)

Primeiro nome da linguagem OAK (carvalho)

JAVA

Hoje é uma das linguagens programação mais populares do mundo

Mais de 6,5 milhões de desenvolvedores de software

Mais de 4,5 bilhões de dispositivos (computador, celular, cartão

inteligente, impressora, câmera, GPS, dispositivos médicos,

guichês de pagamento de estacionamento, etc.

Duke baseado no emblema da federação da série de TV Star Trek

Page 3: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

Ambientes de desenvolvimento

JSE – Java Standard Edition: Ambiente de

desenvolvimento mais utilizado, sendo utilizado em

Servidores e PC´s

JEE – Java Enterprise Edition: Voltada para redes,

internet e intranets

JME – Java Micro Edition: Ambiente para

desenvolvimento de aplicações para dispositivos móveis

como PDA´s (Personal Digital Assistants) e celulares

JAVA

Page 4: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

Setas indicam chamadas que um componente faz ao outro (utiliza outro)

PLATAFORMA JEE

Page 5: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

Application Cliente: São programas java que rodam diretamente na máquina do

usuário. Podem ser desenvolvidos com SWING, AWT ou outra tecnologia desktop.

Esses programas tem por característica proporcionar uma “user experience”

semelhante a dos programas nativos da plataforma utilizada pelo usuário, mas com

acesso a todas as facilidades da camada intermediária do JEE

Applet: Applets são pequenos aplicativos java que rodam, normalmente, dentro do

navegador (existem outras aplicações que também dão suporte a applets)

Web (Web Server): Servidor que fornece suporte às tecnologias JSP e Servlets, e

que utiliza conceitos como “filters” e event listeners para criar os “web components”.

Capaz de tratar requisições HTTP fazendo chamada aos “web components”

EJB: Enterprise Java Beans são executados em um ambiente controlado e

normalmente concentram a “lógica de negocio”. Fornecem acesso a suas

funcionalidades através de WebService (SOA ou HTTP requests). Fornecem serviços

e são auto-contidos (funciona independente de outros EJBs)

PLATAFORMA JEE

Page 6: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

API SERVLET

Composta por dois pacotes

javax.servlet

Contém classes e interfaces para

programação de servlets

genéricos independentes de

protocolo

Javax.servlet.http

Estende o pacote javax.servlet

para adicionar funcionalidades

específicas do protocolo HTTP

Page 7: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

INIT: Executado

somente uma vez,

quando é instanciado

pelo container web na

primeira requisição

Métodos de serviço:

Executados em todas

as requisições

DESTROY: Executado

somente uma vez,

quando é retirado da

memória

Servlet não possui método main(), o servlet genérico possui o

método service() e o servlet http os métodos correspondentes

às requisições http (doGet, doPost)

CICLO DE VIDA DO SERVLET

Page 8: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

Objetos são usados receber e retornar as informações

CICLO DE VIDA DO SERVLET

HttpServletRequest: Encapsula a mensagem HTTP de requisição

HttpServletResponse: Encapsula a mensagem HTTP de resposta

INTERNET

CLIENTE SERVIDOR

Page 9: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

Passo a passo da criação:

1. Crie um novo projeto no Eclipse do tipo “Dynamic Web Project”

(como já feito anteriormente)

2. Crie um novo servelet

2.1. Menu “File” >> “New” >> “Servlet”

2.2. Informe em “Class Name” o nome da classe

2.3. Clique no botão “Next”

PRIMEIRO SERVLET

Page 10: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

2.4. Selecione o nome da sua classe na caixa “URL Mappings”

2.5. Clique no botão “Edit”

2.6. Defina o nome como será publicado na caixa “Pattern”

2.7. Clique no botão “OK”

2.8. Clique no botão “Finish”

PRIMEIRO SERVLET

Page 11: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

INTERNET

FLUXO NA WEB – PÁGINA HTML

pagina.html

REQUISIÇÃO

CLIENTE SERVIDOR

http://servidor

<HTML>

<HEAD>

<TITLE>...</TITLE>

</HEAD>

<BODY>

Hello world!

</BODY>

</HTML>

Page 12: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

INTERNET

FLUXO NA WEB – SERVLET

pagina.html

CLIENTE SERVIDOR

http://servidor

<HTML>

<HEAD>

<TITLE>...</TITLE>

</HEAD>

<BODY>

Hello world!

</BODY>

</HTML>

Page 13: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

PRIMEIRO SERVLET

import...

public class Hello extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletRespons... {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("<HTML>");

out.println("<HEAD><TITLE>Primeira pagina</TITLE></HEAD>");

out.println("<BODY>");

out.println("<CENTER>Hello world!</CENTER>");

out.println("</BODY>");

out.println("</HTML>");

}

public void doPost... {}

}

3. Escreva o código de sua servelt

writer : PrintWriter

Page 14: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

Observe a classe Hello em “Java Resources:

src”, dentro de um pacote padrão, caso você

não tenha definido um pacote específico

Observe o conteúdo do arquivo web.xml

SERVLET VERSÃO 2.0

<servlet>

<description></description>

<display-name>Hello</display-name>

<servlet-name>Hello</servlet-name>

<servlet-class>Hello</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Hello</servlet-name>

<url-pattern>/nomePublico</url-pattern>

</servlet-mapping>

Page 15: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

A Servlet 3.0 usa anotações (annotation) para substituir XML na

configuração das servlets

@WebServlet indica que a classe é uma servlet. Seu parâmetro value define

a URL de mapeamento

SERVLET VERSÃO 3.0

import...

@WebServlet("/nomePublico")

public class Hello extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletRespons... {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("<HTML>");

out.println("<HEAD><TITLE>Primeira pagina</TITLE></HEAD>");

out.println("<BODY>");

out.println("<CENTER>Hello world!</CENTER>");

out.println("</BODY>");

out.println("</HTML>");

}

}

Page 16: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

CONFIRMAR O CICLO DE VIDA DO SERVLET

Page 17: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

CONTADOR DE ACESSO

import...

public class Contador extends HttpServlet {

private int cont;

public void doGet(Http...) throws ServletException, IOException {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

this.cont++;

out.println("<HTML>");

out.println("<HEAD><TITLE>Acessos</TITLE></HEAD>");

out.println("<BODY>");

out.println("Acessos: "+ this.cont);

out.println("</BODY>");

out.println("</HTML>");

}

}

Page 18: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

MÉTODOS DO HTTPSERVLETREQUEST

:

out.println("getContextPath - "+ request.getContextPath() +"<br>");

out.println("getLocalAddr - "+ request.getLocalAddr() +"<br>");

out.println("getLocalName - "+ request.getLocalName() +"<br>");

out.println("getLocalPort - "+ request.getLocalPort() +"<br>");

out.println("getMethod - "+ request.getMethod() +"<br>");

out.println("getProtocol - "+ request.getProtocol() +"<br>");

out.println("getRemoteAddr - "+ request.getRemoteAddr() +"<br>");

out.println("getRemoteHost - "+ request.getRemoteHost() +"<br>");

out.println("getRequestURI - "+ request.getRequestURI() +"<br>");

out.println("getScheme - "+ request.getScheme() +"<br>");

out.println("getServerName - "+ request.getServerName() +"<br>");

out.println("getServerPort - "+ request.getServerPort() +"<br>");

out.println("getServletPath - "+ request.getServletPath() +"<br>");

out.println("getHeader(UA) - "+ request.getHeader("User-Agent"));

:

Page 19: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

SERVLET

Perguntas?

Page 20: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

GONÇALVES, Edson. Desenvolvendo Aplicações Web com JSP, Servlets, JSF,

Hibernate, EJB 3, Persistence e Ajax. Rio de Janeiro: Ciência Moderna, 2007.

www.java.com/pt_BR/about/

Servlets/JSP, Prof. Msc. Edson Angoti Júnior

Criando e Entendendo o Primeiro Servlet, Raphaela Galhardo Fernandes

http://www.j2eebrasil.com.br/index

http://blog.caelum.com.br/java-ee6-comecando-com-as-servlets-3-0/

REFERÊNCIAS BIBLIOGRAFICAS

Page 21: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

Obrigado!

Prof. Edson F. da Fonseca

[email protected]

Page 22: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

Exercício

SERVLET – INTRODUÇÃO

Page 23: Instrodução ao Servlet.pdf

Programação para WEB

Prof. Edson F. da Fonseca

UNIVERSIDADE CATÓLICA DE BRASÍLIA

CatólicaTec – Cursos Tecnológicos

Escreva uma aplicação WEB utilizando servlet que produza uma

página HTML contendo no corpo da página uma espécie de título

centralizado “Olimpíadas de Londres 2012”. Abaixo do título, ainda

centralizado, deve haver uma imagem dos círculos entrelaçados.

Abaixo da imagem, sem centralizar, deve haver um formulário que

permita o preenchimento dos seguintes dados: nome do atleta;

esporte; país; medalha (permitir apenas um valor dentre: ouro, prata

ou bronze). Seu formulário deve possuir um botão de envio com o

rótulo “ENVIAR”.

O botão é apenas decorativo, ainda não precisa enviar os dados.

Capriche no layout. Faça o mais profissional que conseguir!

SERVLET – INTRODUÇÃO – EXERCÍCIO