SlideShare uma empresa Scribd logo
III Semana Acadêmica da FACOMP

Introdução ao Desenvolvimento de
Aplicações WEB com JSP
Manoel Afonso Pereira de Lima Filho
manoel.lima@icen.ufpa.br
04 e 05 de Novembro de 2013
Ementa


Visão Geral



Diretivas JSP



Arquitetura Cliente-Servidor



Objetos implícitos









Configuração do Java e
Tomcat
Estrutura e configuração da
aplicação



Processamento de
fomulários



Filtros



Sessões

Servlets



Redirecionamentos

Sintaxe JSP



Expression Language
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.
Visão Geral


Esquema de página WEB dinâmica
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.
Visão Geral


Validação de formulários e Design Responsivo são
exemplos de client-side scripting.
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
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.
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.

Internet

Servidor

Clientes
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.
Arquitetura Cliente-Servidor

O Browser interpreta linguagens como HTML, Javascript, etc.
Arquitetura Cliente-Servidor

O Browser interpreta linguagens como HTML, Javascript, etc.
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
Arquitetura Cliente-Servidor


Os contêineres recebem as requisições dos clientes e, então,
produzem o HTML correspondente.
Ubuntu

Servidor

HTML

Internet

OS X

Windows 8

Banco de Dados

Contêiner

Arquivos JSP
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
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.
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
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.
Configuração do Java e Tomcat
Cliente

Servidor Apache
na porta 80

Tomcat na porta 8080

Arquivos JSP
Configuração do Java e Tomcat
Cliente

Tomcat na porta 8080

Arquivos JSP
Estrutura e Configuração da Aplicação
MeuApp
META-INF
context.xml
WEB-INF
Classes
MyServlet.class
lib
mysql.jar
web.xml
index.jsp
Estrutura e Configuração da Aplicação
MeuApp
META-INF
context.xml

Caminho de Contexto

WEB-INF
Classes
MyServlet.class
lib
mysql.jar
web.xml
index.jsp
Estrutura e Configuração da Aplicação
MeuApp
META-INF
context.xml
WEB-INF
Classes
MyServlet.class
lib
mysql.jar
web.xml
index.jsp

Servlets
Estrutura e Configuração da Aplicação
MeuApp
META-INF
context.xml
WEB-INF
Classes
MyServlet.class
lib
mysql.jar
web.xml
index.jsp

Bibliotecas
Estrutura e Configuração da Aplicação
MeuApp
META-INF
context.xml
WEB-INF
Classes
MyServlet.class
lib
mysql.jar
web.xml
index.jsp

Configurações da aplicação
Estrutura e Configuração da Aplicação
MeuApp
META-INF
context.xml
WEB-INF
Classes
MyServlet.class
lib
mysql.jar
web.xml
index.jsp

Páginas WEB (JSP, HTML, imagens, etc)
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.
Catalina_home

localhost:8080/exemplo
localhost:8080/myapp

WEBAPPS
exemplo

localhost:8080/teste

myapp

localhost:8080/helloworld

teste
helloworld
Estrutura e Configuração da Aplicação
●

Exemplo de context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/Exemplo1"/>
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
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.
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.
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.
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.
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).
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.
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");
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");
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
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
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>");
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
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.
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>
Servlets
Servlets
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
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
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:
Valor:

nome
Afonso

id
25
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.
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.1
Host: ufpa.br
nome1=valor1&nome2=valor2
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.
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.
Sintaxe JSP
Exemplo de página 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>
Sintaxe JSP
Resultado
Sintaxe JSP
●

Declarações JSP:
<%! declarações %>

●

Expressões JSP:
<%= expressões %>

●

Comentários JSP:
<%-- comentários --%>

●

Diretivas JSP:
<%@ diretiva atributo=valor %>
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(){
…
}
%>
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>
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!
FIM DA PRIMEIRA PARTE
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 %>
Diretivas JSP
●

