Java para Web – JSP

Propaganda
Java para Desenvolvimento Web
JSP
Antes de iniciarmos a comentar sobre a Tecnologia Java Server
Pages, teremos uma breve apresentação do Servidor (Web Contanier)
TomCat. Então vamos lá.
Servidor TomCat
Após Instalar o TomCat e verificar que o mesmo está sendo
executado, é sempre bom conhecer o servidor para que possamos
contornar possíveis problemas que possam ocorrer no desenvolvimento,
como algum serviço da sua máquina usar a porta padrão do TomCat,
sendo assim o mesmo não iria conseguir ser iniciado já que sua porta
estaria ocupada.
Quando descompactamos o servidor podemos visualizar algumas
pastas como mostra a figura abaixo.
Figura 1 – Descompactação do Servidor TomCat
Cada pasta tem uma função específica relacionada ao servidor,
vejamos algumas delas:
bin = Executáveis, incluindo os aplicativos para iniciar e para encerrar a execução
do servidor. O arquivo “startup.bat” (ou “startup.sh” para Linux) iniciará
o servidor, “shutdown.bat” terminará o serviço.
conf = Arquivos de configuração do Tomcat. O arquivo “server.xml”,
em particular, define uma série de parâmetros para a execução do servidor,
como por exemplo, a porta onde o servidor irá receber requisições (essa porta é,
por default, 8080), devendo ser examinado com cuidado e modificado
conforme as necessidades.
logs = Arquivos de log do servidor. Além de gerar arquivos de log contendo
entradas para cada requisição recebida, como qualquer servidor web, o Tomcat
também pode gerar arquivos de log com tudo o que as aplicações desenvolvidas
enviam para a saída padrão do sistema.
work = Diretório temporário do Tomcat. Esse diretório é utilizado, por exemplo,
para realizar a recompilação automática de páginas JSP.
webapps = Nesse diretório são instaladas as diversas aplicações web
desenvolvidas.
Iniciando o Servidor
Figura 2 – Inciando o Serviço do TomCat
Para iniciar o serviço do TomCat escolha o arquivo “startup.bat”,
após isso será aberta uma janela informando que o servidor foi
iniciado com Sucesso.
Após iniciado abra um browser ( Firefox, Internet Explorer) e acesse o
endereço http://localhost:8080. Se a tela abaixo aparecer para você, parabéns, o
Tomcat está instalado e funcionando em seu computador.
Figura 3 – Manager do TomCat
OBS: Caso o servidor não inicie, tente executar o arquivo via prompt
de comando no MS-DOS, assim você conseguirá ver o motivo da
não inicialização do serviço.
Manager do Servidor
A ferramenta de gerenciamento do tomcat trás vários recursos
que podem ser utilizados no browser como Gerenciamento do Servidor,
Status de Aplicativos, Deploy e UnDeploy de Aplicações,
Documentação e Exemplos de JSP.
Figura 4 – Lista de Aplicativos
Como visto na figura anterior, a tela de gerenciamento do
tomcat permite que você verifique se a sua aplicação fez o deploy ou
não atarvés da coluna Running, o número de sessões ativas existentes
no seu aplicativo, permite expirar sessões, recarregar um aplicativo ou
fazer UnDeploy do mesmo.
Ainda no gerenciamento é possível através de um arquivo .WAR
existente fazer deploy no servidor, necessitando apenas que você
selecione o arquivo que fará o UpLoad para o Servidor, essa
funcionalidade pode ser utilizada quando não há acesso direto ao FTP
na qual o servidor se encontra.
server.xml
O arquivo server.xml é lido pelo servidor para parametrizar
configurações como porta na qual o serviço irá executar, contextos de
aplicativos, timeout de requisições, deploy automático e etc.
É possível configurar a porta através da tag XML <Connector
port="8080"/>, nessa mesma tag existe um atributo chamado
connectionTimeout=”20000” onde em milisegundos é possível
determinar quanto tempo o servidor deve esperar por uma requisição.
Outra tag importante é a tag de Contexto, onde é possível
configurar um aplicativo sem a necessidade de fazer deploy do mesmo
toda vez que ele seja alterado, nessa tag você também define o
caminho para que um projeto seja executado através do atributo path.
<Context path="/sysjuridico" reloadable="true"
docBase="B:\Java\Workspaces\Web\sysjuridico"
workDir="B:\Java\Workspaces\Web\sysjuridico\work" />
tomcat-users.xml
o arquivo tomcatusers.xml é utilizado para configurar usuários no
tomcat, a tag
<role rolename="manager"/>
especifica o papel a ser executado no servidor.
A tag
<user username="admin" password="admin" roles="tomcat, manager, admin"/>
cria um usuário utilizando o papel criado anteriormente.
JSP – Java Server Pages
Todo JSP quando compilado se torna uma Servlet, assunto dos próximos
capítulos, para que possamos utilizar JSP (Tecnologia Java embutida em
páginas) são necessários Scriplets (veja a apostila 1).
Através das tags <% //Código Java Aqui %> podemos criar variáveis,
classes e utilizar praticamente todos os recursos Java.
Um Exemplo de código JSP para exbir uma mensagem de boas vindas
seria da seguinte forma:
<% out.println("Seja Bem Vindo ao Curso de Java para Web"); %>
O código acima faria com que o Scriplet escrevesse na página a
mensagemm passada para o método println. Como toda requisição na Web
retorna uma resposta HTML, significa dizer que a mensagem retornada para o
usuário do navegador é um HTML, não impedindo que pudéssemos fazer o
seguinte:
<% out.println("<h1>Seja Bem Vindo ao Curso de Java para
Web</h1>"); %>
Acima foi colocado as tags do HTML <h1>, o que faria com que o texto
fosse exibido na página com as características da tag colocada. Dessa forma
é possível escrever o texto da forma que deseja-se tendo apenas que colocálo como saída para o HTML.
Para simplificar a escrita o texto ainda poderia ser exibido da seguinte
maneira, que também serviria para exibir variáveis e etc.
<%= "<h1>Seja Bem Vindo ao Curso de Java para Web</h1>" %>
Códigos JSP
Podemos criar variáveis e exibir os seus resultados como faríamos em uma
classe Java comum do JSE.
<%
int idade = 51;
String nome = "João Vieira";
out.println("Olá, meu nome é "+ nome + " e tenho "+ idade + " anos!");
%>
Código 1 – Criando variáveis no JSP (minhaPagina.jsp)
Criando Classes
Para criação de classes a regra é a mesma, o código Java deve
estar entre as tags JSP. Então para criarmos uma classe que exibisse
uma mensagem de boas vindas, teríamos a seguinte classe:
<%
class PrimeiroExemplo {
public String getMensagem(){
return "Olá, Bem Vindo ao Curso de desenvolvimento para Web com
Java";
}
} %>
Código 2 - Criando Classe no JSP (minhaClasse.jsp)
Com a classe PrimeiroExemplo construída dentro da sua página
JSP, podemos instanciar a classe e ver o resultado. Para isso após a
criação da classe iremos instanciar a mesma e exibir o resultado como
HTML.
<%
PrimeiroExemplo p = new PrimeiroExemplo();
out.println(p.getMensagem());
%>
Código 3 - Instanciando a Classe criada (minhaClasse.jsp)
Diretivas
São códigos que demonstram ao container (que pode ser o
Tomcat, Jboss ou qualquer outro), informações especiais de
processamento concernentes à página. Traduzindo, ela pode ser usada
para importar classes, incluir o conteúdo de uma outra página,
especificar a utilização bibliotecas de tags personalizadas, para dizer
qual a linguagem de geração de scripts, entre outras coisas.
Como vimos anteriormente, criamos classes dentro do próprio JSP,
porém, através das diretivas é que podemos criar ou utilizar classes
externas aos JSP’s. Para exemplificar, criemos um pacote na pasta WEBINF do seu aplicativo, após isso crie uma classe. O resultado da classe
deve ficar parecido com o código abaixo.
package br.cd;
public class Exemplo1 {
public String getMensagem(){
return " Olá, Bem Vindo ao Curso de desenvolvimento para Web com
Java ";
}
}
Código 4 – Criando uma classe .java
Após criada a classe, podemos instanciá-la em um JSP da
seguinte forma:
<%
Exemplo1 p = new Exemplo1();
out.println(p.getMensagem());
%>
Agora teremos que usar a diretiva de importação para que a classe
seja reconhecida no JSP, a diretiva será da seguinte forma:
<%@page import="br.cd.Exemplo1"%>
Assim podemos utilizar qualquer método que esteja na classe Exemplo1.
Diretiva de Página (page)
A diretiva de página possui diversos atributos com vários propósitos,
vejamos eles.
Atributo Info
Usado para inserir informações sumarizadas da página, não
havendo restrições ao seu tamanho. Exemplo:
<%@ page info="Estudo sobre Diretivas JSP, Prof. Cristiano Neves,
2006" %>
Atributo Language
Usado, em geral, para especificar Java como a linguagem de
criação de script para a página. Exemplo:
<%@ page language="java" %>
Atributo ContentType
Este atributo indica qual o tipo MIME (Multipurpose Internet Mail
Extensions) da resposta está sendo gerada pela JSP. Os tipos mais
comuns são: “text/plain”, “text/html”, “text/xml”. Logo abaixo segue o
exemplo usado como padrão para as JSPs.
<%@ page contentType="text/html" %>
Atributo Extends
Serve para indicar a super classe que será usada pelo container
JSO no momento de tradução da página em um Servlet Java. Exemplo:
<%@ page extends="com.taglib.jsp.primeirapagina" %>
Atributo Import
Com o atribuo import, diferente do extends, é capaz de estender
um conjunto de classes Java que poderão ser usadas nas páginas JSPs.
Esta forma é mais econômica de se digitar código, sendo mais prático.
Exemplo:
<%@ page import="java.util.List" %>
Atributo Session
Session é do tipo boolean, indica se a página está participando
do gerenciamento de sessão. Por exemplo, se quisermos dizer que uma
página é parte de uma sessão, utiliza-se a seguinte sintaxe:
<%@ page session="true" %>
Atributo Buffer
Responsável por controlar a saída bufferizada para uma página
JSP. Se for ajustado para “none” o conteúdo de uma JSP é passado
instantaneamente à resposta HTTP. O tamanho do buffer é descrito em
kilobytes. Exemplo:
<%@ page buffer="12kb" %>
ou
<%@ page buffer="none" %>
Atributo AutoFlush
Semelhante ao Buffer, também é responsável por controlar a
saída buferizada, mais exatamente o comportamento do container JSP
quando já esteja cheio o Buffer de saída. Neste caso é esvaziado
automaticamente o Buffer de saída e o conteúd0o enviado para o
servidor HTTP que transmite para o Browser responsável pela solicitação.
Sendo do tipo boolean, sua sintaxe é dada abaixo:
<%@ page autoFlush="true" %>
Atributo isThreadSafe
Quando uma página JSP é compilada em um Servlet, ela deve
ser capaz de atender a múltiplas solicitações. Para isso devemos utilizar
o atributo isThreadSafe, caso contrário é necessário defini-lo como
“false”. Exemplo:
<%@ page isThreadSafe="false" %>
Atributo errorPage
ErrorPage indica uma página alternativa que será exibida caso
aconteça um erro não previsto durante o processamento de uma
página JSP no container. Exemplo:
<%@ page errorPage="/diretorio/erro.jsp" %>
Atributo isErrorPage
Responsável por define uma página JSP que servirá como a
página de erro padrão para um grupo de páginas JSP. Sendo do tipo
boolean, sua sintaxe é descrita abaixo:
<%@ page isErrorPage="true"%>
Diretiva de Inclusão (include)
Coloca o conteúdo de um arquivo em outro. Não há limites para
inclusões, podendo ter várias em uma mesma página. A diretiva se
substitui pelo conteúdo indicado. Sua sintaxe é:
<%@ include file="URLdoArquivo" %>
ou
<jsp:directive.include file="URLdoArquivo" />
Diretiva de biblioteca (taglib)
Se usarmos esta diretiva em uma página, um conjunto de tags
personalizadas estará a sua disposição, que poderá ser usadas num
sistema de página à página. Podendo ser declaradas, também, de
duas formas:
<%@ taglib uri="URLdaBibliotecadeTags" prefix="PrefixodaTag" %>
ou
<jsp:directive.taglib uri="URLdaBibliotecadeTags"
prefix="PrefixodaTag" />
Tags em JSP
Em JSP existem tags que podem ser utilizadas para efetuar ações,
são as Action Tags, basicamente elas permitem fazer 3 ações.
 Utilização de JavaBeans;
 Controle de Transferência de Páginas;
 Suporte independente pelos browsers de applets Java.
Java Beans
<jsp:useBean
Instancia uma classe JavaBean. Exemplo:
<jsp:useBean id="aluno" class="br.cd.Aluno"/>
<jsp:setProperty
Seta valor para uma propriedade de um JavaBean. Exemplo:
<jsp:setProperty property="nome" name="aluno" value="Aecio Costa"/>
<jsp:getProperty
Pega o valor de uma propriedade do JavaBean. Exemplo:
<jsp:getProperty property="nome" name="aluno"/>
Controle de Transferência de Página
<jsp:include
Inclui uma página JSP dentro de outra, exemplo:
<jsp:include page="pagina.jsp"></jsp:include>
<jsp:forward
Redireciona para página informada no atributo page. Exemplo:
<jsp:forward page=“pagina2.jsp”></jsp:forward>
<jsp:param
Atributo usado dentro da tag <jsp:forward, serve para passar
parâmetros em uma requisição para a página na qual ela está sendo
redirecionada. Exemplo:
<jsp:forward page="pagina2.jsp">
<jsp:param value="JavaWEB" name="curso"/>
</jsp:forward>
Applets
<jsp:plugin
Tag para embutir no html um applet existente. Exemplo:
<jsp:plugin type="applet" code="Clock2.class" codebase="applet"
jreversion="1.2" width="160" height="150" ></jsp:plugin>
Download