Você está na página 1de 99

Programao Server Side I

Aula 1 Introduo/Servlets
Prof. Elton R C Spode, MsC
E-mail: espode@brturbo.com http://www.inf.unifra.br/~espode

Contedo
Introduo a programao Web Introduo a Servlets Request/Response Cookies/HttpSession Introduo a JSP Diretivas JSP JSP e Java Beans JSP vs. Servlets

Bibliografia
Core Servlets and Java Server Pages Marty Hall Sun Microsystems Web Development with Java Server Pages Duane K. Fields/Mark A. Kolb Manning

Na Internet
Tutorial de Servlets da Sun
http://www.javasoft.com/docs/books/tutorial/servlets/index.html

Introduo a Servlets - R. G. Baldwin


http://home.att.net/~baldwin.rick/Advanced/Java680.htm

Introduo a JSP - R. G. Baldwin


http://softwaredev.earthweb.com/java/sdjjavase/article/0,,12395_626381,00.html

Faqs, Ferramentas, Exemplos http://www.jspbrasil.com.br

Ferramentas Utilizadas
Visual Age for Java 3.02 Entry Edition: http://www7.software.ibm.com/vad.nsf Tomcat 3.1.1 jakarta.apache.org Integrando Visual Age e Tomcat
http://www7.software.ibm.com/vad.nsf/Data/Document2390?OpenDocument&p=1&BCT=3&Footer=1

Tecnologias Web
Client Javascript Applets Flash Server ASP JSP/Servlets PHP XML/XSL

Histrico Server-Side
HTML: sem contedo dinmico CGI: Common Gateway Interface ASP: Active Server Pages Servlets JSP: Java Server Pages PHP: Open source

Servlets - Web Servers


Rodam no servidor com o objetivo de monitorar requisies Web Servers para Servlets/JSP Apache Tomcat IBM Websphere Allaire JRun BEA Weblogic Mais Servidores:
http://java.sun.com/products/servlet/industry.html

Servlets - Na Internet
Provedores gratuitos com suporte para Servlets/JSP e JDBC http://www.mycgiserver.com http://www.webappcabaret.com http://dev.startcom.org http://java.isavvix.com

Servlets - Protocolo HTTP


Hyper Text Transfer Protocol Protocolo padro para conexo entre browsers Quatro etapas: conexo, requisio, resposta e fechamento Utiliza o MIME para codificao dos dados

Servlets - Introduo
Classes Java que rodam no servidor Applet - Browser, Servlet - Server Uso de Servlets Gerao de Contedo HTML Dinmico Sincronizao de requisies Redirecionamento de requisies

Servlets - Funcionamento
Servlets so executados a partir de requisies de clientes Executam alguma tarefa (BD, Classes de negcio) e retornam uma pgina

Servlets - Criao
Criar uma classe derivada de HTTPServlet Implementar os mtodos doGet e/ou doPost usando os parmetros: request para tratamento das requisies response para tratamento das respostas
getWriter para pegar a stream de sada

Chamar o servlet a partir do browser

Servlets - Request/Response
Request - interface HttpServletRequest Encapsula os dados do cliente Header, cookies, parmetros Response - interface HttpServletResponse Encapsula os dados para o cliente Header, cookies, contedo

Servlets - Ciclo de Vida

Servlets - Ciclo de Vida


init init (ServletConfig) service doGet/doPost/doPut/doDelete/doOptions/doTrac e getServletInfo destroy

Servlets - mtodos init


init() - Primeiro mtodo chamado, usado para inicializaes em geral como abertura de conexes para BD init(ServletConfig) - chamado aps init, usado para leitura de parmetros do servidor com getInitParameter()

Servlets - doGet e doPost


Existem duas maneiras de se enviar dados pelo browser: Get e Post Como o tratamento o mesmo chama-se um mtodo a partir do outro Get: dados vem junto com a URL Post: dados vem separados da URL

Servlets - doGet e doPost


public void doGet (HttpServletRequest request, HttpServletResponse response) { String nome = request.getParameter(nome); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(Texto recebido: + nome); out.close(); }

Servlets - service
A cada nova requisio o servidor cria um novo thread e chama service O mtodo service verifica a requisio e chama o mtodo apropriado Se for sobreposto dever fazer todo o tratamento de verificao e chamada dos mtodos

Servlets - outros mtodos


destroy - chamado na destruio do servlet por inatividade ou a pedido do administrador. Usado para finalizar tarefas iniciadas por init getServletInfo - deve retornar um objeto String contendo uma descrio do servlet

