Вы находитесь на странице: 1из 29

Java Server Pages

JSP



Roneclei Campos dos Santos
roneclei.campos@gmail.com

Eduardo Manuel de Freitas Jorge
emjorge@reconcavotecnologia.org.br



2008
Java Server Pages JSP
2
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




Java Server Pages JSP
3
1 Introduo

JSP Java Server Pages uma tecnologia utilizada no desenvolvimento de
aplicaes Web, desenvolvida pela Sun microsystem, similar s tecnologias Active
Server Pages (ASP) da Microsoft e PHP. Estas tecnologias esto fundamentadas
na arquitetura SSI Server Side Includes que so comandos extensivos
linguagem HTML, os quais podem conter contedo esttico (HTML) e dinmico
(ASP, PHP, JSP, etc.). Esses comandos dinmicos so processados pelo servidor
Web antes da pagina HTML ser enviada. No lugar do comando enviado apenas
o resultado deste comando no formato HTML.

Por ser baseada na linguagem de programao Java, tem a vantagem da
portabilidade de plataforma, que permite a sua execuo em diversos sistemas
operacionais, como o Windows e o Linux. Esta tecnologia permite ao
desenvolvedor web produzir aplicaes que acessem o banco de dados,
manipulem arquivos no formato texto, capturem informaes a partir de
formulrios e captem informaes sobre o visitante e sobre o servidor.
Para desenvolver aplicaes JSP necessrio um conhecimento prvio sobre a
especificao J2EE que um conjunto de padres e especificaes responsvel
por receber as requisies do cliente, entend-las e direcion-las aos
responsveis pelas respostas s aes solicitadas. Uma das especificaes
contidas em J2EE a definio de um container Web. O container Web o
servidor de aplicao compatvel com a especificao J2EE que d suporte aos
JSPs, e disponibiliza uma API com 9 objetos instanciados, que facilitam a
implementao, isto possibilita ao programador focar o desenvolvimento na lgica
da aplicao.

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,
Java Server Pages JSP
4
alm da instalao e configurao das ferramentas utilizadas. Ser mostrado
tambm conceitos bsicos de HTML necessrios para o desenvolvimento da
aplicao de Login.


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.





Java Server Pages JSP
5
3 Objetos Instanciados JSP

O ambiente de uma pgina JSP disponibiliza 9 objetos instanciados, para
ser usado na implementao:
request javax. servlet. ServletRequest
response javax. servlet. ServletResponse
pageContext javax. servlet. jsp. PageContext
session javax. servlet. http. HttpSession
application javax. servlet. servletContext
out javax. servlet. jsp. JspWriter
config javax. servlet. ServletConfig
page java. lang. Object
exception java. lang. Throwable



4 Scripts

Os Scripts so trechos de cdigo embutidos no cdigo HTML do JSP. No
confundir com Java Scripts. Os scripts em uma pgina JSP so interpretados no
servidor, enquanto que os Java Scripts so interpretados pelo browser (lado
cliente).

4.1 Declaraes utilizadas
As declaraes so usadas para definir variveis e mtodos especficos para uma
pgina JSP.
Declarao de expresso
<%= %> - o resultado retornado como um String
Exemplo: O seu endereo IP : <%= request.getRemoteAddr() %>
<%= 2+2%> // Ser retornado o String 4

Java Server Pages JSP
6
Declarao de sintaxe:
<% %> -.declarao livre.
Exemplo: <% for( int i= 0; i< 10; i++){ out.println( numero: + i); }%>

4.2 Diretivas utilizadas

Diretiva page import : importa pacotes de classes.
Exemplo: <%@page import="fib.*" %>
<%@ page import="java.util.List, java.awt.List" %>

Diretiva page language: informa a linguagem utilizada.
Exemplo: <%@ page language="java" %>

Diretiva Forward: usada para redirecionar uma pgina
Exemplo: pageContext.forward("index.jsp");


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.
Se eu desejar recuperar os atributos da sesso de aplicao:
<%= pageContext.getAttribute(gerenciaLogin, PageContext.APPLICATION_SCOPE) %>
Para setar o atributo na sesso utilizado o mtodo setAttribute


Java Server Pages JSP
7
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.

No exemplo abaixo, possvel acessar o objeto gl em qualquer pgina que
contenha este cdigo:
GerenciaLogin gl = (GerenciaLogin)
pageContext.getAttribute("gerenciaLogin",PageContext.APPLICATION_SCOPE);
if (gl==null){
gl = GerenciaLogin.getInstancia();
pageContext.setAttribute("gerenciaLogin",gl,PageContext.APPLICATION_SCOPE);
}


