Java Server Pages JSP



Documentos relacionados
J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

Programando em PHP. Conceitos Básicos

Aula 03 - Projeto Java Web

Java II. Sérgio Luiz Ruivace Cerqueira

Scriptlets e Formulários

PROGRAMAÇÃO WEB DO LADO DO CLIENTE

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

INTRODUÇÃO AO DESENVOLVIMENTO WEB

Introdução. HyperText Markup Language HTML. Formulário. Fluxo do Formulário. Fluxo do Formulário. Fluxo do Formulário. Fluxo do Formulário

Mini-curso de PHP. Aulas ministradas por: André Luis de Paula Arthur Kalsing Diego Silva

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

JSP (Java Server Pages)

Associação Carioca de Ensino Superior Centro Universitário Carioca

Desenvolvimento Web TCC Turma A-1

Programação web Prof. Wladimir

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web

JSP (Java Server Pages)

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Linguagem de. Aula 06. Profa Cristiane Koehler

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Introdução à Tecnologia Web

Java para Desenvolvimento Web

SIMULADOS & TUTORIAIS

Programação para Internet I

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Java para WEB. Servlets

Estudo Dirigido - Parte 1

Conteúdo Programático de PHP

INTRODUÇÃO À TECNOLOGIA SERVLETS

Desenvolvimento Web TCC Turma A-1

Desenvolvimento de aplicações Web. Java Server Pages

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Desenvolvimento Web XHTML Formulários. Prof. Bruno E. G. Gomes

Programação Web Prof. Wladimir

JSP: JAVA SERVER PAGES

COMO FUNCIONA UM FORMULÁRIO

WebWork 2. João Carlos Pinheiro.

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Programação II Programação para a Web. Christopher Burrows

Os componentes de um formulário são: Form, Input, Select e AreaText

Desenvolvedor Web Docente André Luiz Silva de Moraes

Introdução. História. Como funciona

Desenvolvimento de Sites com PHP e Mysql Docente André Luiz Silva de Moraes

Introdução ao PHP. Prof. Késsia Marchi

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA

0,5 pelo negrito das palavras ID, Nome, e Analisar em outro momento.

Prof. Roberto Desenvolvimento Web Avançado

Acessando um Banco de Dados

Guia para Iniciantes do WebWork

FORMULÁRIOS HTML (FORMS) E ENTRADAS DE DADOS (INPUT)

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Curso de Java. Geração de Páginas WEB através de JSP. Todos os direitos reservados Klais

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP.

Guia de Integração para Transferência

Java na WEB Componentes Bean

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

" # $ %&'( ) *' ( +,)+ ( - $ (+*' 0 12 ' ( %+ -12 )+3 ) (4 )) ) % 12 ) *' (

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

UNIDADE III JAVA SERVER PAGES

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

Sistemas para internet e software livre

O código acima descreve o formulário com uma caixa de texto e dois botões

Um pouco do Java. Prof. Eduardo

Programação Web Prof. Wladimir

PHP. Hypertext Pre-Processor

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Java II. Sérgio Luiz Ruivace Cerqueira

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

JSP: JAVA SERVER PAGES

TUTORIAL JSP & SERVLET

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Prática Sobre Servlets e JSP

Desenvolvendo Websites com PHP

Ferramentas para Multimídia e Internet

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

Curso de Aprendizado Industrial Desenvolvedor WEB

J550 Segurança e Controle de erros

World Wide Web e Aplicações

Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010.

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Manual de Utilização do PLONE (Gerenciador de página pessoal)

Web Design. Prof. Felippe

Módulo e-rede OSCommerce v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Módulo e-rede Prestashop v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Instalando o J2SE 5.0 JDK no Windows 2000/XP

Noções de. Microsoft SQL Server. Microsoft SQL Server

Padrão Arquitetura em Camadas

Aula 05 HTML FORMULÁRIOS Prof. Daniela Pires Sumário

Internet e Programação Web

Desenvolvendo para WEB