Exerccio
Controle de Conta Corrente Construir o servlet EntradaServlet no pacote view que imprima a mensagem: Sistema de Conta Corrente em Construo!

Requisies/Respostas
Quando uma requisio enviada a um servlet (mtodos service e doXXX), os mtodos chamados recebem dois objetos: request e response O objeto request implementa a interface HttpServletRequest e usado para recuperar informaes e contedo do cliente (requisio) O objeto response implementa a interface HttpServletResponse e usado para enviar informaes e contedo para o cliente (resposta)

Requisies
Qualquer dado enviado pelo browser do cliente est disponvel atravs do objeto request Desde informaes sobre o servidor at parmetros de formulrios podem ser recuperados atravs de seus mtodos: getParameter getParameterValues getParameterNambes getHeader getHeaders getHeaderNames

Recebendo um Parmetro
Um servlet pode receber parmetros de uma requisio, seja atravs de um form HTML ou da insero direta destes parmetros em um link Para receber um parmetro usa-se getParameter: Sintaxe: String getParameter(String nome); Caso o parmetro pedido no exista, o mtodo getParameter retornar null

Para recuperar os nomes de todos os parmetros utiliza-se o mtodo getParameterNames Este mtodo retorna um Enumeration contendo os nomes de todos os parmetros recebidos Sintaxe: Enumeration getParameterNames(); Caso no existam parmetros, o mtodo retornar null Para pegar o valor do parmetro basta usar o mtodo getParameter

Recebendo Todos os Parmetros

Recebendo um Header
As informaes trocadas entre o browser e o servlet esto codificadas no formato MIME Este formato define tipos de arquivos e cabealhos de transmisso Os dados do cabealho podem ser recuperados com o mtodo getHeader: Sintaxe: String getHeader(String nome); Os browsers em geral no enviam todos os cabealhos disponveis

Recebendo Todos os Headers


Para recuperar os nomes de todos os headers enviados utiliza-se o mtodo getHeaderNames Este mtodo retorna um Enumeration contendo os nomes dos headers recebidos Sintaxe: Enumeration getHeaderNames(); Caso no existam parmetros, o mtodo retornar null Para pegar os valores basta utilizar o mtodo getHeader

Gerando Links Independentes


Em aplicaes Web comum o uso de endereos (URL) fixos para: redirecionar uma requisio e criar links ou aes em uma pgina Para diminuir a manuteno deve-se usar URLs relativas quando estas indicam o prprio site Como o servlet pode ser inserido em qualquer pasta necessrio utilizar o mtodo abaixo para recuperar este contexto: String getContextPath(); Este mtodo funciona apenas da especificao 2.2 em diante

Recebendo Informaes
Muitas outras informaes teis esto disponveis no objeto request: autenticao, string de parmetros, dados do servidor, dados de path, dados do contedo entre outros: getAuthType getQueryString getServerName getServerPort getProtocol getRequestURI getMethod getPathInfo getCookies getPathTranslated getServletPath getContentLength getContentType getCharacterEncoding getContextPath (2.2) getLocale (2.2) getLocales (2.2)

Resposta
Atravs de um servlet podemos enviar para o cliente: contedo, informaes sobre ele e at aes que devem ser executadas pelo browser O envio para o cliente feito atravs do uso dos mtodos do objeto response: setContentType setContentLength getWriter getOutputStream setStatus setHeader

Enviando Contedo
Para enviar o contedo da resposta deve-se: Assinalar o tipo do contedo com setContentType Recuperar um stream para envio dos dados com getWriter (texto) e getOutputStream (binrio) Enviar a resposta com o mtodo adequado Fechar a stream Exemplo:
response.setContentType(text/html); PrintWriter out = response.getWriter(); out.println(texto);

Enviando Informaes
A resposta enviada consiste da linha de status, headers, uma linha em branco e o contedo A linha de status contm a verso do HTTP, o cdigo de status e a mensagem de status Cada header consiste de um nome padro seguido de um valor Servlets podem manipular estes cdigos para executar determinadas tarefas, como redirecionar para outros sites, indicar o tipo do documento anexado, solicitar uma senha, etc.

Enviando Cdigos de Status


O envio destes cdigos geralmente feito com o mtodo setStatus: Sintaxe: void setStatus(int CdigoDeStatus ); O cdigo de status pode ser qualquer cdigo vlido (entre 100 e 599) Existem constantes pr-definidas no objeto response para os casos mais comuns como SC_OK e SC_NOT_FOUND

