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

JSP 语法

Cette section présentera simplement la syntaxe de base du développement JSP.

Programme de script

Le programme de script peut contenir une quantité quelconque d'instructions Java, de variables, de méthodes ou d'expressions, tant qu'elles sont valides dans le langage de script.

La syntaxe de la programmation de script :

<% Code fragment %>

Ou, vous pouvez également écrire une expression XML équivalente, comme suit :

<jsp:scriptlet>
   Fragment de code
</jsp:scriptlet>

Tous les textes, les balises HTML, les éléments JSP doivent être écrits à l'extérieur du programme de script.

Voici un exemple, qui est également le premier exemple JSP de ce tutoriel :

<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
out.println("Votre adresse IP est \"" + request.getRemoteAddr());
%>
</body>
</html>

Remarque :Assurez-vous que Apache Tomcat est installé à C:\apache-tomcat-7.0.2sous-répertoire et assurez-vous que l'environnement d'exécution est correctement configuré.

Enregistrez le code suivant dans hello.jsp, puis placez-le dans C:\apache-tomcat-7.0.2\webapps\ROOT sous-répertoire, ouvrez le navigateur et saisissez l'adresse http: dans la barre d'adresse ://localhost:8080/hello.jsp. Après exécution, nous obtenons le résultat suivant :

Problème de codage de caractères chinois

Si nous voulons afficher le chinois normalement sur la page, nous devons ajouter le code suivant dans l'en-tête du fichier JSP :

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

Nous allons modifier le programme ci-dessus en suivant:

<%@ 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("Votre adresse IP est \"" + request.getRemoteAddr());
%>
</body>
</html>

De cette manière, le chinois peut être affiché normalement.

    Déclaration JSP

Une déclaration de statement peut déclarer une ou plusieurs variables, méthodes, pour être utilisées dans le code Java ultérieur. Dans le fichier JSP, vous devez d'abord déclarer ces variables et méthodes avant de pouvoir les utiliser.

Format de syntaxe des déclarations JSP :

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

Ou, vous pouvez également écrire une expression XML équivalente, comme suit :

<jsp:declaration>
   Fragment de code
</jsp:declaration>

Exemple de programme :

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

    Expression JSP

L'expression de script incluse dans une expression JSP est d'abord transformée en String, puis insérée à l'endroit où l'expression apparaît.

Puisque la valeur de l'expression est transformée en String, vous pouvez utiliser l'expression dans une ligne de texte sans vous soucier de savoir si elle est une balise HTML.

Les éléments d'expression peuvent contenir n'importe quel expression conforme aux normes du langage Java, mais ne peuvent pas utiliser des points-virgules pour terminer l'expression.

Format de syntaxe des expressions JSP :

<%= expression %>

De même, vous pouvez également écrire une expression XML équivalente :

<jsp:expression>
   Expression
</jsp:expression>

Exemple de programme :

<%@ 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>
   La date d'aujourd'hui est : <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

运行后得到以下结果:

La date d'aujourd'hui est : 2016-6-25 13:40:07

    Commentaires JSP

Les commentaires JSP ont principalement deux fonctions : annoter le code et masquer un segment de code.

Format de syntaxe des commentaires 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>
<%-- Les commentaires de cette partie ne seront pas affichés dans la page web--%> 
<p>
   La date d'aujourd'hui est : <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

运行后得到以下结果:

La date d'aujourd'hui est : 2016-6-25 13:41:26

Règles de syntaxe des commentaires utilisés dans différentes situations :

Syntaxe                Description
                <%-- Commentaires --%>                Commentaires JSP, le contenu des commentaires ne sera pas envoyé au navigateur ni compilé
                <!-- Commentaires -->                Commentaires HTML, le contenu des commentaires peut être vu en regardant le code source de la page via le navigateur
                <\%                Représente la constante statique <%
                %\>                Représente la constante statique %>
                \'                Guillemets simples utilisés dans les propriétés
                \"                Guillemets doubles utilisés dans les propriétés

    Instructions JSP

Les instructions JSP sont utilisées pour définir des propriétés liées à l'ensemble du fichier JSP.

Format de syntaxe des instructions JSP :

<%@ directive attribute="value" %>

Il y a trois types d'étiquettes d'instructions ici :