Projeto Amadeus. Guia de Instalação Windows

Transcrição:

Java Server Pages JSP Roneclei Campos dos Santos roneclei.campos@gmail.com Eduardo Manuel de Freitas Jorge emjorge@reconcavotecnologia.org.br 2008

Sumário: 1 Introdução...3 2 Arquitetura JSP...4 3 Objetos Instanciados JSP...5 4 Scripts...5 4.1 Declarações utilizadas...5 4.2 Diretivas utilizadas...6 5 Sessão de Aplicação...6 6 Sessão de Usuário...8 7 Objeto Request...9 8 Conceitos básicos de formulários HTML...10 8.1 HTML...10 8.2 Formulários HTML...10 9 Tabela...12 10 Link...14 11 - Exemplo prático Aplicação Login...14 11.1 Configuração do Ambiente de Desenvolvimento JSP...15 11.1.1 Recursos necessários...15 11.1.2 instalação do JDK em ambiente Windows...16 11.1.3 Instalação do Tomcat...16 11.2 Criando Estrutura de Diretórios...18 11.2.1 Editando o arquivo web.xml...19 11.3 Implementando as Classes...20 11.4 Implementando as páginas JSP...23 12 - Conclusão...29 13 - Referências...29 2

1 Introdução JSP Java Server Pages é uma tecnologia utilizada no desenvolvimento de aplicações Web, desenvolvida pela Sun microsystem, similar às tecnologias Active Server Pages (ASP) da Microsoft e PHP. Estas tecnologias estão fundamentadas na arquitetura SSI Server Side Includes que são comandos extensivos à linguagem HTML, os quais podem conter conteúdo estático (HTML) e dinâmico (ASP, PHP, JSP, etc.). Esses comandos dinâmicos são 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 programação Java, tem a vantagem da portabilidade de plataforma, que permite a sua execução em diversos sistemas operacionais, como o Windows e o Linux. Esta tecnologia permite ao desenvolvedor web produzir aplicações que acessem o banco de dados, manipulem arquivos no formato texto, capturem informações a partir de formulários e captem informações sobre o visitante e sobre o servidor. Para desenvolver aplicações JSP é necessário um conhecimento prévio sobre a especificação J2EE que é um conjunto de padrões e especificações responsável por receber as requisições do cliente, entendê-las e direcioná-las aos responsáveis pelas respostas às ações solicitadas. Uma das especificações contidas em J2EE é a definição de um container Web. O container Web é o servidor de aplicação compatível com a especificação J2EE que dá suporte aos JSPs, e disponibiliza uma API com 9 objetos instanciados, que facilitam a implementação, isto possibilita ao programador focar o desenvolvimento na lógica da aplicação. Este Tutorial tem como objetivo apresentar conceitos básicos sobre a tecnologia Java Server Pages (JSP) desenvolvida pela Sun. Será abordado um exemplo prático de uma aplicação de Login, contendo conceitos de sessão de aplicação, sessão de usuário, requisições, configuração de ambiente de desenvolvimento, 3

além da instalação e configuração das ferramentas utilizadas. Será mostrado também conceitos básicos de HTML necessários para o desenvolvimento da aplicação de Login. 2 Arquitetura JSP Figura 1 O Cliente faz uma requisição a uma página. O browser web efetua o pedido através da Internet. O pedido JSP é enviado para o servidor web. O servidor web reconhece o pedido especial (extensão.jsp) e entrega o arquivo JSP ao JSP Engine. 4

3 Objetos Instanciados JSP O ambiente de uma página JSP disponibiliza 9 objetos instanciados, para ser usado na implementação: 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 são trechos de código embutidos no código HTML do JSP. Não confundir com Java Scripts. Os scripts em uma página JSP são interpretados no servidor, enquanto que os Java Scripts são interpretados pelo browser (lado cliente). 4.1 Declarações utilizadas As declarações são usadas para definir variáveis e métodos específicos para uma página JSP. Declaração de expressão <%= %> - o resultado é retornado como um String Exemplo: O seu endereço IP é: <%= request.getremoteaddr() %> <%= 2+2%> // Será retornado o String 4 5