Enviando Cdigos de Erro


Para o caso especial de envio de cdigos de status de erro , existe uma facilidade no objeto response: o mtodo sendError Este mtodo recebe um cdigo de Status e uma mensagem, formata os dois em um texto HTML simples e envia-o para o cliente Sintaxe: void sendError(int cdigo, String mensagem);

Enviando Headers
Headers so usadas para diversas tarefas teis: insero de cookies, indicao da data de alterao e tamanho do documento, releitura automtica da pgina, solicitao de autenticao (senha), etc Para especificar Headers de resposta podem ser utilizados os seguintes mtodos: setHeader, para valores string setDateHeader, para envio de datas (milissegundos) setIntHeader, para envio de valores inteiros

Redirecionando Requisies
Para solicitar ao browser o redirecionamento automtico, necessrio especificar o cdigo de status 302 e definir o header Location com a URL desejada. Estas tarefas podem ser realizadas por um nico mtodo: sendRedirect Alm disso, este mtodo tambm monta uma pgina para os browsers que no suportam redirecionamento Sintaxe: void sendRedirect(String URL);

Exerccio
Criar o servlet LoginServlet para solicitar uma senha ao usurio Criar o servlet CadastroServlet que mostra a pgina de cadastro se no receber parmetros ou grava no BD se receb-los. Alterar o servlet EntradaServlet para apresentar um menu contendo as opes: Nova Conta, Sacar, Depositar, Consultar, Bloquear e Finalizar

Exerccio
A opo Nova Conta dever chamar o servlet LoginServlet Se o usurio digitar senha dever ser chamado CadastroServlet As demais opes devero chamar o servlet ExecutarServlet utilizando um parmetro para distinguir a opo escolhida. Cada opo dever retornar a mensagem Em Construo

Programao Server Side I


Aula 2 Cookies
Prof. Elton R C Spode, MsC
E-mail: espode@brturbo.com http://www.inf.unifra.br/~espode

Cookies
So pequenas seqncias de bits armazenadas no cliente pelo browser Surgiram no Netscape para guardar informaes persistentes no cliente Existem restries para o seu uso: Podem ser acessados apenas pelo domnio que os criou Podem ser desabilitados pelo usurio (privacidade) Cookies so enviados de volta sempre que o usurio retorna ao domnio que gravou-os

Aplicaes de Cookies
Os usos mais comuns de cookies so: Identificao de usurios durante uma sesso de comrcio eletrnico Diminuir a necessidade de solicitao de senhas para o usurio Customizao de sites de acordo com as preferncias de cada visitante Propaganda dirigida Como cookies so gravados como arquivos texto eles no representam ameaa segurana do usurio, apenas sua privacidade

Criao de Cookies
Para criar um cookie: Criar um objeto da classe Cookie passando o nome do cookie e seu valor Indicar o tempo de validade do cookie (em segundos) com o mtodo setMaxAge. Se no for indicado nenhum, o cookie valido at que o browser seja fechado Enviar o cookie para o cliente usando o mtodo addCookie do objeto response Mesmo que sejam criados vrios cookies, todos eles sero gravados em apenas um arquivo

Criao de Cookies (cont.)


O nome do cookie no pode conter os seguintes caracteres: [ ] ( ) = , / ? @ : ; O contedo do cookie no pode conter o ; Criando um cookie com a durao de 1 hora: Cookie cookie = new Cookie(nome, Joo); cookie.setMaxAge(60*60); response.addCookie(cookie); Se o cookie no existir, ser criado. Caso contrrio ser alterado. Tambm podem ser criados cookies inserindo-se as Headers adequadas no objeto response.

Leitura de Cookies
Todos os cookies referentes ao domnio que est sendo solicitado so automaticamente enviados juntos com a requisio Eles esto disponveis no objeto request e podem ser recuperados com getCookies Este mtodo retorna um array de cookies Para recuperar um cookie especfico necessrio fazer a varredura do array comparando o nome procurado com cookie.getName

Cookies API
A API de cookies possui mtodos para assinalar e pegar atributos disponveis no cookie: set/getComment set/getDomain set/getMaxAge set/getName set/getPath set/getSecure set/getValue set/getVersion

Cookies API (cont.)


Alguns mtodos so de interesse especial: setDomain - altera o domnio do cookie mas no pode ser usado livremente, apenas em situaes bem especficas. setPath -altera o path para o qual o cookie se aplica. Em geral utilizado na forma: cookie.setPath(/); Este comando indica que todas as pginas neste servidor devem receber o cookie de volta.