Diretiva page:
–

Especificam características que se aplicam à JSP
inteira.

–

Exemplo:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
Diretivas JSP
●

Diretiva page:
–

Atributo contentType
●

Especifica o MIME (Multipurpose Internet Mail
Extensions) da página.
<%@page contentType="text/html"%>
Diretivas JSP
●

Diretiva page:
–

Atributo import
●

Utilize para importar classes, interfaces, ou um
pacote inteiro.
<%@page import="java.util.Date"%>
Diretivas JSP
●

Diretiva page:
–

Atributo errorPage
●

Especifica qual página exibir caso alguma exceção
seja lançada.
<%@page errorPage="pagina-erro.jsp"%>
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"%>
Diretivas JSP
●

Diretiva include:
–

É utilizada para adicionar um arquivo durante a fase
de tradução da JSP.

<%@ include file="url relativa" >
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.
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.
Objetos implícitos
Objeto

Descrição

request

Representa o objeto HttpServletRequest associado com a
requisição do cliente.

response

Representa 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.
Processamento de Formulários
●

Basicamente, fazem uso conjunto de vários objetos
implícitos.
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.
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);
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}
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).

Mais conteúdo relacionado

Mais procurados

Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
Eduardo Mendes
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
Igo Coelho
 
Tutorial +login+mvc
Tutorial +login+mvcTutorial +login+mvc
Tutorial +login+mvc
Diego Feitoza
 
JSPs Introdução Parte 1
JSPs Introdução Parte 1JSPs Introdução Parte 1
JSPs Introdução Parte 1
Elaine Cecília Gatto
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
Glaucio Scheibel
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
ledsifes
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
Marcio Marinho
 
Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2
Eduardo Mendes
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
Helder da Rocha
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Professor Samuel Ribeiro
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
Raphael Marques
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuração
Eduardo Mendes
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
Mario Sergio
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Helder da Rocha
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
Mario Sergio
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8
Helder da Rocha
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
Helder da Rocha
 
Curso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-endCurso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-end
Mario Sergio
 
Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6
danielfcampos
 
A arquitetura modular do Java 9
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9
Helder da Rocha
 

Mais procurados (20)

Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Tutorial +login+mvc
Tutorial +login+mvcTutorial +login+mvc
Tutorial +login+mvc
 
JSPs Introdução Parte 1
JSPs Introdução Parte 1JSPs Introdução Parte 1
JSPs Introdução Parte 1
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuração
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
 
Curso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-endCurso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-end
 
Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6
 
A arquitetura modular do Java 9
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9
 

Destaque

Objeto document de JavaScript
Objeto document de JavaScriptObjeto document de JavaScript
Objeto document de JavaScript
paz_ruiz
 
Apresentação JSF
Apresentação JSFApresentação JSF
Apresentação JSF
Carlos Henrique
 
JSP: Etiquetas
JSP: EtiquetasJSP: Etiquetas
JSP: Etiquetas
Elaine Cecília Gatto
 
JSP: Introdução Parte 1
JSP: Introdução Parte 1JSP: Introdução Parte 1
JSP: Introdução Parte 1
Elaine Cecília Gatto
 
Bootstrapping de uma Aplicação Web
Bootstrapping de uma Aplicação WebBootstrapping de uma Aplicação Web
Bootstrapping de uma Aplicação Web
Rafael Lima
 
WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08
Gilson Silva
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
antonio sérgio nogueira
 
A aplicabilidade dos sistemas de informação geográfica no planeamento em turismo
A aplicabilidade dos sistemas de informação geográfica no planeamento em turismoA aplicabilidade dos sistemas de informação geográfica no planeamento em turismo
A aplicabilidade dos sistemas de informação geográfica no planeamento em turismo
Pedro Cravo
 
