Você está na página 1de 4

Tipos de arquivo JSP

Tipo de arquivo JavaServer Page (JSP) Fragmento/Include JSP Arquivo de Tag Fragmento/Include Tag Descrio Arquivo de uma pgina JSP, que pode ter sintaxe JSP tradicional ou sintaxe XML Arquivo com fragmento ou trecho de pgina, para ser inserido em uma pgina JSP atravs de include JSP 2.0: Arquivo de definio de biblioteca de custom tags (taglib) JSP 2.0: Arquivo com fragmento ou trecho para ser inserido em um arquivo de Tab atravs de include Extenses comuns .jsp, .jspx .jspf, .jspi, .jsp_inc .tag, .tagx .tagf, .tagi, .tag_inc

Fases JSP
Fase Traduo Requisio Ocorre uma vez a cada ... Pgina nova/modificada Requisio pgina Descrio Validar sintaxe JSP, converter a pgina JSP em uma classe servlet (.java) e compil-la (.class) Execuo de cada requisio, processada atravs de uma instncia da classe gerada

Elementos JSP
Categ. Diretiva Tipo Page Include Taglib Descrio Define propriedades gerais em um arquivo JSP (ver quadro especfico) <%@ include file="URL_relativo" %> <jsp:directive.include file="URL_rel" /> Substitui texto/cdigo lido do arquivo @ directive.include (URL relativo contexto) na traduo < xmlns:prefixoTaglib="URI" > <%@ taglib uri="..." prefix="" %> Declara tag library e associa prefixo @ <%@ taglib tagdir= @ < xmlns:prefixo="urn:jsptld:/.tld" > (JSP 2.0: tagdir trata diretrio com "/WEB-INF/tags[/]" prefix="" %> < xmlns:prefixo="urn:jsptagdir:/" > arquivos de tag como biblioteca) <%@ tag atributo="valor" ... %> @ <jsp:directive.tag atributo="valor" ... /> directive.tag JSP2.0: Define propriedades em um arquivo tag (ver quadro especfico) <%@ attribute name="nome" <jsp:directive.attribute idem JSP /> JSP 2.0: Em um arquivo de tag, @ directive.attribute required="true|false" declara um atributo da tag definida; fragment="true|false" o tipo padro java.lang.String rtexprvalue="true|false" type="classe" description="" %> <%@ variable name-given="nome" <jsp:directive.variable idem JSP /> JSP 2.0: Declara uma varivel de @ directive.variable alias="atr" variable-class="classe" EL exposta para a pgina declare="true|false" chamadora, em arquivo de tag; a scope="AT_BEGIN|AT_END|NESTED" classe padro java.lang.String description="" %> <%! ... %> <jsp:declaration ... </jsp:declaration> Declara variveis e mtodos declaration> ! declaration <% ... %> <jsp:scriptlet ... </jsp:scriptlet> scriptlet> Fragmento de cdigo Java, a ser scriptlet executado durante a requisio <%= ... %> <jsp:expression ... </jsp:expression> expression> Expresso avaliada como String e = expression ento enviada para a sada (out) <jsp:... ... /> Aes pr-definidas disponveis para (ver quadros especficos) <jsp:... ...> ... </jsp:...> uso durante a requisio <prefixo:tag ... /> Novas aes adicionadas pgina <prefixo:tag ...> ... </prefixo:tag> c/ mecanismo de extenso de tags <%-- ... ---%> Ignorado, no enviado p/ sada (out) -...HTML esttico... <jsp:text ...HTML esttico... </jsp:text> text> Texto da pgina, enviado para out text Mrcio dvila, www.mhavila.com.br, 2003-2011, rev5 Pgina 1 de 4 Sintaxe JSP <%@ page atributo="valor" %> @
1

Sintaxe XML <jsp:directive.page atributo="valor" ... /> directive.page directi

Tag Attribute

Variable

Cdigo

Declarao Scriptlet Expresso

Ao

Padro

Custom (taglibs) Comentrio Texto template

Referncia Rpida JSP 1.2/2.x

Objetos implcitos JSP (variveis pr-definidas)