Exerccio
Alterar o servlet LoginServlet para gravar o id do usurio em um cookie. Caso o cookie j exista no solicitar a senha, apenas redirecionar para o CadastroServlet

Sesso
O protocolo HTTP stateless, ou seja, ele no mantm informaes entre conexes Aps a resposta ser enviada a uma requisio, a conexo fechada Entretanto, comum o envio de requisies interligadas por um mesmo cliente, como operaes de conta corrente ou compras Este conjunto de requisies e respostas chamado de sesso

Rastreamento de Sesses
Para atingir o objetivo de ligar conexes necessrio rastrear cada sesso, ou seja, verificar a qual usurio pertence cada requisio Este mtodo de rastreamento consiste em: Associar cada requisio recebida com uma sesso especfica Se for uma nova sesso, gerar um identificador nico para ela Recuperar dados da sesso (produtos comprados por exemplo) de um conjunto (lista, tabela hash, etc)

Rastreamento de Sesses
Este controle pode ser feito manualmente atravs do uso de cookies. Como o usurio pode desabilitar os cookies em sua mquina, os processos alternativos so: uso de campos escondidos em formulrios HTML ou atravs de reescrita de URLs Entretanto, como este um processo comum e trabalhoso, existe uma API que realiza todo o tratamento de maneira simples e transparente para o programador: HttpSession

Campos Escondidos
Consiste na insero do id nico do usurio em cada pgina gerada atravs do uso de campos escondidos: <input type=hidden name=id value= ...> O id ento recuperado atravs do getParameter Este mtodo apresenta duas desvantagens: S funciona para pginas geradas dinamicamente pois o id deve ser inserido no HTML obrigatrio o uso de forms com botes, no sendo possvel o uso de links para pginas que faam parte da sesso

Reescrita de URLs
Neste mtodo, o id da sesso de cada usurio adicionado ao fim de toda URL: http://www.xyz.com;id=563248712354 Para recuper-lo, tambm utiliza-se mtodo getParameter Funciona em qualquer browser, mesmo se o usurio desabilitar os cookies Entretanto se o usurio acessar a mesma pgina atravs de um outro link ou bookmark, a sesso ser perdida

Cookies
Para cada nova requisio, um cookie com o id da sesso gravado no browser do cliente O id recuperado atravs do cookie Se puder ser usada, a melhor soluo pois funciona em todos os casos. Como desvantagem, temos a tarefa relativamente trabalhosa de: Extrair o cookie de id do array Assinalar um tempo de validade adequado Associar cada requisio com uma sesso Gerar os ids nicos

HttpSession API
Para simplificar o rastreamento de sesses utilizamos a interface HttpSession que realiza as seguintes tarefas de maneira transparente: Gera ids nicos Mantm informaes de todas as sesses atuais Associa requisies com suas respectivas sesses Utiliza o mtodo de rastreamento disponvel para cada usurio: cookies se estiverem habilitados ou reescrita de URLs Possibilita o armazenamento de objetos na sesso Descarta sesses completas ou abandonadas

Criando e Recuperando Sesses


Para recuperar uma sesso utiliza-se o mtodo getSession do objeto request: HttpSession session = request.getSession(); Se no existir sesso o mtodo retorna null Para criar uma sesso deve-se usar: HttpSession session = request.getSession(boolean criar); Se o parmetro for true uma sesso ser criada caso no exista, se for false o mtodo retornar null como no caso anterior Para verificar se ela nova usa-se isNew()

Inserindo um Atributo
Para inserir atributos deve-se usar os mtodos setAttribute (2.2) e putValue de HttpSession Sintaxe: void putValue(String nome, Object Valor); Objetos inseridos com este mtodo estaro disponveis at que a sesso do usurio correspondente termine Como cada usurio ter sua prpria sesso, esta uma excelente maneira de armazenar e organizar os dados de cada um

Recuperando Atributos
Para recuperar atributos da sesso, usa-se getAttribute (2.2) e getValue de HttpSession Sintaxe:

Object getValue(String nome);


Se o atributo no existir, ser retornado null Para se recuperar todos os atributos associados com uma sesso, usa-se getAttributeNames(2.2) ou getValueNames Sintaxe:

Enumeration getAttributeNames(); String [] getValueNames();