O uso das Novas Tecnologias nas Rotas Turísticas
O uso das Novas Tecnologias nas Rotas TurísticasO uso das Novas Tecnologias nas Rotas Turísticas
O uso das Novas Tecnologias nas Rotas Turísticas
Pedro Cravo
 
Java pra web mais fácil com MVC
Java pra web mais fácil com MVCJava pra web mais fácil com MVC
Java pra web mais fácil com MVC
Cecilia Fernandes
 
Software de qualidade e qualidade de código
Software de qualidade e qualidade de códigoSoftware de qualidade e qualidade de código
Software de qualidade e qualidade de código
Guilherme Silveira
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)
Ricardo Terra
 
Java Web, o Tutorial
Java Web, o TutorialJava Web, o Tutorial
Java Web, o Tutorial
Rildo (@rildosan) Santos
 
Requisitos de Software
Requisitos de SoftwareRequisitos de Software
Requisitos de Software
Silvio Cadete
 
Apresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+HibernateApresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+Hibernate
Zarathon Maia
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
Fábio Nogueira de Lucena
 
Use a cabeça jsp & servlets
Use a cabeça   jsp & servletsUse a cabeça   jsp & servlets
Use a cabeça jsp & servlets
Ana Paula de Alexandria
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
Luiz China
 
Desenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleDesenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework Demoiselle
Serge Rehem
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
AlexandreBartie
 

Destaque (20)

Objeto document de JavaScript
Objeto document de JavaScriptObjeto document de JavaScript
Objeto document de JavaScript
 
Apresentação JSF
Apresentação JSFApresentação JSF
Apresentação JSF
 
JSP: Etiquetas
JSP: EtiquetasJSP: Etiquetas
JSP: Etiquetas
 
JSP: Introdução Parte 1
JSP: Introdução Parte 1JSP: Introdução Parte 1
JSP: Introdução Parte 1
 
Bootstrapping de uma Aplicação Web
Bootstrapping de uma Aplicação WebBootstrapping de uma Aplicação Web
Bootstrapping de uma Aplicação Web
 
WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
 
A aplicabilidade dos sistemas de informação geográfica no planeamento em turismo
A aplicabilidade dos sistemas de informação geográfica no planeamento em turismoA aplicabilidade dos sistemas de informação geográfica no planeamento em turismo
A aplicabilidade dos sistemas de informação geográfica no planeamento em turismo
 
O uso das Novas Tecnologias nas Rotas Turísticas
O uso das Novas Tecnologias nas Rotas TurísticasO uso das Novas Tecnologias nas Rotas Turísticas
O uso das Novas Tecnologias nas Rotas Turísticas
 
Java pra web mais fácil com MVC
Java pra web mais fácil com MVCJava pra web mais fácil com MVC
Java pra web mais fácil com MVC
 
Software de qualidade e qualidade de código
Software de qualidade e qualidade de códigoSoftware de qualidade e qualidade de código
Software de qualidade e qualidade de código
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)
 
Java Web, o Tutorial
Java Web, o TutorialJava Web, o Tutorial
Java Web, o Tutorial
 
Requisitos de Software
Requisitos de SoftwareRequisitos de Software
Requisitos de Software
 
Apresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+HibernateApresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+Hibernate
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
Use a cabeça jsp & servlets
Use a cabeça   jsp & servletsUse a cabeça   jsp & servlets
Use a cabeça jsp & servlets
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Desenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleDesenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework Demoiselle
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
 

Semelhante a Introdução ao Desenvolvimento de aplicações WEB com JSP

Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
GuilhermePetrosky
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
Fabricio Carvalho
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
Amanda Luz
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8
maxrosan
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
Elenilson Vieira
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
Dalton Valadares
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
Helder da Rocha
 
Revisao Geral
Revisao GeralRevisao Geral
Revisao Geral
Oscar
 
Jsf
JsfJsf
Programação para Web II: Estrutura de um projeto Java Web
Programação para Web II: Estrutura de um projeto Java WebProgramação para Web II: Estrutura de um projeto Java Web
Programação para Web II: Estrutura de um projeto Java Web
Alex Camargo
 
