Escolar Documentos
Profissional Documentos
Cultura Documentos
JavaServer Pages PDF
JavaServer Pages PDF
JSP
2008
Java Server Pages JSP
Sumrio:
1 Introduo...........................................................................................................3
2 Arquitetura JSP...................................................................................................4
3 Objetos Instanciados JSP...................................................................................5
4 Scripts.................................................................................................................5
4.1 Declaraes utilizadas..............................................................................5
4.2 Diretivas utilizadas....................................................................................6
5 Sesso de Aplicao..........................................................................................6
6 Sesso de Usurio.............................................................................................8
7 Objeto Request...................................................................................................9
8 Conceitos bsicos de formulrios HTML..........................................................10
8.1 HTML......................................................................................................10
8.2 Formulrios HTML..................................................................................10
9 Tabela...............................................................................................................12
10 Link.................................................................................................................14
11 - Exemplo prtico Aplicao Login..................................................................14
11.1 Configurao do Ambiente de Desenvolvimento JSP..........................15
11.1.1 Recursos necessrios........................................................................15
11.1.2 instalao do JDK em ambiente Windows.........................................16
11.1.3 Instalao do Tomcat.........................................................................16
11.2 Criando Estrutura de Diretrios...................................................................18
11.2.1 Editando o arquivo web.xml..............................................................19
11.3 Implementando as Classes..........................................................................20
11.4 Implementando as pginas JSP..................................................................23
12 - Concluso........................................................................................................29
13 - Referncias.....................................................................................................29
2
Java Server Pages JSP
1 Introduo
Este Tutorial tem como objetivo apresentar conceitos bsicos sobre a tecnologia
Java Server Pages (JSP) desenvolvida pela Sun. Ser abordado um exemplo
prtico de uma aplicao de Login, contendo conceitos de sesso de aplicao,
sesso de usurio, requisies, configurao de ambiente de desenvolvimento,
3
Java Server Pages JSP
2 Arquitetura JSP
Figura 1
O Cliente faz uma requisio a uma pgina. O browser web efetua o pedido
atravs da Internet.
O pedido JSP enviado para o servidor web.
O servidor web reconhece o pedido especial (extenso .jsp) e entrega o
arquivo JSP ao JSP Engine.
4
Java Server Pages JSP
4 Scripts
5
Java Server Pages JSP
Declarao de sintaxe:
<% %> -.declarao livre.
Exemplo: <% for( int i= 0; i< 10; i++){ out.println( numero: + i); }%>
5 Sesso de Aplicao
A primeira vez que uma das pginas JSP da aplicao chamada pode ser criada
a referncia ao objeto na sesso de aplicao. Atravs do objeto implcito
pageContext possvel recuperar os atributos de qualquer escopo, utilizando o
mtodo getAttribute(String name, intScope) da classe PageContext a qual tem
variveis static final para cada escopo.
6
Java Server Pages JSP
pageContext.getAttribute();
public abstract java.lang.Object getAttribute(java.lang.String name,
int scope)
Retorna o objeto associado com o nome no scopo especificado ou retorna
null se o objeto no for encontrado.
pageContext.setAttribute();
public abstract void setAttribute(java.lang.String name,
java.lang.Object value,
int scope)
Registra o nome e o valor especificado com o escopo definido.
Fonte: http://www.novatec.org/emjorge/pasi/modulo4_JSP.ppt
Figura 2
7
Java Server Pages JSP
6 Sesso de Usurio
o mecanismo utilizado para prover o controle de usurios dentro de uma
aplicao web. Como o protocolo http no armazena informaes de estado.
necessrio tratar estes dados com sesso de usurio. Por exemplo: em uma
aplicao web que necessite de autenticao, desejvel que o login seja
solicitado em uma pgina de login, e os recursos das outras pginas do site
devem estar disponveis aps a autenticao. Alm disso, o usurio no poder
acessar diretamente certas pginas sem ter efetuado o login e somente o usurio
autenticado com o mesmo browser que poder obter um referncia para o objeto
da sesso. Mais adiante, ser mostrado um exemplo prtico do uso de sesso de
usurio.
Exemplo: session.getAttribute("login")
8
Java Server Pages JSP
7 Objeto request
Passando parmetros
Index.jsp
<%
.
.
<form name="form1" method="post" action="verifica.jsp">
<p>Login:
<input type="text" name="login">
<br><br>
Senha:
<input type="password" name="senha">
<br><br>
<input type="submit" name="Submit" value="OK">
</p>
</form>
%>
Recebendo Parmetros
Verifica.jsp
<%
.
.
9
Java Server Pages JSP
%>
8.1 HTML
10
Java Server Pages JSP
<input type=> : text (linha nica para texto), password, checkbox, radio, submit
(button) e reset (button);
11
Java Server Pages JSP
Parmetros opcionais:
9 TABELA
As tabelas so descritas por linhas da esquerda para direita. Cada uma destas
linhas definida por outra tag e seu fechamento: <tr> e </tr>.
Ainda assim, dentro de cada linha, haver diferentes clulas. Cada uma dessas
clulas ser definida por outro par de etiquetas:<td> e </td>. Dentro desta etiqueta
ser colocado o contedo.
12
Java Server Pages JSP
O resultado ser:
Parmetros opcionais:
13
Java Server Pages JSP
10 LINK
<a href="destino">contedo</a>
E o destino por sua vez, ser uma pgina, um correio eletrnico ou um arquivo.
Como dito na introduo deste tutorial, para exemplificar os conceitos vistos acima
ser abordado um exemplo prtico de uma aplicao de Login. O desenvolvimento
da aplicao de login ser feito atravs de um Passo-a-Passo, pois esta foi a
forma mais simples encontrada para a implementao da aplicao.
14
Java Server Pages JSP
Figura 3
15
Java Server Pages JSP
16
Java Server Pages JSP
Figura 4
Na home-page padro do Tomcat, possvel acessar ferramentas de interface
Web para administrar e gerenciar o servidor, sem a necessidade de editar
arquivos de configurao.
17
Java Server Pages JSP
Para rodar os seus arquivos JSP necessrio montar uma estrutura de diretrios
dentro da pasta onde o Tomcat foi instalado da seguinte forma:
Figura 5
loginWeb: local onde ficaro os arquivos *.html, *.jsp, e as imagens.
WEB-INF (respeitando maisculas): deve conter o arquivo web.xml.
classes: arquivos de classes (*.class) que sero utilizadas pelas pginas
JSP.
fib: classes utilizadas na aplicao que esto no pacote fib.
lib: pacotes *.jar de bibliotecas utilizadas devem ficar armazenados aqui.
18
Java Server Pages JSP
web.xml:
<web-app>
<display-name>Aplicao Login</display-name>
<description>
LoginWeb
</description>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
</web-app>
19
Java Server Pages JSP
Classe Login:
package fib;
/**
* @author emjorge
*
* TODO To change the template for this generated type
comment go to
* Window - Preferences - Java - Code Generation - Code and
Comments
*/
public class Login {
private String nome;
private String senha;
/**
* @return Returns the nome.
*/
public String getNome() {
return nome;
}
/**
* @param nome The nome to set.
*/
public void setNome(String nome) {
this.nome = nome;
}
/**
* @return Returns the senha.
20
Java Server Pages JSP
*/
public String getSenha() {
return senha;
}
/**
* @param senha The senha to set.
*/
public void setSenha(String senha) {
this.senha = senha;
}
public boolean equals(Object o){
Login l = (Login)o;
if
((this.nome.equals(l.getNome()))&&(this.senha.equals(l.getSen
ha()))){
return true;
}else {
return false;
}
}
}
Classe GerenciaLogin:
package fib;
import java.util.*;
/**
* @author emjorge
*
21
Java Server Pages JSP
private GerenciaLogin(){
try{
Login l = new Login();
l.setNome("emjorge");
l.setSenha("123");
this.addLogin(l);
}catch(Exception e){
}
public static GerenciaLogin getInstancia(){
return GerenciaLogin.gl;
}
public void addLogin(Login l) throws Exception{
if (!(this.existeLogin(l))){
this.listaLogin.add(l);
}else {
throw new Exception("Login duplicado");
}
}
22
Java Server Pages JSP
System.out.println(GerenciaLogin.getInstancia().existeLo
gin(l));
}
index.jsp
23
Java Server Pages JSP
<%
GerenciaLogin gl = (GerenciaLogin)
pageContext.getAttribute("gerenciaLogin",PageContext.APPLICATION_S
COPE);
if (gl==null){
gl =GerenciaLogin.getInstancia();
pageContext.setAttribute("gerenciaLogin",gl,PageContext.APPLICATIO
N_SCOPE);
}
Login sl = (Login)session.getAttribute("login");
if (sl == null){
request.setAttribute("msg", "Efetue o login");
pageContext.forward("index.jsp");
}
if (!(request.getParameter("cadastrar")==null)){
try{
Login l = new Login();
l.setNome(request.getParameter("login"));
l.setSenha(request.getParameter("senha"));
gl.addLogin(l);
}catch(Exception e){
out.println("Ateno: Login j existe");
}
}
%>
<html>
<head>
<title>Login JSP</title>
</head>
<body bgcolor="#FFFFFF">
<form name="form1" method="post" action="cadastrar.jsp">
<p>Login:
<input type="text" name="login">
24
Java Server Pages JSP
<br><br>
Senha:
<input type="password" name="senha">
<br><br>
<input type="submit" name="cadastrar" value="Cadastrar">
</p>
</form>
<TABLE BORDER=2>
<TR><TD>Login</TD><TD>Senha</TD></TR>
<%
Iterator it = gl.getListaLogin().iterator();
while (it.hasNext()){
Login l = (Login) it.next();
out.println("<TR><TD>"+l.getNome()+"</TD><TD>"+l.getSenha()+"
</TD></TR>");
}
%>
</TABLE>
</body>
</html>
verifica.jsp
25
Java Server Pages JSP
if (gl==null){
gl =GerenciaLogin.getInstancia();
pageContext.setAttribute("gerenciaLogin",gl,PageContext.APPLICATIO
N_SCOPE);
}
Login l = new Login();
l.setNome(request.getParameter("login"));
l.setSenha(request.getParameter("senha"));
if (gl.existeLogin(l)){
session.setMaxInactiveInterval(1800);
session.setAttribute("login", l);
out.println(" Login efetuado com sucesso");
}else{
session.invalidate();
request.setAttribute("msg","Login Invlido");
pageContext.forward("index.jsp");
}
%>
<html>
<head>
<title>Login Verificado JSP</title>
</head>
<body bgcolor="#FFFFFF">
<p><a href="cadastrar.jsp">cadastrar Login</a></p>
</body>
</html>
cadastrar.jsp
<%
26
Java Server Pages JSP
GerenciaLogin gl = (GerenciaLogin)
pageContext.getAttribute("gerenciaLogin",PageContext.APPLICATION_S
COPE);
if (gl==null){
gl =GerenciaLogin.getInstancia();
pageContext.setAttribute("gerenciaLogin",gl,PageContext.APPLICATIO
N_SCOPE);
}
Login sl = (Login)session.getAttribute("login");
if (sl == null){
request.setAttribute("msg", "Efetue o login");
pageContext.forward("index.jsp");
}
if (!(request.getParameter("cadastrar")==null) && sl != null){
try{
Login l = new Login();
l.setNome(request.getParameter("login"));
l.setSenha(request.getParameter("senha"));
gl.addLogin(l);
}catch(Exception e){
out.println("Ateno: Login j existe");
}
}
%>
<html>
<head>
<title>Login JSP</title>
</head>
<body bgcolor="#FFFFFF">
<form name="form1" method="get" action="cadastrar.jsp">
<p>Login:
<input type="text" name="login">
27
Java Server Pages JSP
<br><br>
Senha:
<input type="password" name="senha">
<br><br>
<input type="submit" name="cadastrar" value="Cadastrar">
</p>
</form>
<TABLE BORDER=2>
<TR><TD>Login</TD><TD>Senha</TD></TR>
<%
Iterator it = gl.getListaLogin().iterator();
while (it.hasNext()){
Login l = (Login) it.next();
out.println("<TR><TD>"+l.getNome()+"</TD><TD>"+l.getSenha()+"
</TD></TR>");
}
%>
</TABLE>
</body>
</html>
28
Java Server Pages JSP
12 Concluso
13 Referncias:
Sun
o http://java.sun.com/products/jsp/docs.html
CriarWeb
o http://www.criarweb.com/artigos/93.php
o http://www.criarweb.com/artigos/88.php
29