Declaração de sintaxe: <% %> -.declaração 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 página Exemplo: pagecontext.forward("index.jsp"); 5 Sessão de Aplicação A primeira vez que uma das páginas JSP da aplicação é chamada pode ser criada a referência ao objeto na sessão de aplicação. Através do objeto implícito pagecontext é possível recuperar os atributos de qualquer escopo, utilizando o método getattribute(string name, intscope) da classe PageContext a qual tem variáveis static final para cada escopo. Se eu desejar recuperar os atributos da sessão de aplicação: <%= pagecontext.getattribute( gerencialogin, PageContext.APPLICATION_SCOPE) %> Para setar o atributo na sessão é utilizado o método setattribute 6

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 não 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, é possível acessar o objeto gl em qualquer página que contenha este código: 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 7

Ao lado esquerdo tem-se uma página JSP fazendo referência à sessão de aplicação. Ao lado direito. Ao lado direito está descrito a Sessão de Aplicação provendo acesso a diversas páginas JSP. 6 Sessão de Usuário É o mecanismo utilizado para prover o controle de usuários dentro de uma aplicação web. Como o protocolo http não armazena informações de estado. é necessário tratar estes dados com sessão de usuário. Por exemplo: em uma aplicação web que necessite de autenticação, é desejável que o login seja solicitado em uma página de login, e os recursos das outras páginas do site devem estar disponíveis após a autenticação. Além disso, o usuário não poderá acessar diretamente certas páginas sem ter efetuado o login e somente o usuário autenticado com o mesmo browser é que poderá obter um referência para o objeto da sessão. Mais adiante, será mostrado um exemplo prático do uso de sessão de usuário. Para setar o atributo de um usuário: Session. SetAttribute public void setattribute(java.lang.string name, java.lang.object value) Liga um objeto a essa sessão, usando o nome especificado. Se um objeto do mesmo nome é limitado já à sessão, o objeto é renomeado. Exemplo: session.setattribute("login", l); Para recuperar o atributo de um usuário. Session. GetAttribute public java.lang.object getattribute(java.lang.string name) Retorna o objeto com o especifico nome na sessão corrente, ou nulo se nenhum objeto possuir o mesmo nome. Exemplo: session.getattribute("login") 8

7 Objeto request Solicitação que aciona o processamento da página e busca por valores de parâmetros ou cookies. - REQUEST.GETPARAMETER() ; javax. servlet. ServletRequest Passando parâmetros 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 Parâmetros Verifica.jsp <%.. 9

String login_ = request.getparameter("login"); String senha_ = request.getparameter("senha"); out.println("<br>" + "login: " + login_); %> Obs.: OUT.PRINTLN(); javax. servlet. jsp. JspWriter Método utilzado para imprimir na tela do browser. Pode conter variáveis, constantes, números, arrays, Tags html, etc. Exemplo: out.println("<br>" + "login: " + login_); 8 Conceitos básicos de formulários HTML A seguir serão apresentados conceitos básicos de formulários HTML necessário à realização desde tutorial. 8.1 HTML HTML (acrônimo para a expressão inglesa HyperText Markup Language, que significa Linguagem de Marcação de Hipertexto) é uma linguagem de marcação utilizada para produzir páginas Web estáticas. Documentos HTML podem ser interpretados por navegadores. Fonte: http://pt.wikipedia.org/wiki/html 8.2 Formulários HTML Os formulários constituem-se numa matéria de extrema importância no HTML, uma vez que são responsáveis pela interação entre um usuário e o servidor, possibilitando a troca de dados ou informações. 10