Objeto Implcito request response pageContext session application out config page exception Tipo (classe/interface) javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse javax.servlet.jsp.PageContext javax.servlet.http.HttpSession javax.servlet.ServletContext javax.servlet.jsp.JspWriter javax.servlet.ServletConfig java.lang.Object java.lang.Throwable Escopo request page page session application page page page page Descrio Requisio corrente, como o 1 parmetro do mtodo service( ) Resposta corrente, como o 2 parmetro do mtodo service( ) Contexto para esta pgina JSP Contexto da sesso para o cliente HTTP (se houver) Contexto servlet ao qual esta pgina JSP pertence Fluxo de sada da resposta ServletConfig para esta pgina JSP como o retornado por getServletConfig( ) Instncia da classe que implementa esta pgina JSP Exceo encaminhada para esta pgina de erro (isErrorPage="true")

Diretivas Page (P) e Tag (T)


Atributo import="importLista" session="true|false" errorPage="url_erro" isErrorPage="true|false" buffer="none|sizekb" autoFlush="true|false" contentType="tipo/subtipo" pageEncoding="peinfo" info="texto_info" extends="pacote.Classe" language="java" isThreadSafe="true|false" isELIgnored="true|false" display-name="" body-content="scriptless| tagdependent|empty" dynamic-attributes="mapa" small-icon="URL_relativo" large-icon="URL_relativo" description="" example=""
deferredSyntaxAllowedAsLiteral
1

Descrio Declarao de imports Java, lista de imports (classe ou pacote.*) separados por vrgula. Padro: java.lang.*, javax.servlet.*, javax.servlet.jsp.*, javax.servlet.http.* Indica se a pgina requer (true) ou no (false) participar de uma sesso HTTP e acessar o objeto implcito session Define URL destino para forward se levantada exceo no tratada na pgina. Prevalece sobre pg. erro em web.xml Se true, indica que esta pgina JSP tratador de excees, referenciada pelo errorPage de outros JSP, e torna disponvel a varivel implcita exception que recebe a exceo levantada pela pgina origem Controla uso de buffer na sada (tamanho em Kbytes) ou escrita direta sem buffer (none). Padro: 8kb (ou mais) Especifica ao quando o buffer de sada enche: descarregar automaticamente (true) ou levantar exceo (false) Tipo MIME, segundo padres IANA (tipo/subtipo; charset). Padro: "text/html", ou "text/xml" se JSP sintaxe XML Codificao de caracteres (charset) da pgina, tem prioridade sobre o definido em contentType. Padro: ISO-8859-1 Texto (String) arbitrrio, pode depois ser lido na implementao da classe com o mtodo Servlet.getServletInfo( ) Classe Java para ser a superclasse (pai) da classe que implementa o JSP gerada na traduo. Raramente usado Define a linguagem de programao usada nas tags de script. Prev extensibilidade, mas hoje s permitido Java Como SingleThreadModel foi deprecado na API Servlet 2.4, deve-se evitar usar este atributo como false JSP 2.0: Define se expresses na linguagem de expresso (EL) devem ser ignoradas (true) ou avaliadas (false) na traduo. Uma expresso EL tem a forma ${ ... } ou #{ ... } e pode ocorrer em atributos dinmicos e em texto template JSP 2.0: Um nome (em geral curto) a ser exibido por ferramentas de desenvolvimento para identificao JSP 2.0: Prov informao sobre o contedo do corpo desta tag JSP 2.0: Indica se esta tag suporta atributos adicionais com nomes dinmicos; o atributo da pgina fornecido receber um Map contendo os nomes e valores dos atributos dinmicos fornecidos durante a chamada da tag JSP 2.0: Caminho (path) relativo (ao contexto ou ao arquivo de tag) do arquivo de imagem a ser exibida como cone pequeno em ferramentas de desenvolvimento, tipicamente em uma paleta JSP 2.0: Path relativo (ao contexto ou ao arquivo de tag) da imagem exibida como cone grande em ferramentas JSP 2.0: Texto arbitrrio que descreve esta tag JSP 2.0: Texto descrevendo um exemplo de uso desta tag JSP 2.1: ="true|false", permite (ou no) que a sequncia #{ seja usada como literal (compatvel com JSP 2.0) JSP 2.1: ="true|false", remove linhas em branco na sada HTML, normalmente deixadas no lugar de tags JSP

trimDirectiveWhitespaces
1

Tipologia: Termo sublinhado = valor padro (default). Termo itlico = valor ou expresso livre, definido pelo programador. Trecho [ entre colchetes ] = opcional. Mrcio dvila, www.mhavila.com.br, 2003-2011, rev5 Pgina 2 de 4