Descartando Sesses
Quando o usurio terminar sua sesso, deve-se elimin-la usando o mtodo invalidate() Sintaxe: void invalidate(); Este mtodo finaliza a sesso e retira a ligao de todos os objetos anteriormente associados Repare que ele no libera os objetos associados, apenas elimina suas ligaes

Outros Mtodos
removeAtribute - elimina o atributo da sesso getId - recupera o ID nico gerado getCreationTime - recupera a hora de criao da sesso em milisegundos getLastAccessedTime - recupera o ltimo acesso a esta sesso em milisegundos setMaxInactiveInterval - altera o tempo de inatividade em que uma sesso ser invalidada getMaxInactiveInterval - recupera o tempo de inatividade

Codificao de URLs
O HttpSession escolher o mtodo de reescrita de URLs caso no possa usar cookies Neste caso, o id da sesso ser adicionado a toda URL requisitada Nas respostas enviadas pelos servlets comum a insero de URLs em links, aes de formulrios ou em redirecionamentos Para o correto funcionamento da sesso necessria a insero do id nestas URLs Usam-se os mtodos do objeto response: encondeURL e encodeRedirectURL

URLs em Links
Para codificar URLs do prprio site que sero colocadas em links ou em aes de formulrios utiliza-se o mtodo encodeURL Sintaxe: String encodeURL(String URL); Exemplo:
String novaURL = response.encodeURL(URL); out.println(<a href= + novaURL + >Clique aqui </a>);

URLs em sendRedirect
Para os casos em que a requisio deva ser redirecionada para outra URL no mesmo site usa-se encodeRedirectURL Sintaxe: String encodeRedirectURL(String URL); Exemplo: String URL = response.encodeRedirectURL(URL); response.sendRedirect(novaURL);

Exerccio
Completar o sistema: Cada opo chamada do menu dever operar sobre a conta corrente atual.

Programao Server Side I


Aula 3 Introduo ao JSP
Prof. Elton R C Spode, MsC
E-mail: espode@brturbo.com http://www.inf.unifra.br/~espode

JSP (Java Server Pages)


Tecnologia Java para gerao de contedo dinmico O texto HTML escrito junto com as tags JSP e cdigo Java No uma idia nova sendo usado em tecnologias concorrentes: ASP, PHP, ServerSide JavaScript e Cold Fusion

Uso de JSP
Pginas JSP tambm necessitam de Web Servers especficos. Em geral, um servidor de servlets tambm um servidor de JSP Para disponibilizar um arquivo JSP basta gravlo em qualquer pasta visvel do servidor com extenso jsp

Execuo de JSP
Quando um usurio faz uma requisio a uma pgina JSP: Se for a primeira, a pgina jsp convertida em um servlet e compilada Este servlet invocado e retorna como resposta uma string HTML Esta string retornada para o cliente Todo o processamento ocorre no servidor, apenas o Html retornado

Elementos JSP
Uma pgina JSP pode ter trs tipos de elementos: Elementos de Script que so inseridos diretamente no servlet Diretivas que permitem a manipulao do cdigo gerado como servlet Aes que possibilitam o uso de outros componentes, como Java Beans

Elementos de Script
Os elementos de script JSP que podem ser inseridos em uma pgina HTML so: Expresses que so avaliadas e inseridas na sada do servlet Scriptlets, trechos de cdigo inseridos no mtodo _jspservice Declaraes inseridas fora dos mtodos do servlet

JSP vs. HTML


A maior parte de um arquivo jsp consiste em tags HTML So passadas como sada do servlet Pginas jsp so criadas com ferramentas HTML Comentrios JSP so expressos como <%-- -->

Expresses
Usadas para inserir valores diretamente na sada Sintaxe: <%= expresso java %> A expresso avaliada, convertida para string e inserida na pgina

Expresses
As expresses podem ser qualquer comando Java que retorne valor Exemplo: Data: <%= new java.util.Date() %>
Expresses so muito teis na atribuio de valores para parmetros html: <font size = <%Math.random()*5%> >

Variveis pr-definidas
Existem variveis em JSP que representam os objetos dos servlets: out request response session Exemplo: Host: <%request.getServerName()%>

Elementos XML
As tags jsp podem ser escritas no formato XML Expresses JSP podem ser escritas: <jsp:expression> expresso java </jsp:expression>
Os elementos XML so sensveis ao caso.

Scriptlets
Trechos de cdigo Java Delimitados por <% e %> Sintaxe XML: <jsp:scriptlet> cdigo java </jsp:scriptlet> Podem acessar as variveis pr-definidas

