Java para Desenvolvimento Web - aeciocosta.com.braeciocosta.com.br/wp-content/uploads/Curso Java...

Preview:

Citation preview

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

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>

Recommended