InstructionsDescription
                <%@ page ... %>                Définition des propriétés dépendantes de la page, telles que le langage de script, la page d'erreur, les besoins de cache, etc.
                <%@ include ... %>                Inclusion d'autres fichiers
                <%@ taglib ... %>                Introduction de la définition de la bibliothèque de balises, qui peut être personnalisée

    JSP action

Les balises d'action JSP utilisent la structure de syntaxe XML pour contrôler le moteur servlet. Il peut insérer dynamiquement un fichier, réutiliser des composants JavaBean, rediriger l'utilisateur vers une autre page, générer l'HTML pertinent pour les plugins Java, etc.

Les balises d'action n'ont qu'un format de syntaxe, elles respectent strictement les normes XML :

<jsp:action_name attribute="value" />

Les balises d'action sont essentiellement des fonctions prédéfinies. Le tableau suivant répertorie certaines balises d'actions JSP disponibles :

SyntaxeDescription
                jsp:include                Utilisé pour inclure des ressources statiques ou dynamiques dans la page actuelle
                jsp:useBean                Chercher et initialiser un composant JavaBean
                jsp:setProperty                Définir la valeur d'un composant JavaBean
                jsp:getProperty                Insérer la valeur d'un composant JavaBean dans l'output
                jsp:forward                Transmettre un objet request contenant la demande utilisateur d'un fichier JSP à un autre fichier
                jsp:plugin                Utilisé pour inclure des objets Applet et JavaBean dans la page HTML générée
                jsp:element                Créer dynamiquement un élément XML
                jsp:attribute                Définir les attributs des éléments XML créés dynamiquement
                jsp:body                Définir le corps des éléments XML créés dynamiquement
                jsp:text                Utilisé pour encapsuler les données du modèle

    Objets implicites JSP

JSP prend en charge neuf variables automatiquement définies, dites objets implicites. Une brève description de ces neuf objets implicites est présentée dans le tableau suivant :

ObjetDescription
                requestHttpServletRequestExemple de classe
                responseHttpServletResponseExemple de classe
                outPrintWriterExemple de classe, utilisé pour afficher les résultats sur une page web
                sessionHttpSessionExemple de classe
                applicationServletContextExemple de classe, lié à l'application
                configServletConfigExemple de classe
                pageContextPageContextExemple de classe, offrant l'accès à tous les objets de la page JSP et aux espaces de noms
                page                Similaire à la clé this dans les classes Java
                exceptionexception L'objet de la classe, représentant l'objet d'exception correspondant à la page JSP où s'est produite l'erreur

    Instructions de flux de contrôle

JSP offre un soutien complet pour le langage Java. Vous pouvez utiliser les API Java dans les programmes JSP et même créer des blocs de code Java, y compris des instructions conditionnelles et des instructions de boucle, 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 %>">
    基础教程
   </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>While 循环示例</h2>
<%while ( fontSize <= 3){ %>
   <font color="green" size="<%= fontSize %>">
    基础教程
   </font><br />
<%fontSize++;%>
<%}%>
</body> 
</html>

浏览器访问,输出结果为(fontSize 初始化为0,所以多输出了一行):

    JSP运算符

JSP支持所有Java逻辑和算术运算符。

下表罗列出了JSP常见运算符,优先级从高到底:

类别操作符结合性
                后缀                () [] . (点运算符)                左到右
                一元                ++ - - ! ~                右到左
                可乘性                * / %                 左到右
                可加性                + -                 左到右
                移位                >> >>> <<                  左到右 
                关系                > >= < <=                  左到右
                相等/不等                == !=                 左到右
                位与                &                 左到右
                位异或                ^                 左到右
                位或                |                 左到右
                逻辑与                &&                 左到右
                逻辑或                ||                 左到右
                条件判断                ?:                 右到左
                赋值                = += -= *= /= %= >>= <<= &= ^= |=                 右到左
                逗号                 ,                 左到右 

    JSP 字面量

JSP语言定义了以下几个字面量:

  •             布尔值(boolean):true 和 false;

  •             整型(int):与 Java 中的一样;

  •             浮点型(float):与 Java 中的一样;

  •             字符串(string):以单引号或双引号开始和结束;

  •             Null:null。