1
|
|
2
|
- Módulo IVa – Servlets
- Overview Servlets e JSP
- Ciclo de Vida
- HTTP Servlets
- Gerenciamento de Sessão
- Contêineres Web – Apache Tomcat
- Cookies
|
3
|
- Linguagem de Programação JAVA
- Ismael H. F. Santos, Apostila
UniverCidade, 2002
- The Java Tutorial: A practical guide for programmers
- Tutorial on-line: http://java.sun.com/docs/books/tutorial
- Java in a Nutshell
- David Flanagan, O´Reilly &
Associates
- Just Java 2
- Mark C. Chan, Steven W. Griffith
e Anthony F. Iasi, Makron Books.
- Java 1.2
- Laura Lemay & Rogers
Cadenhead, Editora Campos
|
4
|
- Core Java 2, Cay S. Horstmann, Gary Cornell
- Volume 1 (Fundamentos)
- Volume 2 (Características Avançadas)
- Java: Como Programar, Deitel & Deitel
- Thinking in Patterns with JAVA, Bruce Eckel
- Gratuito. http://www.mindview.net/Books/TIJ/
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
- 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 set para os seus
atributos.). Forma geral:
- public TipoPropriedade getPropriedade();
- public void setPropriedade(TipoPropriedade valor);
- Exemplo de bean:
- Usuario.java (nas paste web dos exemplos)
|
14
|
|
15
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
|
24
|
|
25
|
|
26
|
|
27
|
|
28
|
|
29
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37
|
|
38
|
|
39
|
|
40
|
|
41
|
|
42
|
|
43
|
|
44
|
|
45
|
|
46
|
|
47
|
|
48
|
|
49
|
|
50
|
|
51
|
|
52
|
|
53
|
|
54
|
|
55
|
|
56
|
|
57
|
|
58
|
|
59
|
|
60
|
|
61
|
|
62
|
|
63
|
|
64
|
|
65
|
|
66
|
|
67
|
|
68
|
|
69
|
|
70
|
|
71
|
|
72
|
- Os 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.
|
73
|
- O 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 .class
- repassar esses arquivos .class à JVM para para execução.
- Existem diversos Contêineres WEB atualmente...
|
74
|
- Apache Tomcat
- http://jakarta.apache.org/tomcat/
- Sun JSWDK
- http://java.sun.com/products/servlet/download.html
- Allaire JRun
- http://www.allaire.com/products/jrun/
- New Atlanta ServletExec
- Gefion Software LiteWebServer
- http://www.gefionsoftware.com/LiteWebServer/
- Sun Java Web Server™
- http://www.sun.com/software/jwebserver/try/
|
75
|
- Bluestone
- Borland Enterprise Server
- iPlanet Application Server
- Orbix E2A (formally iPortal)
- Jetty
- JRun
|
76
|
- Orion Application Server
- http://www.orionserver.com
- Resin
- SilverStream
- http://www.silverstream.com
- Weblogic Application Server
- WebSphere
- http://www-4.ibm.com/sfotware/webservers/appserv
|
77
|
- É um servidor Web (open source) do projeto Apache.
- Atualmente, na versão 5.0.x
- O dois principais módulos do Tomcat são
- Catalina, o contêiner WEB do Tomcat.
- Jasper, o compilador de páginas JSP
- Conectores. 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
|
78
|
- work: onde são gerados os .java
das servlets a partir de JSPs
- bin: executáveis do Tomcat
- commons: 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)
|
79
|
- 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
|
80
|
- 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:8080
- O resultado é a página principal do Tomcat
- Com links para documentação a para administração do servidor
- Tomcat Manager (gerenciamento das aplicações WEB)
- Tomcat Administration (configuração do servidor WEB)
- Exemplos de JSPs e de servlets
|
81
|
- 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:
- Transferir os arquivos da aplicação (JSP, servlets, imagens, etc.) para
contextos predefinidos pelo servidor.
- Configurar o servidor para que reconheça um novo contexto onde os
arquivos da aplicação residem (server.xml)
- Implantar a aplicação como um WebArchive (WAR)
|
82
|
- 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/
|
83
|
- Para informar o Tomcat de um contexto externo à raiz, o arquivo server.xml
deve ser editado.
- Esse arquivo é armazenado em <CATALINA_HOME>\conf
- Exemplo: 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.
|
84
|
- Passos para construir uma servlet
- Crie uma estrutura de diretórios
para a sua aplicação.
- Pastas WEB-INF e classes
- Nota: o conteúdo de WEB-INF não é visível a partir do browser.
- Escreva o código fonte da servlet.
- É necessário importar os pacotes javax.servlet e javax.servlet.http.
- Compile o código fonte.
- O arquivo servlet-api.jar deve estar no classpath
- Localizado em <CATALINA_HOME>\common\lib\servlet-api.jar
|
85
|
- Passos para construir uma servlet (cont.)
- Crie um descritor de implantação (deployment descriptor).
- Passo opcional.
- Um descritor de implantação é um arquivo XML (web.xml)
- Execute o Tomcat.
- Chame a servlet a partir de um navegador web.
|
86
|
- Registrando Servlets
- O 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>
|
87
|
- Parametros de inicialização
- Muitas 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.String getInitParameter(java.lang.String name)
|
88
|
|
89
|
- init( ServletConfig config )
|
90
|
|
91
|
|
92
|
|
93
|
|
94
|
- Um cookie corresponde a uma informação que o servidor requisita que seja
armazenada no cliente.
- Seguem sempre o formato: nome=valor
- Exemplos: usuario=bezerra, id=1234
- Cookies são criados através de cabeçalhos HTTP, pelo uso da diretiva Set-Cookie.
- Exemplo:
- Content-type: text/html
- Content-length: 43894
- Set-Cookie: usuario=bezerra
- Set-Cookie: ultimologin=13%09%2004
|
95
|
- 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 senha
- Customização de sites
- Propaganda direcionada
- Enviando um cookie para o browser em JSP:
- <%
- Cookie c = new Cookie(“usuario”, “bezerra”);
- c.setMaxAge(2592000); // Seconds
- response.addCookie(c);
- %>
|
96
|
- Enviando um cookie para o browser em uma servlet:
- ...
- Cookie c = new Cookie("name", "value");
- c.setMaxAge(...);
- response.addCookie(c);
- ...
|
97
|
- 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;
- }
- }
- ...
|