Fonte: http://www.novatec.org/emjorge/pasi/modulo4_JSP.ppt
Figura 2
Java Server Pages JSP
8
Ao lado esquerdo tem-se uma pgina JSP fazendo referncia sesso de
aplicao. Ao lado direito. Ao lado direito est descrito a Sesso de
Aplicao provendo acesso a diversas pginas 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.

Para setar o atributo de um usurio:
Session. SetAttribute
public void setAttribute(java.lang.String name,
java.lang.Object value)

Liga um objeto a essa sesso, usando o nome especificado. Se um objeto do
mesmo nome limitado j sesso, o objeto renomeado.

Exemplo: session.setAttribute("login", l);

Para recuperar o atributo de um usurio.
Session. GetAttribute
public java.lang.Object getAttribute(java.lang.String name)

Retorna o objeto com o especifico nome na sesso corrente, ou nulo se nenhum
objeto possuir o mesmo nome.

Exemplo: session.getAttribute("login")


Java Server Pages JSP
9
7 Objeto request

Solicitao que aciona o processamento da pgina e busca por valores de
parmetros ou cookies.

- REQUEST.GETPARAMETER() ; javax. servlet. ServletRequest

Passando parmetros

Index.jsp
<%
.
.
<form name="form1" method="post" action="verifica.jsp">
<p>Login:&nbsp;
<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
<%
.
.
Java Server Pages JSP
10
String login_ = request.getParameter("login");
String senha_ = request.getParameter("senha");

out.println("<br>" + "login: " + login_);

%>

Obs.: OUT.PRINTLN(); javax. servlet. jsp. JspWriter
Mtodo utilzado para imprimir na tela do browser. Pode conter variveis,
constantes, nmeros, arrays, Tags html, etc.

Exemplo: out.println("<br>" + "login: " + login_);

8 Conceitos bsicos de formulrios HTML

A seguir sero apresentados conceitos bsicos de formulrios HTML necessrio
realizao desde tutorial.

8.1 HTML

HTML (acrnimo para a expresso inglesa HyperText Markup Language, que
significa Linguagem de Marcao de Hipertexto) uma linguagem de marcao
utilizada para produzir pginas Web estticas. Documentos HTML podem ser
interpretados por navegadores.
Fonte: http://pt.wikipedia.org/wiki/HTML

8.2 Formulrios HTML

Os formulrios constituem-se numa matria de extrema importncia no HTML,
uma vez que so responsveis pela interao entre um usurio e o servidor,
possibilitando a troca de dados ou informaes.
Java Server Pages JSP
11
Principais Tags utilizadas em um Formulrio

<form> </form> : inicia e termina um formulrio.
Ex: <form name="form1" method="post" action="verifica.jsp">
O atributo method especifica a forma de envio dos dados do formulrio. Os mais
utilizados so GET e POST. No mtodo GET os dados de entrada do script fazem
parte do URL associado consulta enviada para o servidor - por exemplo:
mydoc.jsp?var1=valor1&var2=valor2... etc. J no mtodo POST, os dados de
entrada do formulrio so enviados pelo corpo da mensagem para o servidor,
sendo invisvel para o usurio, alm de ser possvel transferir grande quantidade
de dados.

O atributo action define o tipo de ao a realizar com o formulrio. O formulrio
pode ser enviado para um programa ou script que processa seu contedo ou
enviado a um endereo de e-mail.

<input type=> : text (linha nica para texto), password, checkbox, radio, submit
(button) e reset (button);

Qualquer que seja o tipo de entrada de dados (Input, checkbox, radiobutton,
ComboBox, etc). Cada um destes campos deve possuir um atributo name
associado a um nome, de tal forma que o parmetro action possa receber uma
varivel com o valor digitado pelo usurio.

Exemplos: <input type="text" name="login">
<input type="password" name="senha">
<input type=" checkbox " name="senha">




Java Server Pages JSP
12
Parmetros opcionais:

value - atribui um valor inicial para o campoo;

size - especifica o tamanho do campo;>

maxlenght - especifica o nmero mxximo de caracteres aceitos pelo campo.
Um boto do tipo reset pode ser usado para restaurar o valor padro de todos os
campos de um formulrio:

Exemplo: <input type="reset" value=Limpar>

Um boto do tipo submit enviar as opes ou informaes digitadas ao servidor:

