12
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

Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

Embed Size (px)

Citation preview

Page 1: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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

Page 2: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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

Page 3: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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

Page 4: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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

Page 5: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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>" %>

Page 6: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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)

Page 7: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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 WEB-

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

Page 8: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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" %>

Page 9: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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" %>

Page 10: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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

Page 11: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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>

Page 12: Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java Web/Apostilas/2... · JSP – Java Server Pages ... Tags em JSP Em JSP existem tags

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