Principais Tags utilizadas em um Formulário <form> </form> : inicia e termina um formulário. Ex: <form name="form1" method="post" action="verifica.jsp"> O atributo method especifica a forma de envio dos dados do formulário. Os mais utilizados são GET e POST. No método 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 método POST, os dados de entrada do formulário são enviados pelo corpo da mensagem para o servidor, sendo invisível para o usuário, além de ser possível transferir grande quantidade de dados. O atributo action define o tipo de ação a realizar com o formulário. O formulário pode ser enviado para um programa ou script que processa seu conteúdo ou enviado a um endereço 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 parâmetro action possa receber uma variável com o valor digitado pelo usuário. Exemplos: <input type="text" name="login"> <input type="password" name="senha"> <input type=" checkbox " name="senha"> 11

Parâmetros opcionais: value - atribui um valor inicial para o campoo; size - especifica o tamanho do campo;> maxlenght - especifica o número máxximo de caracteres aceitos pelo campo. Um botão do tipo reset pode ser usado para restaurar o valor padrão de todos os campos de um formulário: Exemplo: <input type="reset" value= Limpar > Um botão do tipo submit enviará as opções ou informações digitadas ao servidor: Exemplo: <input type="submit" value="enviar"> São opcionais os parâmetros value que especifica o texto a ser exibido no botão e o parâmetro name que determinará a transmissão do valor contido em value, permitindo inserir de vários botões. 9 TABELA As tabelas são definidas pelas Tags <table> e </table>. Dentro dessas duas etiquetas são colocadas todas as outras etiquetas, textos e imagens que darão forma e conteúdo à tabela. As tabelas são 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 células. Cada uma dessas células será definida por outro par de etiquetas:<td> e </td>. Dentro desta etiqueta será colocado o conteúdo. 12

Exemplo de estrutura de tabela: <table> <tr> <td>célula 1, linha 1</td> <td>célula 2, linha 1</td> </tr> <tr> <td>célula 1, linha 2</td> <td>célula 2, linha 2</td> </tr> </table> O resultado será: Célula 1, linha 1 Célula 2, linha1 Célula 1, linha 2 Célula 2, linha 2 Parâmetros opcionais: align: Justifica o texto da célula da mesma forma que se fosse o de um parágrafo. border: especifica a espessura da borda da tabela. Se colocado 0 a tabela é criada sem borda. Valign: Podemos escolher se queremos que o texto apareça acima (top), no centro (middle) ou abaixo (bottom) da célula. bgcolor: Dá cor à célula ou escolha de linha. bordercolor: Define a cor da borda. Outros atributos que podem ser unicamente atribuídos a uma célula e não ao um conjunto de células de uma linha são: background: Permite-nos colocar um fundo para a célula a partir de um link a uma imagem. height: Define a altura da célula em pixels ou porcentagem. 13

width: Define a largura da célula em pixels ou porcentagem colspan: Expande um célula horizontalmente. rowspan: Expande um célula 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">conteúdo</a> Sendo o conteúdo um texto ou uma imagem. É a parte da página que se colocará ativa e onde deveremos clicar para acessar o link. E o destino por sua vez, será uma página, um correio eletrônico ou um arquivo. 11 Exemplo prático Aplicação Login Como dito na introdução deste tutorial, para exemplificar os conceitos vistos acima será abordado um exemplo prático de uma aplicação de Login. O desenvolvimento da aplicação de login será feito através de um Passo-a-Passo, pois esta foi a forma mais simples encontrada para a implementação da aplicação. Segue abaixo a estrutura de funcionamento da aplicação mostrada na figura 3: 14

index.jsp verfica.jsp cadastrar.jsp Figura 3 11.1 Configuração do Ambiente de Desenvolvimento JSP 11.1.1 Recursos necessários A seguir os recursos necessários para este tutorial e como conseguí-los: Recursos URL Versão Kit JDK http://www.sun.com 6.0 Tomcat http://tomcat.apache.org/download-55.cgi 5.5.16 Para instalar o Tomcat é necessário possuir o kit de desenvolvimento Java JDK instalado em sua máquina. 15