Curso tomcat
Curso tomcatCurso tomcat
Curso tomcat
Miguel Vilaca
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
Rogério Napoleão Jr.
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
Fabricio Carvalho
 
Programação web ASP.NET Tutorial
Programação web ASP.NET TutorialProgramação web ASP.NET Tutorial
Programação web ASP.NET Tutorial
Jose De Almeida Batista
 
Java Server Pages
Java Server PagesJava Server Pages
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
armeniocardoso
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
Rafael Benevides
 
Programação asp
Programação aspProgramação asp
Fundamentos de arquitetura Web
Fundamentos de arquitetura WebFundamentos de arquitetura Web
Fundamentos de arquitetura Web
Denis L Presciliano
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantes
Marco Pinheiro
 

Semelhante a Introdução ao Desenvolvimento de aplicações WEB com JSP (20)

Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Revisao Geral
Revisao GeralRevisao Geral
Revisao Geral
 
Jsf
JsfJsf
Jsf
 
Programação para Web II: Estrutura de um projeto Java Web
Programação para Web II: Estrutura de um projeto Java WebProgramação para Web II: Estrutura de um projeto Java Web
Programação para Web II: Estrutura de um projeto Java Web
 
Curso tomcat
Curso tomcatCurso tomcat
Curso tomcat
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
Programação web ASP.NET Tutorial
Programação web ASP.NET TutorialProgramação web ASP.NET Tutorial
Programação web ASP.NET Tutorial
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Programação asp
Programação aspProgramação asp
Programação asp
 
Fundamentos de arquitetura Web
Fundamentos de arquitetura WebFundamentos de arquitetura Web
Fundamentos de arquitetura Web
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantes
 

Último

Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
anpproferick
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
anpproferick
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
Rafael Santos
 
Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
Ian Oliveira
 
Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
EliakimArajo2
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
tnrlucas
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Annelise Gripp
 

Último (7)

Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
 
Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
 
Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
 

