Você está na página 1de 3

Diretrizes do JSP

Introduo
No Captulo 1, vimos que existem dois tipos de tags: Scripting-oriented e XML-based. Neste captulo estudaremos melhor os dois tipos de tags e veremos como a linguagem Scripting lhe permite acessar e modificar propriedades dos seus servlets (ou beans).

Diretrizes do JSP
A linguagem Script padro em uma pgina JSP naturalmente Java. Os servlets tambm so escritos em Java puro. Entramos novamente no assunto sobre a diferena entre JSP e servlets. A diferena que o JSP, apesar de ser compilado em Java puro (exatamente como um servlet), aceita linguagens Scripts e tags HTML em seu contedo. Os servlets no aceitam linguagens Scripting nem tags HTML. O nico jeito de se manipular tags Scripting via servlets utilizando os objetos response e request. Mas essa uma outra histria. O fato que os JSP's so compilados on-th-fly, ou seja antes de mais nada so interpretados e ento compilados em servlets. Por ora sabemos ento que JavaServerPages (JSP) so pginas que se comportam exatamente como servlets. E que servlets so classes do Java utilizadas para criar componentes para o servidor. A diferena que voc pode criar um componente (objeto) que cuide do acesso aos dados e criar ento uma pgina JSP (interface) que apresente um formulrio e acione o componente para cadastrar informaes no banco de dados. Concluindo, o interpretador do Java compila tanto o servlet como a pgina JSP em servlets. Dessa forma, o JSP transforma-se em uma poderosa ferramenta! Uma vez que a prpria pgina JSP um servlet, ento podemos criar formulrios para acessar e modificar at os mtodos (pblicos) de objetos ordinrios, como Beans, ou a pgina em si! Alm de manipular excees causadas por erros. Enfim, para um JSP se comportar como um servlet, algumas tags so diretivas, ou seja, servem para uma nica finalidade: orientar o interpretador a compilar o JSP em servlet. Temos ento as diretrizes do JSP que definem as regras para organizar a linguagem Scripting do JSP nos padres de compilao dos servlets: Expresses <%= expresso %> Esta tag permite imprimir diretamente no HTML ou passar expresses para outras funes ou tags. Scriptlets <% cdigo %> Esta tag permite que voc utilize linguagens Scripts para interagir com a pgina. O que estiver dentro destas tags ser executado pelo _JspService. Declaraes <%! declarao %> Tag que permite declaraes de variveis de instncia, fora de quaisquer funes ou mtodos existentes (portanto fora do _JspService). Diretivas <%@ diretiva atributo1="valor1" atributoN="valorN" %> Tags que processam informaes especiais que devem ser explicitamente declaradas. Estas tags podem mudar configuraes de diversos objetos, carregar classes, importar arquivos etc.

Expresses
Tags de expresses <%= valor %> so utilizadas para escrever contedo dinmico direto no cdigo, antes mesmo de ser compilado. Ou seja, neste tipo de construo, no se usa ponto-e-vrgula (;). Isso se d pois quem vai colocar o ponto-e-vrgula o interpretador. Ento a seguinte construo: <%= "Renato!" %> Na verdade interpretada e passada para o compilador da seguinte forma: out.println("Renato!"); E no HTML o resultado final seria: Renato! Resumindo, esta diretiva permite escrever os resultados das expresses contidas entre as tags <%= e %>.

Scriptlets
Estas tags delimitam um cdigo genrico que pode conter um Script qualquer, inclusive declaraes (privadas). Scriptlets no podem entretanto imprimir expresses diretamente na pgina JSP. A sintaxe usual da tag Scriptlet : <% cdigo %> Scriptlets tambm podem ser escritas atravs de tags XML-based: <jsp:scriptlet> scriptlet </jsp:scriptlet> As tags Scriptlets tambm podem quebrar o cdigo Java para se mesclarem com o HTML, por exemplo: <% if (variavel == null) { %> <p>Erro! <% } else { %> <p>OK!<br> Varivel: <%=variavel%> <% } %> Note que os comandos normais esto dentro das tags Scriptlets, mas para imprimir o valor da varivel no HTML usada uma tag de expresses.

Declaraes

As tags de declaraes so usadas para definir variveis e mtodos especficos para uma pgina JSP. A sintaxe para se declarar uma varivel : <%! variavel = valor; %> Que tambm pode ser escrita em tags XML-based: <jsp:declaration> variavel = valor; </jsp:declaration> Ao se criar uma declarao, tenha em mente que outros requests estaro criando instncias da sua pgina JSP. Ou seja, as declaraes so criadas em todas as instncias abertas. Ao modificar o valor de uma varivel de instncia, voc estar modificando o valor de todas as outras instncias. Para criar variveis independentes para cada instncia, utilize a tag Scriptlet: <% variavel = valor; %> Existem tambm as variveis estticas, usadas para declarar variveis de classes, que so compartilhadas entre todas as instncias das classes. <%! static public int counter=0; %>

Variveis Pr-definidas
As variveis pr-definidas so objetos implcitos, que existem enquanto a pgina JSP existir. Estas variveis no podem ser usadas em declaraes, apenas em Scriptlets e expresses. Algumas das principais variveis pr-definidas: request Esta a varivel que a classe HttpServletResponse cria contendo os parmetros passados pelo http. Voc pode ter acesso tambm ao tipo do request (GET ou POST), alm do cabealho da pgina (cookies etc.). response Esta varivel a responsvel pela resposta ao browser do cliente, criada pela classe HttpServletResponse. out Varivel gerada pela classe PrintWriter utilizada para enviar dados para o cliente, utilizada em tags Scriptlets, em substituio das tags de expresses. session Esta varivel criada pela classe HttpSession invocada pelo request. Este tipo de varivel pode ficar guardada enquanto existir uma sesso de usurio. application Esta varivel criada em ServletContext, obtido via getServletConfig().getContext(). Diferentemente das variveis session, as variveis de aplicao so compartilhadas por todos os clientes.

/-----/ Tutorial retirado da Serial Link Millenium 3000 / www.seriallink.com / Desenvolvido por Serial Link /------

Você também pode gostar