11.1.2 instalação 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 variável de ambiente JAVA_HOME apontando para seu local de instalação (Ex: JAVA_HOME=C:\Arquivos de programas\java\jdk1.6.0_05). Esta variável de ambiente padrão é usada pelo Tomcat e vários outros sistemas baseados em Java, para determinar a JVM preferencial. Isto é muito importante se houver mais de uma instalação de J2SE no computador, mas a variável JAVA_HOME deve ser definida mesmo se houver apenas uma versão instalada. 11.1.2 Instalação do Tomcat Após 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 serviço não rode da primeira vez, execute o arquivo startup.bat localizado na pasta bin do Tomcat. Neste tutorial será utilizada a versão 5.0.16 do Tomcat. Para maiores informações sobre versões, 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 página: 16

Figura 4 Na home-page padrão do Tomcat, é possível acessar ferramentas de interface Web para administrar e gerenciar o servidor, sem a necessidade de editar arquivos de configuração. Para utilizar as ferramentas é solicitado o login de usuário (padrão é admin) e a senha, cadastrados durante a instalação do tomcat, para acesso a estes recursos. Tomcat Manager - Permite gerenciar as aplicações iniciar, parar, reiniciar, fazer deploy (distribuição) e undeploy bem como monitorar o estado do servidor. Tomcat Administration - Permite criar, excluir e configurar Serviços e seus elementos internos (Connector, Host, Alias, Context, Logger, Valve) do 17

Servidor Tomcat, bem como Recursos (Data Source etc.) e Autorizações (User, Group, Role). Estes itens correspondem aos elementos e atributos disponíveis no arquivo de configuração server.xml. 11.2 Criando Estrutura de Diretórios Para rodar os seus arquivos JSP é necessário montar uma estrutura de diretórios dentro da pasta onde o Tomcat foi instalado da seguinte forma: Figura 5 loginweb: local onde ficarão os arquivos *.html, *.jsp, e as imagens. WEB-INF (respeitando maiúsculas): deve conter o arquivo web.xml. classes: arquivos de classes (*.class) que serão utilizadas pelas páginas JSP. fib: classes utilizadas na aplicação que estão no pacote fib. lib: pacotes *.jar de bibliotecas utilizadas devem ficar armazenados aqui. 18

Esta estrutura de diretórios é universal, e é interpretada por qualquer servidor, sem a necessidade de alteração. Além disso, facilita a organização do conteúdo de desenvolvimento, bem como a segurança da aplicação, deixando visível apenas o conteúdo necessário. 11.2.1 Editando o arquivo web.xml Segundo a especificação Java Servlet/J2EE, o arquivo web.xml é o descritor do contexto de aplicação web, contém as configurações específicas da aplicação. 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>aplicação 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

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. 20

*/ 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

* 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"); 22

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"); gin(l)); System.out.println(GerenciaLogin.getInstancia().existeLo 11.4 Implementando as páginas JSP index.jsp <%@ page language="java" %> <%@page import="fib.*" %> <%@page import="java.util.*" %> 23

<% 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("atenção: 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

<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); 25

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 Inválido"); 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.*" %> <% 26

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("atenção: 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

<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

12 Conclusão JSP permite o desenvolvimento de aplicações do lado do servidor e é baseado em Java, uma linguagem OO, podendo ser aplicados todos os conceitos de reutilização de componentes, desacoplamento e encapsulamento. JSP possibilita separar a programação lógica (parte dinâmica) da programação visual (parte estática), facilitando o desenvolvimento de aplicações mais robustas, onde programador e designer podem trabalhar no mesmo projeto, mas de forma independente. Além disso, outra vantagem das aplicações Java é a segurança 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 difícil de se aprender porque é orientada a objetos e a maneira de escrever os programas é mais rígida. 13 Referências: JAVA PARA A WEB COM SERVLETS, JSP E EJB o Autor: Budi Kurniawan o Editora: Ciência Moderna Sun o http://java.sun.com/products/jsp/docs.html Tutorial Tomcat - Instalação e Configuração Básica 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 29