Referncia Rpida JSP 1.2/2.x

Aes Padro JSP


Ao JSP 1.2 root Sintaxe(s)
1

Dinmico

useBean

setProperty

getProperty param include forward plugin params fallback

<?xml version="1.0" ... ?> <jsp:root version="1.2|2.0" root xmlns:jsp="http://java.sun.com/JSP/Page" [ xmlns:prefixoTaglib="URI" ... ] > xmlns ... </jsp:root root> root <jsp:useBean id="nomeVarivel" class="pacote.classe" [ type="superclasse|interface" ] useBean scope="page|request|session|application" /> <jsp:useBean id="nomeVarivel" beanName="pacote.classe" type="..." scope="..."> useBean <jsp:useBean ...> ...trecho apenas ao instanciar... </jsp:useBean useBean> useBean useBean <jsp:setProperty name="beanId" property="*" /> setProperty <jsp:setProperty name="beanId" property="propriedade" param="parmetro" /> setProperty <jsp:setProperty name="beanId" property="propriedade" value="string" /> setProperty <jsp:getProperty name="beanId" property="propriedade" /> getProperty <jsp:param name="nomeParmetro" value="valor" /> param <jsp:include page="URLrelativo" flush="true|false" /> include <jsp:include page="URLrelativo" flush="..."> <jsp:param ... /> ... </jsp:include include> include include <jsp:forward page="URLrelativo" /> forward <jsp:forward page="URLrelativo"> <jsp:param ... /> ... </jsp:forward forward forward> forward <jsp:plugin type="bean|applet" code="classe" codebase="diretrio" ... > plugin [ <jsp:params <jsp:param ... /> ... </jsp:params ] params> params> params params [ <jsp:fallback ...texto se o plugin no iniciar... </jsp:fallback ] fallback> fallback> fallback fallback </jsp:plugin plugin> plugin Sintaxe(s)
1

beanName

value

value page page height, width

Descrio Elemento raiz de um JSP em sintaxe XML, em geral inclui atributos namespace (xmlns) declarando taglibs JSP usadas no documento Localiza ou instancia um bean com o nome dado, dentro do escopo desejado Atribui valor (fixo ou vindo de parmetro) p/ propriedade(s) bean Retorna prop. do bean Define um parmetro Inclui recurso (URL relativo ao JSP/site) Encaminha request p/ URL (rel. ao JSP/site) Executa um applet ou bean como plug-in

Ao JSP 2.x element attribute body

output invoke

doBody

<jsp:element name="..." /> element <jsp:element name="..."> ... </jsp:element element> element element <ao ou custom tag> [ <jsp:attribute name="..." [ trim="true|false" ] [ omit="true|false" ] > attribute ...valor... </jsp:attribute ... ] attribute> attribute [ <jsp:body ... </jsp:body ] body> body> body body </ao ou custom tag> <jsp:output [ omit-xml-declaration="true|false" ] [ doctype-root-element="..." output doctype-pulblic="..." doctype-system="..." ] /> <jsp:invoke fragment="..." /> invoke <jsp:invoke fragment="..." var="varivel" [ scope="..." ] /> invoke <jsp:invoke fragment="..." varReader="varivel" [ scope="..." ] /> invoke <jsp:doBody /> doBody <jsp:doBody var="varivel" [ scope="..." ] /> doBody <jsp:doBody varReader="varivel" [ scope="..." ] /> doBody

Dinmico name

Descrio Define dinamicamente uma tag de elemento XML Define atributo(s) e corpo de uma ao padro JSP ou custom tag. JSP 2.2: atributo opcional omit Modifica propriedades da sada JSP (out) Usado em arquivos de tag, para invocar um arquivo de fragmento de tag (tagf) Usado em arquivos de tag, para imprimir ou acessar o contedo no corpo da tag

Um atributo dinmico (request-time) pode ter seu valor dado por expresso avaliada durante a requisio: <%= expresso %>, %= expresso %, ${ expresso }, #{ expresso }. Referncia Rpida JSP 1.2/2.x Mrcio dvila, www.mhavila.com.br, 2003-2011, rev5 Pgina 3 de 4

JSP Expression Language (EL) Objetos Map implcitos