Exemplo: <input type="submit" value="Enviar">

So opcionais os parmetros value que especifica o texto a ser exibido no boto e
o parmetro name que determinar a transmisso do valor contido em value,
permitindo inserir de vrios botes.

9 TABELA

As tabelas so definidas pelas Tags <table> e </table>. Dentro dessas duas
etiquetas so colocadas todas as outras etiquetas, textos e imagens que daro
forma e contedo 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.
Java Server Pages JSP
13
Exemplo de estrutura de tabela:
<table>
<tr>
<td>Clula 1, linha 1</td>
<td>Clula 2, linha 1</td>
</tr>
<tr>
<td>Clula 1, linha 2</td>
<td>Clula 2, linha 2</td>
</tr>
</table>

O resultado ser:

Clula 1, linha 1 Clula 2, linha1
Clula 1, linha 2 Clula 2, linha 2

Parmetros opcionais:

align: Justifica o texto da clula da mesma forma que se fosse o de um pargrafo.
border: especifica a espessura da borda da tabela. Se colocado 0 a tabela criada
sem borda.
Valign: Podemos escolher se queremos que o texto aparea acima (top), no centro
(middle) ou abaixo (bottom) da clula.
bgcolor: D cor clula ou escolha de linha.
bordercolor: Define a cor da borda.
Outros atributos que podem ser unicamente atribudos a uma clula e no ao um
conjunto de clulas de uma linha so:
background: Permite-nos colocar um fundo para a clula a partir de um link a uma
imagem.
height: Define a altura da clula em pixels ou porcentagem.
Java Server Pages JSP
14
width: Define a largura da clula em pixels ou porcentagem
colspan: Expande um clula horizontalmente.
rowspan: Expande um clula verticalmente.

10 LINK

Para colocar um link, utilizaremos as etiquetas <a> e </a>. Dentro da etiqueta de
abertura devemos especificar o destino do link. Este destino ser introduzido sob a
forma de atributo, no qual leva o nome href.

A sintaxe geral de um link portanto da seguinte forma:

<a href="destino">contedo</a>

Sendo o contedo um texto ou uma imagem. a parte da pgina que se colocar
ativa e onde deveremos clicar para acessar o link.

E o destino por sua vez, ser uma pgina, um correio eletrnico ou um arquivo.

11 Exemplo prtico Aplicao Login

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.

Segue abaixo a estrutura de funcionamento da aplicao mostrada na figura 3:




Java Server Pages JSP
15
index.jsp verfica.jsp cadastrar.jsp













Figura 3

11.1 Configurao do Ambiente de Desenvolvimento JSP
11.1.1 Recursos necessrios
A seguir os recursos necessrios para este tutorial e como consegu-los:
Recursos URL Verso
Kit JDK http://www.sun.com 6.0
Tomcat http://tomcat.apache.org/download-55.cgi 5.5.16

Para instalar o Tomcat necessrio possuir o kit de desenvolvimento Java JDK
instalado em sua mquina.

Java Server Pages JSP
16
11.1.2 instalao do JDK em ambiente Windows

O JDK pode ser baixado no site da Sun, http://www.sun.com , na guia Java -
Download the lastest JDK.
Para configurar o JDK, defina a varivel de ambiente JAVA_HOME apontando
para seu local de instalao (Ex: JAVA_HOME=C:\Arquivos de
programas\Java\jdk1.6.0_05) . Esta varivel de ambiente padro usada pelo
Tomcat e vrios outros sistemas baseados em Java, para determinar a JVM
preferencial. Isto muito importante se houver mais de uma instalao de J2SE
no computador, mas a varivel JAVA_HOME deve ser definida mesmo se houver
apenas uma verso instalada.

11.1.2 Instalao do Tomcat

Aps instalar e configurar o JDK, baixe o Apache Tomcat do site
http://tomcat.apache.org, Para instalar o Tomcat basta clicar em Next, Next,... ,
Finish e o Tomcat estar instalado. Caso o servio no rode da primeira vez,
execute o arquivo startup.bat localizado na pasta bin do Tomcat.
Neste tutorial ser utilizada a verso 5.0.16 do Tomcat. Para maiores informaes
sobre verses, acesse o site Apache Tomcat, na Apache Software Foundation.

Para testar se o Tomcat est funcionando corretamente, abra o seu browser e
digite http://localhost:8080. Dever aparecera seguinte pgina:

Java Server Pages JSP
17

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.