Introdução ao Desenvolvimento de aplicações WEB com JSP

  • 1. III Semana Acadêmica da FACOMP Introdução ao Desenvolvimento de Aplicações WEB com JSP Manoel Afonso Pereira de Lima Filho manoel.lima@icen.ufpa.br 04 e 05 de Novembro de 2013
  • 2. Ementa  Visão Geral  Diretivas JSP  Arquitetura Cliente-Servidor  Objetos implícitos     Configuração do Java e Tomcat Estrutura e configuração da aplicação  Processamento de fomulários  Filtros  Sessões Servlets  Redirecionamentos Sintaxe JSP  Expression Language
  • 3. 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.
  • 4. Visão Geral  Esquema de página WEB dinâmica
  • 5. 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.
  • 6. Visão Geral  Validação de formulários e Design Responsivo são exemplos de client-side scripting.
  • 7. 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
  • 8. 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.
  • 9. 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. Internet Servidor Clientes
  • 10. 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.
  • 11. Arquitetura Cliente-Servidor O Browser interpreta linguagens como HTML, Javascript, etc.
  • 12. Arquitetura Cliente-Servidor O Browser interpreta linguagens como HTML, Javascript, etc.
  • 13. 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
  • 14. Arquitetura Cliente-Servidor  Os contêineres recebem as requisições dos clientes e, então, produzem o HTML correspondente. Ubuntu Servidor HTML Internet OS X Windows 8 Banco de Dados Contêiner Arquivos JSP
  • 15. 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
  • 16. 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.
  • 17. 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
  • 18. 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.
  • 19. Configuração do Java e Tomcat Cliente Servidor Apache na porta 80 Tomcat na porta 8080 Arquivos JSP
  • 20. Configuração do Java e Tomcat Cliente Tomcat na porta 8080 Arquivos JSP
  • 21. Estrutura e Configuração da Aplicação MeuApp META-INF context.xml WEB-INF Classes MyServlet.class lib mysql.jar web.xml index.jsp
  • 22. Estrutura e Configuração da Aplicação MeuApp META-INF context.xml Caminho de Contexto WEB-INF Classes MyServlet.class lib mysql.jar web.xml index.jsp
  • 23. Estrutura e Configuração da Aplicação MeuApp META-INF context.xml WEB-INF Classes MyServlet.class lib mysql.jar web.xml index.jsp Servlets
  • 24. Estrutura e Configuração da Aplicação MeuApp META-INF context.xml WEB-INF Classes MyServlet.class lib mysql.jar web.xml index.jsp Bibliotecas
  • 25. Estrutura e Configuração da Aplicação MeuApp META-INF context.xml WEB-INF Classes MyServlet.class lib mysql.jar web.xml index.jsp Configurações da aplicação
  • 26. Estrutura e Configuração da Aplicação MeuApp META-INF context.xml WEB-INF Classes MyServlet.class lib mysql.jar web.xml index.jsp Páginas WEB (JSP, HTML, imagens, etc)
  • 27. 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. Catalina_home localhost:8080/exemplo localhost:8080/myapp WEBAPPS exemplo localhost:8080/teste myapp localhost:8080/helloworld teste helloworld
  • 28. Estrutura e Configuração da Aplicação ● Exemplo de context.xml: <?xml version="1.0" encoding="UTF-8"?> <Context antiJARLocking="true" path="/Exemplo1"/>
  • 29. 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
  • 30. 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.
  • 31. 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.
  • 32. 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.
  • 33. 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.
  • 34. 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).
  • 35. 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.
  • 36. 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");
  • 37. 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");
  • 38. 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
  • 39. 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
  • 40. 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>");
  • 41. 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
  • 42. 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.
  • 43. 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>
  • 46. 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
  • 47. 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
  • 48. 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: Valor: nome Afonso id 25
  • 49. 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.
  • 50. 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.1 Host: ufpa.br nome1=valor1&nome2=valor2
  • 51. 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.
  • 52. 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.
  • 53. Sintaxe JSP Exemplo de página 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>
  • 55. Sintaxe JSP ● Declarações JSP: <%! declarações %> ● Expressões JSP: <%= expressões %> ● Comentários JSP: <%-- comentários --%> ● Diretivas JSP: <%@ diretiva atributo=valor %>
  • 56. 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(){ … } %>
  • 57. 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>
  • 58. 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!
  • 60. 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 %>
  • 61. Diretivas JSP ● Diretiva page: – Especificam características que se aplicam à JSP inteira. – Exemplo: <%@page contentType="text/html" pageEncoding="UTF-8"%>
  • 62. Diretivas JSP ● Diretiva page: – Atributo contentType ● Especifica o MIME (Multipurpose Internet Mail Extensions) da página. <%@page contentType="text/html"%>
  • 63. Diretivas JSP ● Diretiva page: – Atributo import ● Utilize para importar classes, interfaces, ou um pacote inteiro. <%@page import="java.util.Date"%>
  • 64. Diretivas JSP ● Diretiva page: – Atributo errorPage ● Especifica qual página exibir caso alguma exceção seja lançada. <%@page errorPage="pagina-erro.jsp"%>
  • 65. 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"%>
  • 66. Diretivas JSP ● Diretiva include: – É utilizada para adicionar um arquivo durante a fase de tradução da JSP. <%@ include file="url relativa" >
  • 67. 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.
  • 68. 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.
  • 69. Objetos implícitos Objeto Descrição request Representa o objeto HttpServletRequest associado com a requisição do cliente. response Representa 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.
  • 70. Processamento de Formulários ● Basicamente, fazem uso conjunto de vários objetos implícitos.
  • 71. 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.
  • 72. 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);
  • 73. 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}
  • 74. 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).