EL Map pageScope requestScope sessionScope applicationScope param paramValues header headerValues cookie initParam Mapeia Nome de ... Atributo no escopo da pgina Atributo no escopo da requisio Atributo no escopo da sesso Atributo no escopo da aplicao Parmetro da requisio Parmetro da requisio Cabealho da requisio Cabealho da requisio Cookie Parmetro de inicializao contexto Para seu ... valor valor valor valor valor nico String String[] de valores valor nico String String[] de valores objeto Cookie valor String Correspondente na API PageContext.getAttribute(String nome) ServletRequest.getAttribute(String nome) HttpSession.getAttribute(String nome) ServletContext.getAttribute(String nome) ServletRequest.getParameter(String nome) ServletRequest.getParameterValues(String nome) HttpServletRequest.getHeader(String nome) HttpServletRequest.getHeaders(String nome), como String[] Primeiro cookie em HttpServletRequest.getCookies() c/ o nome dado ServletContext.getInitParameter(String nome)

Java Standard Tag Libraries (JSTL)


rea Core (recursos fundamentais) Formatao e internacionalizao XML (processamento de XML) SQL (acessar BDs relacionais) Funes (que estendem recursos da EL) URI JSTL 1.0 (JSP 1.2) http://java.sun.com/jstl/core http://java.sun.com/jstl/fmt http://java.sun.com/jstl/xml http://java.sun.com/jstl/sql URI JSTL 1.1 (JSP 2.0) e 1.2 (JSP 2.1) http://java.sun.com/jsp/jstl/core http://java.sun.com/jsp/jstl/fmt http://java.sun.com/jsp/jstl/xml http://java.sun.com/jsp/jstl/sql http://java.sun.com/jsp/jstl/functions Prefixo usual c fmt x sql fn

Verses e Especificaes JCP (JSR)


Plataforma Java EE Verso JSR J2EE 1.3 58, set/2001 J2EE 1.4 Java EE 5 Java EE 6 151, nov/2003 244, mai/2006 316, dez/2009 Verso 2.3 2.4 2.5 3.0 Servlet JSR 53, set/2001 154, nov/2003 154 MR, mai/2006 154 MR2, set/2007 315, dez/2009 315 MR, mar/2011 JSP Verso 1.2 2.0 2.1 2.2 JSR 53, set/2001 152, nov/2003 245, mai/2006 245 MR, dez/2009 Verso 1.0 1.1 1.2 1.2 JSTL JSR 52, jul/2002 52 MR, nov/2003 52 MR2, mai/2006 Verso 1.0 1.1 1.2 2.0 JSF JSR 127, mar/2004 127 FR2, mai/2004 252, mai/2006 252 MR, dez/2006 314, jul/2009 314 MR, jul/2010 314 MR2, nov/2010

Notas: A referncia de sintaxe completa e tutoriais da tecnologia JSP 1.2 e 2.0 podem ser encontrados em http://java.sun.com/products/jsp/docs.html. A documentao de referncia das bibliotecas de tags padro JSTL pode ser encontrada em http://java.sun.com/products/jsp/jstl/reference/api/. O ndice das tecnologias componentes da plataforma Java EE pode se encontrado em http://www.oracle.com/technetwork/java/javaee/tech/index.html. Um destaque nas especificaes JSP, JSTL e JSF para a plataforma Java EE 5 foi a definio de uma Linguagem de Expresso (EL) Unificada. Veja http://java.sun.com/products/jsp/reference/techart/unifiedEL.html, http://java.sun.com/javaee/5/docs/tutorial/doc/bnahq.html. Novidades da JSP 2.1 (Java EE 5) so resumidas em http://java.sun.com/developer/technicalArticles/J2EE/jsp_21/ e da JSTL 1.2 em http://java.sun.com/developer/technicalArticles/J2EE/jstl/, por Pierre Delisle e Jennifer Ball, fevereiro 2006. Novidades da JSP 2.2 (2.1 Maintenance Release) em http://www.oracle.com/technetwork/java/javaee/jsp/index.html. Veja tambm: JSP 2.0 XML Cheat Sheet, em http://ndpsoftware.com/JSPXMLCheatSheet.html, por NDP Software. Referncia Rpida JSP 1.2/2.x Mrcio dvila, www.mhavila.com.br, 2003-2011, rev5 Pgina 4 de 4