UNIDADE III JAVA SERVER PAGES
MODELO JSP Um dos principais objetivos da tecnologia J2EE é fazer com que as tarefas sejam realizadas de forma separada. Eliminando as dependências, componentes J2EE tornam-se reutilizáveis, extensíveis e gerenciáveis. O modelo JSP observa essas características.
MODELO JSP Diferentemente da tecnologia Servlet, o JSP separa a camada de apresentação da camada lógica.
MODELO JSP
CICLO DE VIDA JSP O ciclo de vida JSP é pode ser dividido em sete passos: 1. A primeira vez que um cliente faz uma requisição, o container JSP carrega a página e a transforma em um servlet. (jsp java) 2. O servlet é compilado (java class) 3. O servlet é carregado em memória 4. Uma instância do servlet é criada. 5. Quando a página é inicializada, o método jspinit() é chamado.
CICLO DE VIDA JSP O ciclo de vida JSP é pode ser dividido em sete passos: 6. Para todas as novas requisições, o método jspservice(...) é chamado. 7. Quando o servlet é retirado da memória, o método jspdestroy() é chamado.
CICLO DE VIDA JSP
PRIMEIRA APLICAÇÃO JSP <HTML> <HEAD> <TITLE>Formulário HTML</TITLE> </HEAD> <BODY> <P>Digite o seu nome</p> <form method= GET action= http://localhost:8080/reverso.jsp > <input type= text size= 20 name= nome > <input type= submit > </form> </BODY> </HTML>
PRIMEIRA APLICAÇÃO JSP <%@ page language= java %> <%-- Página JSP --%> <HTML> <HEAD> <TITLE> Primeira Página JSP</TITLE> </HEAD> <BODY> <% String seunome = request.getparameter( nome ); StringBuffer seunomereverso = new StringBuffer(seuNome).reverse( ); out.println( <P> Seu Nome + seunome + lido de trás para frente é + seunomereverso); %> </BODY> </HTML>
OBJETOS IMPLÍCITOS Toda aplicação JSP pode acessar objetos java que são criados automaticamente. Tipos de Objetos: application (contexto do servlet) pagecontext (atributos da página) config (configuração do servlet) request (requisição recebida) response (resposta enviada)
OBJETOS IMPLÍCITOS Tipos de Objetos: session (sessão criada) out (resposta do cliente) page (representa uma instância do servlet) exception (representa os erros)
OBJETOS IMPLÍCITOS
OBJETOS IMPLÍCITOS <HTML> <BODY> <h3>informações do Servidor:</h3> <%= application.getserverinfo() %> <h3>informações do Host:</h3> <%= request.getremotehost() %> <h3>informações da Sessão:</h3> <%= session.getid() %> </BODY> </HTML>
ELEMENTOS JSP São organizados em quatro grupos: Comentários Diretivas Scripting Elements Expressões Declarações Scriptlets Ações
COMENTÁRIOS Utilizados para comentar o código Não são processados pelo container JSP. Sintaxe: <%-- Este é um comentário --%> <% %> //Este é outro comentário
DIRETIVAS Utilizados para enviar mensagens para o container JSP, afetando a estrutura do Servlet a ser gerado. Sintaxe <%@ directivetype attributelist %> directivetype: {include, page e taglib}
DIRETIVAS - INCLUDE Utilizado para incluir arquivos estáticos no documento JSP. Sintaxe JSP <%@ include file= URL %> Sintaxe XML <jsp:directive.include file URL %>
Exemplo DIRETIVAS - INCLUDE <%@ include file= Reverso.jsp %> <jsp:directive.include file= Reverso.jsp />
DIRETIVAS - PAGE Utilizado para descrever inúmeros atributos que serão considerados durante a criação do Servlet, tais como: Importação de pacotes; Tipo MIME de retorno; Etc. Sintaxe JSP <%@ page attributelist %>
Sintaxe XML DIRETIVAS - PAGE <jsp:directive.page attributelist /> Exemplo <%@ page import= java.io.*, java.util.* %> <jsp:directive.page import= java.io.*, java.util.* />
DIRETIVAS - TAGLIB Utilizado para incluir bibliotecas de tags. Sintaxe JSP <%@ taglib uri= URIForLibrary prefix= tagprefix %> Sintaxe XML - Não possui
DIRETIVAS - TAGLIB Exemplo <%@ taglib uri= http://www.company.com/tags prefix= public %> <public:loop>... </public:loop>
SCRIPTING ELEMENTS São fragmentos de código java inseridos em uma página JSP. Consiste de várias declarações de variáveis, blocos de códigos, etc. Está subdividido em três categorias: Expressões Declarações Scriptlets
EXPRESSÕES Insere o valor de um atributo ou a chamada de um método em uma página JSP. Sintaxe JSP <%= expressão %> Sintaxe XML <jsp:expression>... </jsp:expression>
Exemplo <%= new Date() %> EXPRESSÕES <jsp:expression>new Date()</jsp:expression>
DECLARAÇÕES Utilizado para declarar variáveis e métodos a serem utilizados em uma página JSP. Sintaxe JSP <%! declaração %> Sintaxe XML <jsp:declaration>... </jsp:declaration>
DECLARAÇÕES Exemplo <%! int contador=0; %> <jsp:declaration>int contador=0; </jsp:declaration>
SCRIPTLETS Utilizado para incluir blocos de código java em uma página JSP. Sintaxe JSP <% código %> Sintaxe XML <jsp:scriptlet>... </jsp:scriptlet>
SCRIPTLETS Exemplo <% for(int i=0; i<contador; i++) out.println(i); %> <jsp:scriptlet> for(int i=0; i<contador; i++) out.println(i); </jsp:scriptlet>
EXERCÍCIO 1- Escrever um documento JSP para receber o login e a senha passado pelo usuário. Utilizar o formulário criado no exercício anterior. 2- Utilizar um banco de dados que possua uma Tabela Identificação e armazenar o login e senha passados pelo usuário.
EXERCÍCIO 3- Criar um site para uma pizzaria virtual que possui um formulário onde o usuário pode solicitar a compra de pizzas. Os seguintes dados deverão ser passados pelo usuário: nome do cliente, endereço do cliente, tipos de entrega, sabor(es) da(s) pizza(s) e tamanho da(s) pizza(s). Criar um documento JSP que receba a requisição das pizzas, armazene os pedidos em um BD e retorne uma resposta ao cliente, confirmando o recebimento do pedido e o prazo para entrega. Ex: http://www.unama.br:8080/temp/etienne/index.htm
Exemplo EXERCÍCIO