1
April 05 Prof. Ismael H. F. Santos - [email protected] 1
Módulo IVa - Servlets
Prof. Ismael H F Santos
April 05 Prof. Ismael H. F. Santos - [email protected] 2
Ementa
Módulo IVa – ServletsOverview Servlets e JSPCiclo de VidaHTTP ServletsGerenciamento de SessãoContêineres Web – Apache TomcatCookies
2
April 05 Prof. Ismael H. F. Santos - [email protected] 3
Linguagem de Programação JAVAIsmael H. F. Santos, Apostila UniverCidade, 2002
The Java Tutorial: A practical guide for programmersTutorial on-line: http://java.sun.com/docs/books/tutorial
Java in a NutshellDavid Flanagan, O´Reilly & Associates
Just Java 2Mark C. Chan, Steven W. Griffith e Anthony F. Iasi, Makron
Books.Java 1.2
Laura Lemay & Rogers Cadenhead, Editora Campos
Bibliografia
April 05 Prof. Ismael H. F. Santos - [email protected] 4
LivrosCore Java 2, Cay S. Horstmann, Gary Cornell
Volume 1 (Fundamentos)Volume 2 (Características Avançadas)
Java: Como Programar, Deitel & DeitelThinking in Patterns with JAVA, Bruce Eckel
Gratuito. http://www.mindview.net/Books/TIJ/
3
April 05 Prof. Ismael H. F. Santos - [email protected] 5
ServletsE
JSP
POO-Java
April 05 Prof. Ismael H. F. Santos - [email protected] 6
Servlet API
4
April 05 Prof. Ismael H. F. Santos - [email protected] 7
Java e Aplicações Web
April 05 Prof. Ismael H. F. Santos - [email protected] 8
Servlets - Introdução
5
April 05 Prof. Ismael H. F. Santos - [email protected] 9
Primeiro Servlet
April 05 Prof. Ismael H. F. Santos - [email protected] 10
Primeiro JSP
6
April 05 Prof. Ismael H. F. Santos - [email protected] 11
Pagina recebida no browser
April 05 Prof. Ismael H. F. Santos - [email protected] 12
JavaBeans
7
April 05 Prof. Ismael H. F. Santos - [email protected] 13
Java Beans
Um Java Bean nada mais é do que uma classe Java com algumas características especiais:
Possui um construtor default (lista de parâmetros vazios)Possui propriedades (métodos de acesso get e setpara os seus atributos.). Forma geral:
public TipoPropriedade getPropriedade(); public voidsetPropriedade(TipoPropriedade valor);
Exemplo de bean:Usuario.java (nas paste web dos exemplos)
April 05 Prof. Ismael H. F. Santos - [email protected] 14
Exemplo de JavaBean
8
April 05 Prof. Ismael H. F. Santos - [email protected] 15
Usando JavaBean em pagina JSP
Imprime: Hello, World
April 05 Prof. Ismael H. F. Santos - [email protected] 16
Componentes Web
9
April 05 Prof. Ismael H. F. Santos - [email protected] 17
Contextos em Aplicações Web
April 05 Prof. Ismael H. F. Santos - [email protected] 18
Estrutura de uma Aplicação Web
10
April 05 Prof. Ismael H. F. Santos - [email protected] 19
Componentes de um contexto
April 05 Prof. Ismael H. F. Santos - [email protected] 20
URL de acesso ao contexto
11
April 05 Prof. Ismael H. F. Santos - [email protected] 21
Criando um contexto válido
April 05 Prof. Ismael H. F. Santos - [email protected] 22
Exemplo configuração (1/3)
12
April 05 Prof. Ismael H. F. Santos - [email protected] 23
Exemplo configuração (2/3)
April 05 Prof. Ismael H. F. Santos - [email protected] 24
Exemplo configuração (3/3)
13
April 05 Prof. Ismael H. F. Santos - [email protected] 25
Web Archive
April 05 Prof. Ismael H. F. Santos - [email protected] 26
Ciclode Vida
POO-Java
14
April 05 Prof. Ismael H. F. Santos - [email protected] 27
Servlets - API
April 05 Prof. Ismael H. F. Santos - [email protected] 28
Servlets – Ciclo de Vida
15
April 05 Prof. Ismael H. F. Santos - [email protected] 29
Servlets – Ciclo de Vida
April 05 Prof. Ismael H. F. Santos - [email protected] 30
Servlets – Métodos de Serviço
16
April 05 Prof. Ismael H. F. Santos - [email protected] 31
Servlets – Métodos de Serviço (2)
April 05 Prof. Ismael H. F. Santos - [email protected] 32
HTTPServlets
POO-Java
17
April 05 Prof. Ismael H. F. Santos - [email protected] 33
HTTP Servlets - API
April 05 Prof. Ismael H. F. Santos - [email protected] 34
Criando um HTTP servlet
18
April 05 Prof. Ismael H. F. Santos - [email protected] 35
Métodos de serviço HTTP
April 05 Prof. Ismael H. F. Santos - [email protected] 36
Inicialização
19
April 05 Prof. Ismael H. F. Santos - [email protected] 37
Requisição HTTP
April 05 Prof. Ismael H. F. Santos - [email protected] 38
Obtendo dados da requisição
20
April 05 Prof. Ismael H. F. Santos - [email protected] 39
Resposta HTTP
April 05 Prof. Ismael H. F. Santos - [email protected] 40
Preenchimento da resposta
21
April 05 Prof. Ismael H. F. Santos - [email protected] 41
doGet() e doPost()
April 05 Prof. Ismael H. F. Santos - [email protected] 42
Parâmetros da requisição
22
April 05 Prof. Ismael H. F. Santos - [email protected] 43
Obtendo parâmetros da requisição
April 05 Prof. Ismael H. F. Santos - [email protected] 44
Gerando a resposta
23
April 05 Prof. Ismael H. F. Santos - [email protected] 45
Compilação e implementação
April 05 Prof. Ismael H. F. Santos - [email protected] 46
Execução
24
April 05 Prof. Ismael H. F. Santos - [email protected] 47
Instâncias de servlets
April 05 Prof. Ismael H. F. Santos - [email protected] 48
Servlet alias – mapeamento no web.xml
25
April 05 Prof. Ismael H. F. Santos - [email protected] 49
Sintaxe de mapeamentos
April 05 Prof. Ismael H. F. Santos - [email protected] 50
Anatomia de uma URL
26
April 05 Prof. Ismael H. F. Santos - [email protected] 51
ServletConfig
April 05 Prof. Ismael H. F. Santos - [email protected] 52
Parâmetros de inicialização
27
April 05 Prof. Ismael H. F. Santos - [email protected] 53
Lendo Parâmetros de inicialização
April 05 Prof. Ismael H. F. Santos - [email protected] 54
ServletContext
28
April 05 Prof. Ismael H. F. Santos - [email protected] 55
Inicialização de contexto
April 05 Prof. Ismael H. F. Santos - [email protected] 56
Carregamento de arquivos no contexto
29
April 05 Prof. Ismael H. F. Santos - [email protected] 57
Gravação de atributos no contexto
April 05 Prof. Ismael H. F. Santos - [email protected] 58
Escopo e Threads
30
April 05 Prof. Ismael H. F. Santos - [email protected] 59
Repasse de requisição
April 05 Prof. Ismael H. F. Santos - [email protected] 60
Redirecionamento x Repasse
31
April 05 Prof. Ismael H. F. Santos - [email protected] 61
GerenciamentoSessão
POO-Java
April 05 Prof. Ismael H. F. Santos - [email protected] 62
Sessões
32
April 05 Prof. Ismael H. F. Santos - [email protected] 63
Sessões
April 05 Prof. Ismael H. F. Santos - [email protected] 64
Compartilhamento objetos na seção
33
April 05 Prof. Ismael H. F. Santos - [email protected] 65
Sessão
April 05 Prof. Ismael H. F. Santos - [email protected] 66
Escopo de objetos em servlets
34
April 05 Prof. Ismael H. F. Santos - [email protected] 67
Escopo de objetos em servlets: resumo
April 05 Prof. Ismael H. F. Santos - [email protected] 68
Recursos compartilhados
35
April 05 Prof. Ismael H. F. Santos - [email protected] 69
Acesso a Bancos de Dados
April 05 Prof. Ismael H. F. Santos - [email protected] 70
Acesso ao pool de conexões
36
April 05 Prof. Ismael H. F. Santos - [email protected] 71
Configurando o Tomcat
POO-Java
April 05 Prof. Ismael H. F. Santos - [email protected] 72
Contêineres WEBOs scriptlets contidos nas páginas JSP são processados pelo Contêiner JSP;
Ao browser, chega apenas a página HTML resultante do processamento do arquivo .jsp. Ou seja scriptlets(<% ... %>) nunca chegam ao browser.
Para executar servlets e arquivos JSP, é preciso implantá-los em um Contêiner Web.
Um Contêiner Web pode estar executando como parte de um servidor HTTP ou pode ele próprio ser o servidor.
37
April 05 Prof. Ismael H. F. Santos - [email protected] 73
Contêineres WEBO Contêiner Web é responsável por:
transformar arquivos JSP em arquivos fonte em Java (mais especificamente, em fontes servlets)compilar esses arquivos fonte, criando arquivos .classrepassar esses arquivos .class à JVM para para execução.
Existem diversos Contêineres WEB atualmente...
April 05 Prof. Ismael H. F. Santos - [email protected] 74
Contêineres WEB (cont.)Apache Tomcat
http://jakarta.apache.org/tomcat/Sun JSWDK
http://java.sun.com/products/servlet/download.htmlAllaire JRun
http://www.allaire.com/products/jrun/New Atlanta ServletExec
http://newatlanta.com/Gefion Software LiteWebServer
http://www.gefionsoftware.com/LiteWebServer/Sun Java Web Server™
http://www.sun.com/software/jwebserver/try/
38
April 05 Prof. Ismael H. F. Santos - [email protected] 75
Contêineres WEB (cont.)Bluestone
http://www.bluestone.comBorland Enterprise Server
http://www.inprise.comiPlanet Application Server
http://www.iplanet.comOrbix E2A (formally iPortal)
http://www.iona.comJetty
http://www.mortbay.comJRun
http://www.allaire.com
April 05 Prof. Ismael H. F. Santos - [email protected] 76
Contêineres WEB (cont.)
Orion Application Serverhttp://www.orionserver.com
Resinhttp://www.caucho.com
SilverStreamhttp://www.silverstream.com
Weblogic Application Serverhttp://www.bea.com
WebSpherehttp://www-4.ibm.com/sfotware/webservers/appserv
39
April 05 Prof. Ismael H. F. Santos - [email protected] 77
Tomcat
É um servidor Web (open source) do projeto Apache.Atualmente, na versão 5.0.xO dois principais módulos do Tomcat são
Catalina, o contêiner WEB do Tomcat.Jasper, o compilador de páginas JSPConectores. O conector padrão é o HTTP.
Por default, o Tomcat ocupará a porta 8080 da máquina onde estiver executando.Pasta de instalação default (CATALINA_HOME)
C:\Program Files\Apache Software Foundation\Tomcat 5.0
April 05 Prof. Ismael H. F. Santos - [email protected] 78
Estrutura de pastas do Tomcat 5.0
work: onde são gerados os .java das servlets a partir de JSPsbin: executáveis do Tomcatcommons: classes utilizadas pelo Tomcat que também estão disponíveis para as aplicações implantadas.webapps: pastas de contextos (para conter as aplicações Web)shared: contém classes que visíveis para todas as aplicações (e.g., driver JDBC)
40
April 05 Prof. Ismael H. F. Santos - [email protected] 79
Estrutura de pastas do Tomcat 5.0
server: classes que formam o servidor Tomcat e o seu contêiner WEB.conf: arquivos de configuração (server.xml e outros)logs: arquivos de log para as aplicações. Refira-se a esses arquivos para depurar suas aplicações.temp: diretório temporário utilizado internamente pelo Tomcat
April 05 Prof. Ismael H. F. Santos - [email protected] 80
Operação com o Tomcat
Derrubando e levantando: para levantar ou derrubar o Tomcat, utilize a ferramenta Tomcat Monitor.
Alternativamente, pode-se fazer isso com os scripts localizados na pasta bin: startup.bat e shutdown.bat.
Abra um navegador WEB e acesse a página cujo endereço é http://localhost:8080O resultado é a página principal do Tomcat
Com links para documentação a para administração do servidorTomcat Manager (gerenciamento das aplicações WEB)Tomcat Administration (configuração do servidor WEB)Exemplos de JSPs e de servlets
41
April 05 Prof. Ismael H. F. Santos - [email protected] 81
Contextos
Um contexto é um diretório que deve ser criado pelo programador para que o Tomcat reconheça os arquivos e recursos de uma aplicação Web.Esses diretórios armazenam os recursos (arquivos) de uma aplicação WEB.No Tomcat, há três maneiras de criar o contexto de uma aplicação WEB:1. Transferir os arquivos da aplicação (JSP, servlets, imagens,
etc.) para contextos predefinidos pelo servidor.2. Configurar o servidor para que reconheça um novo contexto
onde os arquivos da aplicação residem (server.xml)3. Implantar a aplicação como um WebArchive (WAR)
April 05 Prof. Ismael H. F. Santos - [email protected] 82
Implantação de aplicações no Tomcat
O contexto raiz chama-se ROOT.Arquivos copiados para <CATALINA_HOME>\webapps\ROOT podem ser acessados via http://servidor:8080/Servlets em <CATALINA_HOME>\webapps\ROOT\WEB-INF\classes podem ser acessados via http://servidor:8080/servlet/
42
April 05 Prof. Ismael H. F. Santos - [email protected] 83
Implantação de aplicações no Tomcat
Para informar o Tomcat de um contexto externo à raiz, o arquivo server.xml deve ser editado.
Esse arquivo é armazenado em <CATALINA_HOME>\confExemplo: contexto expljsp.
Para aplicações complexas, crie um ou mais arquivos WAR (Web ARchive)
Use a ferramenta jar para empacotar os arquivos da aplicação.Renomeie o arquivo com a extensão war.Copie esse arquivo para a pasta raiz do contêiner.
April 05 Prof. Ismael H. F. Santos - [email protected] 84
Construção de uma servletPassos para construir uma servlet1. Crie uma estrutura de diretórios para a sua aplicação.
Pastas WEB-INF e classesNota: o conteúdo de WEB-INF não é visível a partir do browser.
2. Escreva o código fonte da servlet.É necessário importar os pacotes javax.servlet e javax.servlet.http.
3. Compile o código fonte. O arquivo servlet-api.jar deve estar no classpath
Localizado em <CATALINA_HOME>\common\lib\servlet-api.jar
43
April 05 Prof. Ismael H. F. Santos - [email protected] 85
Construção de uma servletPassos para construir uma servlet (cont.)
4. Crie um descritor de implantação (deploymentdescriptor).
Passo opcional.Um descritor de implantação é um arquivo XML (web.xml)
5. Execute o Tomcat. 6. Chame a servlet a partir de um navegador web.
April 05 Prof. Ismael H. F. Santos - [email protected] 86
Jakarta Tomcat - Configuração
Registrando ServletsO arquivo web.xml
Localizado em geral no diretório:%CATALINA_HOME%\webapps\<Aplicacao>\WEB-INF
Registrando um servlet:<web-app>
<servlet><servlet-name>ServletSes</servlet-name><servlet-class>interfPesquisa.ServletSes</servlet-class>
</servlet></web-app>
44
April 05 Prof. Ismael H. F. Santos - [email protected] 87
Jakarta Tomcat - Configuração
Parametros de inicializaçãoMuitas vezes existem valores que são constantes durante a execução do servlet, mas que podem mudar durante a vida da aplicação:Exemplo:
Localização de recursos, Mensagens padrão
Principais métodos Classes Servlet e ServletConfig
public java.util.Enumeration getInitParameterNames()public java.lang.StringgetInitParameter(java.lang.String name)
April 05 Prof. Ismael H. F. Santos - [email protected] 88
Parâmetros de InicializaçãoConfigurando no Tomcat
Arquivo web.xml
45
April 05 Prof. Ismael H. F. Santos - [email protected] 89
Jakarta Tomcat - Configuração
init( ServletConfig config )
April 05 Prof. Ismael H. F. Santos - [email protected] 90
CookiesPOO-Java
46
April 05 Prof. Ismael H. F. Santos - [email protected] 91
Controle de sessão
April 05 Prof. Ismael H. F. Santos - [email protected] 92
Cookies
47
April 05 Prof. Ismael H. F. Santos - [email protected] 93
Exemplo com cookies: Loja Virtual
April 05 Prof. Ismael H. F. Santos - [email protected] 94
Cookies
Um cookie corresponde a uma informação que o servidor requisita que seja armazenada no cliente.
Seguem sempre o formato: nome=valorExemplos: usuario=bezerra, id=1234
Cookies são criados através de cabeçalhos HTTP, pelo uso da diretiva Set-Cookie.Exemplo:Content-type: text/htmlContent-length: 43894Set-Cookie: usuario=bezerraSet-Cookie: ultimologin=13%09%2004
48
April 05 Prof. Ismael H. F. Santos - [email protected] 95
Cookies (cont.)
Usos típicos de cookies:Identificar um usuário durante uma sessão de e-commerce.Evitar utilização de nome de usuário e senhaCustomização de sitesPropaganda direcionada
Enviando um cookie para o browser em JSP:<%Cookie c = new Cookie(“usuario”, “bezerra”);c.setMaxAge(2592000); // Secondsresponse.addCookie(c);%>
April 05 Prof. Ismael H. F. Santos - [email protected] 96
Cookies (cont.)Enviando um cookie para o browser em uma servlet:...Cookie c = new Cookie("name", "value");c.setMaxAge(...);response.addCookie(c);...
49
April 05 Prof. Ismael H. F. Santos - [email protected] 97
Cookies (cont.)
Lendo cookies do browser em uma servlet:...Cookie[] cookies = response.getCookies();
for(int i=0; i<cookies.length; i++) {Cookie c = cookies[i];if (c.getName().equals("someName")) {doSomethingWith(c);break;
}}...
Top Related