English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Sintaxe do JSP

Esta seção introduzirá simplesmente a sintaxe básica do desenvolvimento JSP.

Programa de script

O programa de script pode conter qualquer quantidade de instruções Java, variáveis, métodos ou expressões, desde que sejam válidos no linguagem de script.

A sintaxe do programa de script:

<% fragmento de código %>

Ou você também pode escrever uma declaração XML equivalente, como a seguir:

<jsp:scriptlet>
   Fragmento de código
</jsp:scriptlet>

Qualquer texto, tag HTML, elemento JSP deve ser escrito fora do programa de script.

A seguir, fornece-se um exemplo, que é também o primeiro exemplo JSP deste tutorial:

<html>
<head><title>Hello World</title></<head>
<body>
Hello World!<br/>
<%
out.println("Seu endereço IP é ") + request.getRemoteAddr());
%>
</body>
</html>

Atenção:Certifique-se de que o Apache Tomcat já está instalado em C:\apache-tomcat-7.0.2diretório e configure o ambiente de execução corretamente.

Salve o código acima no arquivo hello.jsp, coloque-o no C:\apache-tomcat-7.0.2\webapps\ROOT diretório, abra o navegador e insira http://localhost:8080/hello.jsp. Após a execução, obteremos o seguinte resultado:

Problemas de codificação de caracteres chineses

Para exibir o chinês normalmente na página, devemos adicionar o seguinte código no cabeçalho do arquivo JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">

A seguir, modificaremos o programa acima para:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程网(oldtoolbag.com)</title>
</<head>
<body>
Hello World!<br/>
<%
out.println("Seu endereço IP é ") + request.getRemoteAddr());
%>
</body>
</html>

Desta forma, o chinês pode ser exibido normalmente.

    Declaração JSP

Uma declaração de declaração pode declarar uma ou mais variáveis, métodos, para uso no código Java subsequente. No arquivo JSP, você deve declarar essas variáveis e métodos antes de usá-los.

Formato de sintaxe das declarações JSP:

<%! declaration; [ declaration; ]+ ... %>

Ou você também pode escrever uma declaração XML equivalente, como a seguir:

<jsp:declaration>
   Fragmento de código
</jsp:declaration>

Exemplo de programa:

<%! int i = 0; %> 
<%! int a, b, c; %> 
<%! Circle a = new Circle(2.0); %>

    Expressões JSP

A expressão de script contida em uma expressão JSP é convertida em String antes de ser inserida no local onde a expressão apareceu.

Como o valor da expressão será convertido em String, você pode usar a expressão em uma linha de texto sem se importar se ela for um tag HTML.

Os elementos de expressão podem conter qualquer expressão que atenda aos padrões da linguagem Java, mas não podem usar ponto e vírgula para encerrar a expressão.

Formato de sintaxe das expressões JSP:

<%= expressão %>

Da mesma forma, você também pode escrever uma declaração XML equivalente:

<jsp:expression>
   Expressão
</jsp:expression>

Exemplo de programa:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程网(oldtoolbag.com)</title>
</<head>
<body>
<p>
   A data de hoje é: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

运行后得到以下结果:

A data de hoje é: 2016-6-25 13:40:07

    Comentários JSP

Os comentários JSP têm duas principais funções: comentar código e comentar uma seção de código.

Formato de sintaxe dos comentários JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程网(oldtoolbag.com)</title>
</<head>
<body>
<%-- Essa parte do comentário não será exibida na página da web--%> 
<p>
   A data de hoje é: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

运行后得到以下结果:

A data de hoje é: 2016-6-25 13:41:26

Regras de sintaxe para usar comentários em diferentes situações:

sintaxe                descrição
                <%-- Comentários --%>                Comentários JSP, o conteúdo dos comentários não será enviado para o navegador nem será compilado
                <!-- Comentários -->                Comentários HTML, que podem ser vistos na visualização da fonte da página da web pelo navegador
                <\%                Representa a constante estática <%
                %\>                Representa a constante estática %>
                \'                As aspas simples usadas nas propriedades
                \"                As aspas duplas usadas nas propriedades

    Instruções JSP

As instruções JSP são usadas para definir propriedades relacionadas a toda a página JSP.

Formato de sintaxe da instrução JSP:

<%@ directive attribute="value" %>

Aqui há três tipos de tags de instruções:

Instruçõesdescrição
                <%@ page ... %>                Definição de propriedades dependentes da página, como linguagem de script, página de erro, necessidades de cache etc.
                <%@ include ... %>                Inclusão de outros arquivos
                <%@ taglib ... %>                Introdução à definição da biblioteca de tags, pode ser personalizada

    Ação do JSP

As etiquetas de ação do JSP usam a estrutura de sintaxe XML para controlar o motor servlet. Ele pode inserir dinamicamente um arquivo, reutilizar componentes JavaBean, redirecionar o usuário para outra página, gerar HTML relacionado a plugins Java, etc.

As etiquetas de ação têm apenas um formato de sintaxe, que rigorosamente observa os padrões XML:

<jsp:action_name attribute="value"> />

etiquetas de ação são basicamente funções pré-definidas. A tabela a seguir lista algumas etiquetas de ação JSP disponíveis:

sintaxedescrição
                jsp:include                usado para incluir recursos estáticos ou dinâmicos na página atual
                jsp:useBean                busca e inicializa um componente JavaBean
                jsp:setProperty                define o valor do componente JavaBean
                jsp:getProperty                insere o valor do componente JavaBean no output
                jsp:forward                transmite um objeto request contendo a solicitação do usuário de um arquivo JSP para outro arquivo
                jsp:plugin                usado para incluir objetos Applet e JavaBean no HTML gerado
                jsp:element                cria um elemento XML dinamicamente
                jsp:attribute                define os atributos do elemento XML criado dinamicamente
                jsp:body                define o corpo do elemento XML criado dinamicamente
                jsp:text                usado para encapsular dados de modelo

    Objetos implícitos do JSP

O JSP suporta nove variáveis automaticamente definidas, conhecidas como objetos implícitos. Uma breve introdução desses nove objetos implícitos pode ser vista na tabela a seguir:

objetodescrição
                requestHttpServletRequestexemplo da classe
                responseHttpServletResponseexemplo da classe
                outPrintWriterexemplo da classe, usado para enviar resultados para a página da web
                sessionHttpSessionexemplo da classe
                applicationServletContextexemplo da classe, relacionado ao contexto da aplicação
                configServletConfigexemplo da classe
                pageContextPageContextexemplo da classe, que fornece acesso a todos os objetos da página JSP e ao espaço de nomes
                page                semelhante ao caractere this nas classes Java
                exceçãoexceção o objeto da classe, representando o objeto de exceção correspondente na página JSP onde ocorreu o erro

    comandos de controle de fluxo

O JSP oferece suporte completo ao linguagem Java. Você pode usar APIs Java no programa JSP, inclusive criar blocos de código Java, incluindo comandos de decisão e de repetição, etc.

    判断语句

If…else块,请看下面这个实例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程(oldtoolbag.com)</title>
</<head>
<body>
<h2>IF...ELSE 示例</h2>
<% if (day == 1 | day == 7) { %>
      <p>今天是周末</p>
<% } else { %>
      <p>今天不是周末</p>
<% } %>
</body> 
</html>

运行后得到以下结果:

IF...ELSE 示例
今天不是周末

现在来看看switch…case块,与if…else块有很大的不同,它使用out.println(),并且整个都装在脚本程序的标签中,就像下面这样:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程(oldtoolbag.com)</title>
</<head>
<body>
<h2>SWITCH...CASE 示例</h2>
<% 
switch(day) {
case 0:
   out.println("星期天");
   break;
case 1:
   out.println("星期一");
   break;
case 2:
   out.println("星期二");
   break;
case 3:
   out.println("星期三");
   break;
case 4:
   out.println("星期四");
   break;
case 5:
   out.println("星期五");
   break;
default:
   out.println("星期六");
}
%>
</body> 
</html>

浏览器访问,运行后得出以下结果:

SWITCH...CASE 示例
星期三

循环语句

在JSP程序中可以使用Java的三个基本循环类型:for,while,和 do…while。

让我们来看看for循环的实例,以下输出的不同字体大小的"基础教程网":

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<%! int fontSize; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程网(oldtoolbag.com)</title>
</<head>
<body>
<h2>For 循环示例</h2>
<% for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
   <font color="green" size="<%= fontSize %>">
    Tutorial Básico
   </font><br />
<%}%>
</body> 
</html>

运行后得到以下结果:

将上例改用 while 循环来写:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<%! int fontSize=0; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程(oldtoolbag.com)</title>
</<head>
<body>
<h2>Exemplo de Loop While</h2>
<%while ( fontSize <= 3){ %>
   <font color="green" size="<%= fontSize %>">
    Tutorial Básico
   </font><br />
<%fontSize++;%>
<%}%>
</body> 
</html>

Acesso do navegador, o resultado da saída é (fontSize inicializado em 0, então uma linha a mais foi output):

    Operadores JSP

O JSP suporta todos os operadores lógicos e aritméticos do Java.

A tabela a seguir lista os operadores comuns do JSP, de alto para baixo prioridade:

CategoriaOperadorAssociativo
                Pós-fixo                ( ) [] . (operador de ponto)                De esquerda para direita
                Unário                ++ - - ! ~                De direita para esquerda
                Multiplicativo                * / %                 De esquerda para direita
                Aditivo                + -                 De esquerda para direita
                Deslocamento                >> >>> <<                  De esquerda para direita 
                Relacional                > >= < <=                  De esquerda para direita
                Igual/Diferente                == !=                 De esquerda para direita
                Bit e                &                 De esquerda para direita
                Bit xor                ^                 De esquerda para direita
                Bit ou                |                 De esquerda para direita
                Lógico e                &&                 De esquerda para direita
                Lógico ou                ||                 De esquerda para direita
                Condição                ?:                 De direita para esquerda
                Atribuição                = += -= *= /= %= >>= <<= &= ^= |= |=                 De direita para esquerda
                Vírgula                 ,                 De esquerda para direita 

    Literais JSP

O linguagem JSP define os seguintes literais:

  •             Boolean (boolean): true e false;

  •             Int (int): Como no Java;

  •             Float (float): Como no Java;

  •             String (string): Começa e termina com uma aspa simples ou dupla;

  •             Null: null.