Scriptlets
Exemplo:
<% String cor = request.getParameter(cor); if (cor == null) cor = white; %>

Scriptlets
Podem ser usados para apresentar html condicionalmente:
<%if (hora >= 6 && hora < 12) { %> <b> Bom Dia! </b> <%} else {%> <b> Boa Tarde! </b> <% } %>

Declaraes
Para definir mtodos ou campos fora dos mtodos do servlet gerado Sintaxe: <%! declarao java %> Em XML: <jsp:declaration> declarao java </jsp:declaration>

Exerccio
Alterar o menu para um JSP simples que mostre data e hora atuais

Diretivas JSP
Afetam a estrutura geral do servlet gerado da pgina JSP Possuem o seguinte formato: <%@diretiva atributo=valor %> ou em XML <jsp:directive.diretiva atributo=valor/>

Tipos de Diretivas
Existem trs tipos de diretivas JSP: page, para importao de classes, alterao do tipo do contedo, etc. include, para incluso de arquivos durante a execuo do JSP taglib, para definio de tags prprias usadas em bibliotecas de tags

Diretiva page
Atributo import Usado para importar classes para o servlet gerado pelo JSP Pode aparecer vrias vezes no JSP Exemplo: <%@page import = java.util.* %>

Diretiva page
Atributo contentType Usado para alterar o formato MIME do texto de sada Exemplo: <%@page contentType=text/html%>
Tambm pode ser especificado o conjunto de caracteres com charset

Diretiva page
Atributo isThreadSafe Controla o uso de mltiplas threads no servlet gerado O padro usar mtithread (true) Exemplo: <%@page isThreadSate=false%>

Diretiva page
Atributo session Indica se a pgina em questo faz parte de uma sesso sendo que o seu valor padro true Ex: <%@page session=false %>
Neste caso a varivel pr-definida session no pode ser acessada

Diretiva page
Atributo buffer Indica o uso e tamanho do buffer usado pela varivel out. Exemplo: <%@page buffer = 32kb%>
ou <%@page buffer = none %>

Diretiva page
Atributo autoflush Controla o comportamento do buffer quando ele estiver cheio: true executa um flush automtico e false gera uma exceo Exemplo: <%@page autoflush=true%>

Diretiva page
Atributo extends Altera a superclasse do servlet gerado Exemplo: <%@page extends=MeuServlet.class%>

Diretiva page
Atributo info Define a string de descrio do servlet gerado Ser retornada pelo mtodo getServletInfo() Exemplo: <%@page info=descrio%>

Diretiva page
Atributo errorPage Indica o nome da pgina que deve ser mostrada em caso de erro Exemplo: <%@page errorPage=URL relativa%>

Diretiva page
Atributo isErrorPage Indica se a pgina atual pode ser usada como pgina de erro O valor padro deste atributo false Exemplo: <%@page isErrorPage=true%>

Diretiva include
Usada para incluir outros arquivos em pginas JSP Possui dois formatos, o primeiro inclui arquivos em tempo de compilao e o segundo em tempo de requisio A diretiva deve aparecer no ponto em que o arquivo ser includo

Incluindo Arquivos (compilao)


Sintaxe: <%@include file=URL relativa%>
Arquivos includos podem ser arquivos JSP Se o arquivo includo mudar, todos os JSP que o utilizam devem ser recompilados

Incluindo Arquivos (requisio)


Sintaxe: <jsp:include page=URL relativa flush=true/> Os arquivos includos no podem conter comandos JSP Se o arquivo mudar, ele ser lido novamente.

Diretiva plugin
Permite a incluso de outras classes Java em JSP, como applets e beans Tem uma sintaxe semelhante a da tag applet do HTML Exemplo:
<jsp:plugin type=applet code=Dados.class width=200 height=100> </jsp:plugin>

Diretiva plugin
Para passar parmetros para a classe envolvida com o plugin utiliza-se a diretiva jsp:params dentro de jsp:plugin Exemplo:
<jsp:params> <jsp:param name=cor value = red> </jsp:params>

Diretiva plugin
Se o browser no suportar objetos pode ser mostrado texto alternativo O texto definido em jsp:fallback dentro de jsp:plugin Exemplo:
<jsp:fallback> <b>Seu browser no suporta JAVA</b> </jsp:fallback>

Exerccio
Criar arquivos JSP para cabealhos e rodap e inclu-los nos locais adequados.

Você também pode gostar