JSP - Sintaxe
Neste capítulo, discutiremos a sintaxe em JSP. Vamos entender o uso básico da sintaxe simples (ou seja, elementos) envolvida com o desenvolvimento JSP.
Elementos de JSP
Os elementos do JSP foram descritos abaixo -
The Scriptlet
Um scriptlet pode conter qualquer número de instruções da linguagem JAVA, declarações de variáveis ou métodos ou expressões que são válidas na linguagem de script de página.
A seguir está a sintaxe do Scriptlet -
<% code fragment %>
Você pode escrever o equivalente em XML da sintaxe acima da seguinte maneira -
<jsp:scriptlet>
code fragment
</jsp:scriptlet>
Qualquer texto, tags HTML ou elementos JSP que você escrever deve estar fora do scriptlet. A seguir está o exemplo simples e primeiro para JSP -
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>
NOTE - Supondo que o Apache Tomcat esteja instalado em C: \ apache-tomcat-7.0.2 e seu ambiente seja configurado de acordo com o tutorial de configuração do ambiente.
Vamos manter o código acima no arquivo JSP hello.jsp e colocar este arquivo em C:\apache-tomcat7.0.2\webapps\ROOTdiretório. Navegue pelo mesmo usando URLhttp://localhost:8080/hello.jsp. O código acima irá gerar o seguinte resultado -
Declarações JSP
Uma declaração declara uma ou mais variáveis ou métodos que você pode usar no código Java posteriormente no arquivo JSP. Você deve declarar a variável ou método antes de usá-lo no arquivo JSP.
A seguir está a sintaxe para declarações JSP -
<%! declaration; [ declaration; ]+ ... %>
Você pode escrever o equivalente em XML da sintaxe acima da seguinte maneira -
<jsp:declaration>
code fragment
</jsp:declaration>
A seguir está um exemplo para declarações JSP -
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
Expressão JSP
Um elemento de expressão JSP contém uma expressão de linguagem de script que é avaliada, convertida em uma String e inserida onde a expressão aparece no arquivo JSP.
Como o valor de uma expressão é convertido em String, você pode usar uma expressão em uma linha de texto, esteja ou não marcada com HTML, em um arquivo JSP.
O elemento de expressão pode conter qualquer expressão que seja válida de acordo com a Especificação da linguagem Java, mas você não pode usar um ponto e vírgula para encerrar uma expressão.
A seguir está a sintaxe da expressão JSP -
<%= expression %>
Você pode escrever o equivalente em XML da sintaxe acima da seguinte maneira -
<jsp:expression>
expression
</jsp:expression>
O exemplo a seguir mostra uma expressão JSP -
<html>
<head><title>A Comment Test</title></head>
<body>
<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
</body>
</html>
O código acima irá gerar o seguinte resultado -
Today's date: 11-Sep-2010 21:24:25
Comentários JSP
O comentário JSP marca o texto ou as instruções que o contêiner JSP deve ignorar. Um comentário JSP é útil quando você deseja ocultar ou "comentar" uma parte de sua página JSP.
A seguir está a sintaxe dos comentários JSP -
<%-- This is JSP comment --%>
O exemplo a seguir mostra os Comentários JSP -
<html>
<head><title>A Comment Test</title></head>
<body>
<h2>A Test of Comments</h2>
<%-- This comment will not be visible in the page source --%>
</body>
</html>
O código acima irá gerar o seguinte resultado -
A Test of Comments
Há um pequeno número de construções especiais que você pode usar em vários casos para inserir comentários ou caracteres que, de outra forma, seriam tratados de maneira especial. Aqui está um resumo -
S.No. | Sintaxe e propósito |
---|---|
1 | <%-- comment --%> Um comentário JSP. Ignorado pelo mecanismo JSP. |
2 | <!-- comment --> Um comentário HTML. Ignorado pelo navegador. |
3 | <\% Representa estático <% literal. |
4 | %\> Representa%> literal estático. |
5 | \' Uma aspa simples em um atributo que usa aspas simples. |
6 | \" Aspas duplas em um atributo que usa aspas duplas. |
Diretivas JSP
Uma diretiva JSP afeta a estrutura geral da classe de servlet. Geralmente tem o seguinte formato -
<%@ directive attribute="value" %>
Existem três tipos de tag diretiva -
S.No. | Diretriz e descrição |
---|---|
1 | <%@ page ... %> Define atributos dependentes de página, como linguagem de script, página de erro e requisitos de buffer. |
2 | <%@ include ... %> Inclui um arquivo durante a fase de tradução. |
3 | <%@ taglib ... %> Declara uma biblioteca de tags, contendo ações personalizadas, usadas na página |
Explicaríamos a diretiva JSP em um capítulo separado JSP - Diretivas
Ações JSP
Uso de ações JSP constructsna sintaxe XML para controlar o comportamento do mecanismo de servlet. Você pode inserir um arquivo dinamicamente, reutilizar componentes JavaBeans, encaminhar o usuário para outra página ou gerar HTML para o plug-in Java.
Existe apenas uma sintaxe para o elemento Action, uma vez que está em conformidade com o padrão XML -
<jsp:action_name attribute="value" />
Os elementos de ação são basicamente funções predefinidas. A tabela a seguir lista as ações JSP disponíveis -
S.No. | Sintaxe e propósito |
---|---|
1 | jsp:include Inclui um arquivo no momento em que a página é solicitada. |
2 | jsp:useBean Encontra ou instancia um JavaBean. |
3 | jsp:setProperty Define a propriedade de um JavaBean. |
4 | jsp:getProperty Insere a propriedade de um JavaBean na saída. |
5 | jsp:forward Encaminha o solicitante para uma nova página. |
6 | jsp:plugin Gera código específico do navegador que cria uma tag OBJECT ou EMBED para o plug-in Java. |
7 | jsp:element Define elementos XML dinamicamente. |
8 | jsp:attribute Define o atributo do elemento XML definido dinamicamente. |
9 | jsp:body Define o corpo do elemento XML definido dinamicamente. |
10 | jsp:text Usado para escrever texto de modelo em páginas e documentos JSP. |
Explicaríamos as ações JSP em um capítulo separado JSP - Ações
Objetos JSP Implícitos
JSP suporta nove variáveis definidas automaticamente, que também são chamadas de objetos implícitos. Essas variáveis são -
S.No. | Objeto e descrição |
---|---|
1 | request Isto é o HttpServletRequest objeto associado à solicitação. |
2 | response Isto é o HttpServletResponse objeto associado à resposta ao cliente. |
3 | out Isto é o PrintWriter objeto usado para enviar saída ao cliente. |
4 | session Isto é o HttpSession objeto associado à solicitação. |
5 | application Isto é o ServletContext objeto associado ao contexto do aplicativo. |
6 | config Isto é o ServletConfig objeto associado à página. |
7 | pageContext Isso encapsula o uso de recursos específicos do servidor, como melhor desempenho JspWriters. |
8 | page Isso é simplesmente um sinônimo para thise é usado para chamar os métodos definidos pela classe servlet traduzida. |
9 | Exception o Exception objeto permite que os dados de exceção sejam acessados por JSP designado. |
Explicaríamos os Objetos implícitos JSP em um capítulo separado JSP - Objetos implícitos .
Declarações de controle-fluxo
Você pode usar todas as APIs e blocos de construção de Java em sua programação JSP, incluindo instruções de tomada de decisão, loops, etc.
Declarações de tomada de decisão
o if...else bloco começa como um Scriptlet comum, mas o Scriptlet é fechado em cada linha com o texto HTML incluído entre as tags Scriptlet.
<%! int day = 3; %>
<html>
<head><title>IF...ELSE Example</title></head>
<body>
<% if (day == 1 || day == 7) { %>
<p> Today is weekend</p>
<% } else { %>
<p> Today is not weekend</p>
<% } %>
</body>
</html>
O código acima irá gerar o seguinte resultado -
Today is not weekend
Agora olhe para o seguinte switch...case bloco que foi escrito de forma um pouco diferente usando out.println() e dentro do Scriptletas -
<%! int day = 3; %>
<html>
<head><title>SWITCH...CASE Example</title></head>
<body>
<%
switch(day) {
case 0:
out.println("It\'s Sunday.");
break;
case 1:
out.println("It\'s Monday.");
break;
case 2:
out.println("It\'s Tuesday.");
break;
case 3:
out.println("It\'s Wednesday.");
break;
case 4:
out.println("It\'s Thursday.");
break;
case 5:
out.println("It\'s Friday.");
break;
default:
out.println("It's Saturday.");
}
%>
</body>
</html>
O código acima irá gerar o seguinte resultado -
It's Wednesday.
Demonstrações de Loop
Você também pode usar três tipos básicos de blocos de loop em Java: for, while, and do…while blocos em sua programação JSP.
Vejamos o seguinte for exemplo de loop -
<%! int fontSize; %>
<html>
<head><title>FOR LOOP Example</title></head>
<body>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
<font color = "green" size = "<%= fontSize %>">
JSP Tutorial
</font><br />
<%}%>
</body>
</html>
O código acima irá gerar o seguinte resultado -
JSP Tutorial
JSP Tutorial
JSP Tutorial
O exemplo acima pode ser escrito usando o while loop da seguinte forma -
<%! int fontSize; %>
<html>
<head><title>WHILE LOOP Example</title></head>
<body>
<%while ( fontSize <= 3){ %>
<font color = "green" size = "<%= fontSize %>">
JSP Tutorial
</font><br />
<%fontSize++;%>
<%}%>
</body>
</html>
O código acima irá gerar o seguinte resultado -
JSP Tutorial
JSP Tutorial
JSP Tutorial
Operadores JSP
JSP suporta todos os operadores lógicos e aritméticos suportados por Java. A tabela a seguir lista todos os operadores com a precedência mais alta aparecem na parte superior da tabela, aqueles com a mais baixa aparecem na parte inferior.
Em uma expressão, os operadores de precedência mais altos serão avaliados primeiro.
Categoria | Operador | Associatividade |
---|---|---|
Postfix | () []. (operador ponto) | Da esquerda para direita |
Unário | ++ - -! ~ | Direita para esquerda |
Multiplicativo | * /% | Da esquerda para direita |
Aditivo | + - | Da esquerda para direita |
Mudança | >> >>> << | Da esquerda para direita |
Relacional | >> = <<= | Da esquerda para direita |
Igualdade | ==! = | Da esquerda para direita |
E bit a bit | E | Da esquerda para direita |
XOR bit a bit | ^ | Da esquerda para direita |
OR bit a bit | | | Da esquerda para direita |
E lógico | && | Da esquerda para direita |
OR lógico | || | Da esquerda para direita |
Condicional | ?: | Direita para esquerda |
Tarefa | = + = - = * = / =% = >> = << = & = ^ = | = | Direita para esquerda |
Vírgula | , | Da esquerda para direita |
Literais JSP
A linguagem de expressão JSP define os seguintes literais -
Boolean - verdadeiro e falso
Integer - como em Java
Floating point - como em Java
String- com aspas simples e duplas; "tem escape como \", 'tem escape como \' e \ tem escape como \\.
Null - nulo