introdução ao desenvolvimento de aplicações web com jsp
DESCRIPTION
Slides do minicurso "Introdução ao Desenvolvimento de aplicações WEB com JSP" apresentado na Universidade Federal do Pará nos dias 4 e 5 de novembro de 2013 durante a III Semana Acadêmica da FACOMP.TRANSCRIPT
![Page 1: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/1.jpg)
III Semana Acadêmica da FACOMP
Introdução ao Desenvolvimento de Introdução ao Desenvolvimento de Aplicações WEB com JSPAplicações WEB com JSP
Manoel Afonso Pereira de Lima [email protected]
04 e 05 de Novembro de 2013
![Page 2: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/2.jpg)
Ementa
Visão Geral
Arquitetura Cliente-Servidor
Configuração do Java e Tomcat
Estrutura e configuração da aplicação
Servlets
Sintaxe JSP
Diretivas JSP
Objetos implícitos
Processamento de fomulários
Filtros
Sessões
Redirecionamentos
Expression Language
![Page 3: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/3.jpg)
Visão Geral
JavaServer Pages (JSP) é uma tecnologia utilizada para o desenvolvimento de páginas WEB dinâmicas.
Baseia-se em HTML, XML e outros tipos de documentos para WEB.
Simular a PHP, mas utiliza Java como linguagem de programação.
Permite a criação de aplicativos WEB simples, como coleta de dados do usuário, até as mais complexas, como gerenciamento extensivo de dados.
![Page 4: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/4.jpg)
Visão Geral
Esquema de página WEB dinâmica
![Page 5: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/5.jpg)
Visão Geral
Linguagem de cliente
− Páginas podem ser dinâmicas utilizando client-side scripting.
− São scripts executados no computador do cliente.
− Javascript, Actionscript, etc
− A interface é alterada com base em eventos do teclado, mouse ou tempo.
![Page 6: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/6.jpg)
Visão Geral
Validação de formulários e Design Responsivo são exemplos de client-side scripting.
![Page 7: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/7.jpg)
Visão Geral
Linguagem de Servidor
− Programas são executados no computador servidor.
− Produzem as páginas WEB de acordo com os parâmetros fornecidos, estado do banco de dados, etc.
− ASP, CGI, Java (JavaServer Pages), Javascript (Node.js), PHP, Python (Django), etc
![Page 8: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/8.jpg)
Visão Geral
Cadastro e autenticação de usuários são exemplos de ações executadas no servidor.
Sistemas de gerenciamento de conteúdo também usam linguagem de servidor.
![Page 9: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/9.jpg)
Arquitetura Cliente-Servidor
Computadores que fornecem recursos/serviços são classificados como servidores.
− Páginas WEB, impressoras, processamento, etc. Computadores que requisitam tais recursos são os
clientes.
Clientes
Servidor
Internet
![Page 10: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/10.jpg)
Arquitetura Cliente-Servidor
O cliente de uma aplicação WEB, em geral, é um browser (navegador).
Browsers apenas interpretam linguagem client-side.
− Seja qual for a linguagem de servidor, o cliente nunca irá vê-la.
− O servidor apenas retorna dados formatados para o cliente side, como HTML, Javascript, CSS, XML, etc.
![Page 11: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/11.jpg)
Arquitetura Cliente-Servidor
O Browser interpreta linguagens como HTML, Javascript, etc.
![Page 12: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/12.jpg)
Arquitetura Cliente-Servidor
O Browser interpreta linguagens como HTML, Javascript, etc.
![Page 13: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/13.jpg)
Arquitetura Cliente-Servidor
No nosso caso, como o servidor fornece um webapp, podemos chamar de servidor WEB ou servidor de aplicação.
O responsável por traduzir as páginas JSP para HTML é o contêiner JSP.
Exemplos de contêineres JSP:
Apache Tomcat Jetty GlassFish
![Page 14: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/14.jpg)
Arquitetura Cliente-Servidor
Os contêineres recebem as requisições dos clientes e, então, produzem o HTML correspondente.
Servidor
Internet
Ubuntu
OS X
Windows 8
Arquivos JSPBanco de Dados Contêiner
HTML
![Page 15: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/15.jpg)
Configuração do Java e Tomcat
Download do Java
http://www.oracle.com/technetwork/pt/java/javase/downloads/index.html
Configurar variáveis de ambiente
− Em Linux, basta adicionar o trecho abaixo no arquivo ~/.bashrc:
PATH=/usr/local/jdk1.7.0/bin:
export PATH
![Page 16: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/16.jpg)
Configuração do Java e Tomcat
Download do Tomcat
http://tomcat.apache.org/download-70.cgi
Descompactar o diretório do Tomcat (CATALINA_HOME).
As aplicações WEB ficam localizadas no diretório WEBAPPS.
![Page 17: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/17.jpg)
Configuração do Java e Tomcat
PORTAS COMUNS
Porta Aplicação
20/21 FTP
22 SSH
23 Telnet
43 WhoIS
25 Simple Mail Transfer Protocol (SMTP)
53 Domain Name System (DNS)
80 HTTP
443 HTTPS
8080 Tomcat
![Page 18: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/18.jpg)
Configuração do Java e Tomcat
● Por padrão, o Tomcat serve os aplicativos WEB pela porta 8080.
● Normalmente, vemos o sites servindo as páginas pela porta 80 (padrão) pois eles utilizam o servidor HTTP Apache.
● O Tomcat, além de interpretar as JSPs, também funciona como um servidor HTTP.
● Para acessar uma site, usamos <endereço>:<porta>.
– Se a porta for a 80, podemos omiti-la.
![Page 19: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/19.jpg)
Configuração do Java e Tomcat
Arquivos JSP
Tomcat na porta 8080Servidor Apache
na porta 80Cliente
![Page 20: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/20.jpg)
Configuração do Java e Tomcat
Arquivos JSP
Tomcat na porta 8080Cliente
![Page 21: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/21.jpg)
Estrutura e Configuração da Aplicação
MeuApp
WEB-INF
Classes
lib
MyServlet.class
mysql.jar
web.xml
index.jsp
META-INF
context.xml
![Page 22: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/22.jpg)
Estrutura e Configuração da Aplicação
MeuApp
WEB-INF
Classes
lib
MyServlet.class
mysql.jar
web.xml
index.jsp
META-INF
context.xmlCaminho de Contexto
![Page 23: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/23.jpg)
Estrutura e Configuração da Aplicação
MeuApp
WEB-INF
Classes
lib
MyServlet.class
mysql.jar
web.xml
index.jsp
META-INF
context.xml
Servlets
![Page 24: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/24.jpg)
Estrutura e Configuração da Aplicação
MeuApp
WEB-INF
Classes
lib
MyServlet.class
mysql.jar
web.xml
index.jsp
META-INF
context.xml
Bibliotecas
![Page 25: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/25.jpg)
Estrutura e Configuração da Aplicação
MeuApp
WEB-INF
Classes
lib
MyServlet.class
mysql.jar
web.xml
index.jsp
META-INF
context.xml
Configurações da aplicação
![Page 26: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/26.jpg)
Estrutura e Configuração da Aplicação
MeuApp
WEB-INF
Classes
lib
MyServlet.class
mysql.jar
web.xml
index.jsp
META-INF
context.xml
Páginas WEB (JSP, HTML, imagens, etc)
![Page 27: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/27.jpg)
Estrutura e Configuração da Aplicação
● Caminho de Contexto:
– É um arquivo XML (context.xml) que indica ao contêiner onde localizar os recursos em relação à raiz.
localhost:8080/exemplo
localhost:8080/myapp
localhost:8080/teste
localhost:8080/helloworld
Catalina_home
WEBAPPS
exemplo
myapp
teste
helloworld
![Page 28: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/28.jpg)
Estrutura e Configuração da Aplicação
● Exemplo de context.xml:
<?xml version="1.0" encoding="UTF-8"?><Context antiJARLocking="true" path="/Exemplo1"/>
![Page 29: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/29.jpg)
Estrutura e Configuração da Aplicação
● Exemplo de context.xml:
<?xml version="1.0" encoding="UTF-8"?><Context antiJARLocking="true" path="/Exemplo1"/>
http://localhost:8080/Exemplo1
![Page 30: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/30.jpg)
Estrutura e Configuração da Aplicação
● Exemplo de context.xml:
<?xml version="1.0" encoding="UTF-8"?><Context antiJARLocking="true" path="/Exemplo1"/>
Os paths devem ser únicos.
![Page 31: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/31.jpg)
Estrutura e Configuração da Aplicação
● Exemplo de context.xml:
<?xml version="1.0" encoding="UTF-8"?><Context antiJARLocking="true" path="/Exemplo1"/>
Os paths devem ser únicos.
Se path for uma string vazia (“”),então a aplicação será a default.
![Page 32: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/32.jpg)
Estrutura e Configuração da Aplicação
● web.xml:
– É onde configuramos os servlets, filtros, URL's, e outros parâmetros de configuração.
– É um arquivo xml com sintaxe bem intuitiva, mas fica complexa quando se tem muitas configurações.
![Page 33: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/33.jpg)
Estrutura e Configuração da Aplicação
● web.xml:
– É onde configuramos os servlets, filtros, URL's, e outros parâmetros de configuração.
– É um arquivo xml com sintaxe bem intuitiva, mas fica complexa quando se tem muitas configurações.
Fica mais fácil configurar usando uma IDE.
![Page 34: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/34.jpg)
Servlets
● São classes Java usadas para prover funcionalidades de servidor.
● Respondem às requisições dos clientes.
● Geralmente usados para:
– Processar/armazenar dados de formulários HTML.
– Fornecer conteúdo dinâmico.
– Gerenciar o estado da informação (o que não existe no protocolo HTTP).
![Page 35: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/35.jpg)
Servlets
● As páginas JSP podem ser vistas como abstrações do servlet.
● Durante a execução da aplicação WEB, os arquivos JSP são traduzidos para servlets.
– Utiliza cache até que a JSP seja alterada.
![Page 36: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/36.jpg)
Servlets
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
PrintWriter out = response.getWriter(); out.println("Hello World"); }}
![Page 37: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/37.jpg)
Servlets
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
PrintWriter out = response.getWriter(); out.println("Hello World"); }}
![Page 38: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/38.jpg)
Servlets
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
PrintWriter out = response.getWriter(); out.println("Hello World"); }}
Responde às requisições GET
![Page 39: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/39.jpg)
Servlets
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
PrintWriter out = response.getWriter(); out.println("Hello World"); }}
Imprime o conteúdo para o browser
![Page 40: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/40.jpg)
Servlets
● Imprimindo HTML:
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>Olá Mundo!</h1>"); out.println("</body>"); out.println("</html>");}
![Page 41: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/41.jpg)
Servlets
● Imprimindo HTML:
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>Olá Mundo!</h1>"); out.println("</body>"); out.println("</html>");}
É por isso que usamos JSP para exibir a interface gráfica
![Page 42: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/42.jpg)
Servlets
● Padrão URL
– Caminho para se acessar um servlet.
– Se o padrão for /teste então acessamos o servlet pela url localhost:8080/myapp/teste.
![Page 43: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/43.jpg)
Servlets
● Padrão URL
– Caminho para se acessar um servlet.
– Se o padrão for /teste então acessamos o servlet pela url localhost:8080/myapp/teste.
<servlet><servlet-name>Foobar</servlet-name>
<servlet-class>exemplo.Foobar</servlet-class></servlet><servlet-mapping> <servlet-name>Foobar</servlet-name> <url-pattern>/Foobar</url-pattern></servlet-mapping>
![Page 44: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/44.jpg)
Servlets
![Page 45: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/45.jpg)
Servlets
![Page 46: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/46.jpg)
Servlets
● Método GET
– Solicita dados de algum recurso.
– O servlet deve implementar o método doGet() para poder responder a esses pedidos.
– Os parâmetros são enviados pela URL.
http://localhost:8080/Exemplo1/Foobar?nome=Afonso&id=25
![Page 47: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/47.jpg)
Servlets
● Método GET
– Solicita dados de algum recurso.
– O servlet deve implementar o método doGet() para poder responder a esses pedidos.
– Os parâmetros são enviados pela URL.
http://localhost:8080/Exemplo1/Foobar?nome=Afonso&id=25
Endereço da aplicação Servlet Parâmetros
![Page 48: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/48.jpg)
Servlets
● Método GET
– Solicita dados de algum recurso.
– O servlet deve implementar o método doGet() para poder responder a esses pedidos.
– Os parâmetros são enviados pela URL.
http://localhost:8080/Exemplo1/Foobar?nome=Afonso&id=25
Chave: nome idValor: Afonso 25
![Page 49: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/49.jpg)
Servlets
● Método GET
– Deve ser utilizado apenas para recuperar dados.
– Não deve conter informações sensíveis (ex.: nome e senha de usuário).
– URLs com GET podem ser favoritadas no browser.
– Ficam no histórico do browser.
![Page 50: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/50.jpg)
Servlets
● Método POST
– Indica que algum processamento deve ser feito sobre os dados enviados.
– Os dados são enviados no corpo da mensagem HTTP.
POST /teste/exemplo.jsp HTTP/1.1Host: ufpa.brnome1=valor1&nome2=valor2
![Page 51: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/51.jpg)
Servlets
● Método POST
– Não podem ser favoritados no browser.
– Não ficam no histórico do browser.
– É utilizado para enviar os dados do login.
![Page 52: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/52.jpg)
Sintaxe JSP
● Scriptlet
– Contém o código Java comum.
<% Código Java %>
● Assim fica mais fácil inserir código Java em HTML.
● Mas lembre-se de que uma página JSP não pode estar inundada de código Java, HTML, CSS, Javascript, etc.
● O código tem que estar legível.
![Page 53: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/53.jpg)
Sintaxe JSP
<!DOCTYPE html><html>
<head><title>Exemplo 1</title>
</head>
<body><p>
Olá Mundo! <br>O seu endereço IP é<% out.print(request.getRemoteAddr()); %>
</p></body>
</html>
Exemplo de página JSP
![Page 54: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/54.jpg)
Sintaxe JSP
Resultado
![Page 55: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/55.jpg)
Sintaxe JSP
● Declarações JSP:
<%! declarações %>
● Expressões JSP:
<%= expressões %>
● Comentários JSP:
<%-- comentários --%>
● Diretivas JSP:
<%@ diretiva atributo=valor %>
![Page 56: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/56.jpg)
Sintaxe JSP
● Declarações JSP:
– Declara uma ou mais variáveis ou métodos para serem usados por toda a página.
<%! int a, b, c; %>
<%!void metodo(){
…}
%>
![Page 57: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/57.jpg)
Sintaxe JSP
● Expressões JSP:
– Avalia uma expressão e a converte para uma String.
– A String é inserida onde a expressão aparece.
– Pense como se fosse um “print”.
<p>Olá Mundo! <br>O seu endereço IP é<%= request.getRemoteAddr() %>
</p>
![Page 58: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/58.jpg)
Sintaxe JSP
● Expressões JSP:
– Avalia uma expressão e a converte para uma String.
– A String é inserida onde a expressão aparece.
– Pense como se fosse um “print”.
<p>Olá Mundo! <br>O seu endereço IP é<%= request.getRemoteAddr() %>
</p>
Sem ponto-e-vírgula!
![Page 59: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/59.jpg)
FIM DA PRIMEIRA PARTE
![Page 60: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/60.jpg)
Diretivas JSP
● Indicam ao contêiner como realizar determinadas ações durante a criação da página JSP.
● Essas ações são feitas durante o processo de tradução da JSP.
● Por padrão, escrevemos as diretivas no topo da página JSP.
<%@ diretiva atributo=valor %>
![Page 61: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/61.jpg)
Diretivas JSP
● Diretiva page:
– Especificam características que se aplicam à JSP inteira.
– Exemplo:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
![Page 62: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/62.jpg)
Diretivas JSP
● Diretiva page:
– Atributo contentType
● Especifica o MIME (Multipurpose Internet Mail Extensions) da página.
<%@page contentType="text/html"%>
![Page 63: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/63.jpg)
Diretivas JSP
● Diretiva page:
– Atributo import
● Utilize para importar classes, interfaces, ou um pacote inteiro.
<%@page import="java.util.Date"%>
![Page 64: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/64.jpg)
Diretivas JSP
● Diretiva page:
– Atributo errorPage
● Especifica qual página exibir caso alguma exceção seja lançada.
<%@page errorPage="pagina-erro.jsp"%>
![Page 65: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/65.jpg)
Diretivas JSP
● Diretiva page:
– Atributo isErrorPage
● Página a ser exibida caso uma exceção seja lançada por uma outra JSP.
<%@page isErrorPage="true"%>
![Page 66: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/66.jpg)
Diretivas JSP
● Diretiva include:
– É utilizada para adicionar um arquivo durante a fase de tradução da JSP.
<%@ include file="url relativa" >
![Page 67: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/67.jpg)
Sessões
● Como o HTTP é um protocolo que não armazena estado, sempre que o cliente se conecta a uma página da aplicação, uma nova conexão é feita, de modo que o servidor não tem como identificar que é o mesmo cliente.
● Cookies
– O servidor mantém um ID único do cliente no formato de cookie.
– Nem todos os browsers suportam cookies.● Campos de formulários ocultos
<input type="hidden" name="sessionid" value="12345">
● URL rewriting
– Inclui a ID da sessão na própria URL.
![Page 68: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/68.jpg)
Objetos implícitos
● Objetos implícitos são objetos Java disponíveis em todas as páginas JSP sem ser declaradas.
● Também são conhecidas como variáveis pré-definidas.
● Existem nove objetos implícitos nas JSPs.
![Page 69: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/69.jpg)
Objetos implícitos
Objeto Descrição
requestRepresenta o objeto HttpServletRequest associado com a requisição do cliente.
responseRepresenta o objeto HttpServletResponse associado com a resposta ao cliente.
out Objeto PrintWriter usado para enviar a saída para o cliente.
session Objeto HttpSession relacionado com a sessão do usuário.
application Objeto ServletContext relacionado com o contexto da aplicação.
config Configuração da página.
pageContext Encapsula características específicas do servidor como JspWriters de alta performance.
page Sinônimo para this.
Exception Acesso às informações da execeção.
![Page 70: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/70.jpg)
Processamento de Formulários
● Basicamente, fazem uso conjunto de vários objetos implícitos.
![Page 71: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/71.jpg)
Filtros
● Interceptam requisições do clientes antes de serem processados pelos servlets.
● Manipulam respostas dos servlets antes de enviá-las aos clientes.
● Utilizados para autenticação, compressão de dados, criptografia, conversão de imagens, logging, etc.
● As configurações dos filtros são armazenadas no arquivo web.xml.
![Page 72: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/72.jpg)
Redirecionamentos
● Redireciona o fluxo para outra página.
● Não altera a url, embora a JSP seja outra.
RequestDispatcher rd =request.getRequestDispatcher("teste.jsp");
rd.forward(request, response);
![Page 73: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/73.jpg)
Expression Language
● Facilita o acesso aos dados de objetos.
● Sintaxe mais simples.
● Permite que pessoas sem muito conhecimento de Java manipulem páginas JSP.
● Sintaxe:
${expressão}
![Page 74: Introdução ao Desenvolvimento de aplicações WEB com JSP](https://reader035.vdocuments.net/reader035/viewer/2022081716/548d179bb4795982638b4681/html5/thumbnails/74.jpg)
Conclusão
● Vimos como construir os elementos básicos de uma aplicação web.
● Autenticação, redirecionamento, padronização, entre outros.
● Noção de MVC (Model-View-Controller).