Para utilizar as ferramentas solicitado o login de usurio (padro admin) e a
senha, cadastrados durante a instalao do tomcat, para acesso a estes recursos.

Tomcat Manager - Permite gerenciar as aplicaes iniciar, parar, re-
iniciar, fazer deploy (distribuio) e undeploy bem como monitorar o
estado do servidor.

Tomcat Administration - Permite criar, excluir e configurar Servios e seus
elementos internos (Connector, Host, Alias, Context, Logger, Valve) do
Java Server Pages JSP
18
Servidor Tomcat, bem como Recursos (Data Source etc.) e Autorizaes
(User, Group, Role). Estes itens correspondem aos elementos e atributos
disponveis no arquivo de configurao server.xml.

11.2 Criando Estrutura de Diretrios

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.
Java Server Pages JSP
19
Esta estrutura de diretrios universal, e interpretada por qualquer servidor,
sem a necessidade de alterao. Alm disso, facilita a organizao do contedo
de desenvolvimento, bem como a segurana da aplicao, deixando visvel
apenas o contedo necessrio.

11.2.1 Editando o arquivo web.xml

Segundo a especificao Java Servlet/J2EE, o arquivo web.xml o descritor do
contexto de aplicao web, contm as configuraes especficas da aplicao.

web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<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>
Java Server Pages JSP
20
11.3 Implementando as Classes

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.
Java Server Pages JSP
21
*/
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
*
Java Server Pages JSP
22
* TODO To change the template for this generated type
comment go to
* Window - Preferences - Java - Code Generation - Code and
Comments
*/
public class GerenciaLogin {
private ArrayList listaLogin = new ArrayList();
private static GerenciaLogin gl = new GerenciaLogin();

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");
}
}

Java Server Pages JSP
23
public boolean existeLogin(Login l){
Iterator it = this.listaLogin.iterator();
while (it.hasNext()){
Login l1 =(Login) it.next();
if (l.equals(l1)){
return true;
}
}
return false;
}
public ArrayList getListaLogin(){
return this.listaLogin;
}
public static void main(String args[]){
Login l = new Login();
l.setNome("emjorge");
l.setSenha("123");

System.out.println(GerenciaLogin.getInstancia().existeLo
gin(l));
}

}

11.4 Implementando as pginas JSP

index.jsp

<%@ page language="java" %>
<%@page import="fib.*" %>
<%@page import="java.util.*" %>

Java Server Pages JSP
24
<%
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:&nbsp;
<input type="text" name="login">
Java Server Pages JSP
25
<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

<%@ page language="java" %>
<%@page import="fib.*" %>
<%
GerenciaLogin gl = (GerenciaLogin)
pageContext.getAttribute("gerenciaLogin",PageContext.APPLICATION_S
COPE);
Java Server Pages JSP
26
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

<%@ page language="java" %>
<%@page import="fib.*" %>
<%@page import="java.util.*" %>

<%
Java Server Pages JSP
27
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:&nbsp;
<input type="text" name="login">
Java Server Pages JSP
28
<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>







Java Server Pages JSP
29
12 Concluso

JSP permite o desenvolvimento de aplicaes do lado do servidor e baseado
em Java, uma linguagem OO, podendo ser aplicados todos os conceitos de
reutilizao de componentes, desacoplamento e encapsulamento. JSP possibilita
separar a programao lgica (parte dinmica) da programao visual (parte
esttica), facilitando o desenvolvimento de aplicaes mais robustas, onde
programador e designer podem trabalhar no mesmo projeto, mas de forma
independente. Alm disso, outra vantagem das aplicaes Java a segurana e a
portabilidade. Uma desvantagem que pode ser apontada do JSP que, quando
comparada com outras ferramentas de desenvolvimento web, como ASP, por
exemplo, JSP considerada mais difcil de se aprender porque orientada a
objetos e a maneira de escrever os programas mais rgida.

13 Referncias:

JAVA PARA A WEB COM SERVLETS, JSP E EJB
o Autor: Budi Kurniawan
o Editora: Cincia Moderna

Sun
o http://java.sun.com/products/jsp/docs.html

Tutorial Tomcat - Instalao e Configurao Bsica
o http://www.mhvila.com.br/topicos/java/tomcat.html

NovaTec Eduardo Jorge
o http://www.novatec.org/emjorge/pasi/modulo4_JSP.ppt

CriarWeb
o http://www.criarweb.com/artigos/93.php
o http://www.criarweb.com/artigos/88.php