Syntaxe JSP


Cette section présentera brièvement la syntaxe de base du développement JSP.


Programmes de script

Les programmes de script peuvent contenir n'importe quel nombre d'instructions, de variables, de méthodes ou d'expressions Java, à condition qu'elles soient valides dans le langage de script.

Format de syntaxe de script :

<% 代码片段 %>

Alternativement, vous pouvez écrire son instruction XML équivalente, comme ceci :

<jsp:scriptlet>
   代码片段
</jsp:scriptlet>

Tout texte, balise HTML ou élément JSP doit être écrit en dehors du programme de script.

Un exemple est donné ci-dessous, qui est également le premier exemple JSP de ce tutoriel :

<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>

Remarque : Veuillez vous assurer qu'Apache Tomcat a été installé en C : Le répertoire apache-tomcat -7.0.2 et l'environnement d'exécution ont été correctement définis.

Enregistrez le code ci-dessus dans hello.jsp, puis placez-le dans le répertoire C:apache-tomcat-7.0.2webappsROOT, ouvrez le navigateur et saisissez http://localhost:8080/ dans la barre d'adresse bonjour. jsp. Après exécution, nous obtenons les résultats suivants :

jsp_hello_world.jpg

Problème d'encodage chinois

Si nous voulons afficher le chinois normalement sur la page, nous devons ajouter ce qui suit code en tête du fichier JSP : <>

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

Après analyse, nous modifions le programme ci-dessus en :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
Hello World!<br/>
<%
out.println("你的 IP 地址 " + request.getRemoteAddr());
%>
</body>
</html>

De cette façon, le chinois peut être affiché normalement.


Déclaration JSP

Une instruction de déclaration peut déclarer une ou plusieurs variables et méthodes à utiliser par le code Java ultérieur. Dans un fichier JSP, vous devez déclarer ces variables et méthodes avant de pouvoir les utiliser.

Format de syntaxe de déclaration JSP :

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

Alternativement, vous pouvez également écrire son instruction XML équivalente, comme celle-ci :

<jsp:declaration>
   代码片段
</jsp:declaration>

Exemple de programme :

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

Expression JSP

Une expression de langage de script contenue dans une expression JSP est d'abord convertie en chaîne puis insérée à l'endroit où l'expression apparaît.

Étant donné que la valeur de l'expression est convertie en chaîne, vous pouvez utiliser l'expression dans une ligne de texte, qu'il s'agisse ou non d'une balise HTML.

L'élément expression peut contenir n'importe quelle expression conforme à la spécification du langage Java, mais un point-virgule ne peut pas être utilisé pour terminer l'expression.

Le format de syntaxe de l'expression JSP :

<%= 表达式 %>

De même, vous pouvez également écrire l'instruction XML équivalente :

<jsp: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>php中文网(php.cn)</title>
</head>
<body>
<p>
   今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

Ce qui suit les résultats sont obtenus après course :

今天的日期是: 2016-6-25 13:40:07

Commentaires JSP

Les commentaires JSP ont deux fonctions principales : commenter le code et commenter une certaine section de code.

Le 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>php中文网(php.cn)</title>
</head>
<body>
<%-- 该部分注释在网页中不会被显示--%> 
<p>
   今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

Après l'exécution, les résultats suivants sont obtenus :

今天的日期是: 2016-6-25 13:41:26

Les règles de syntaxe d'utilisation des commentaires dans différentes situations :

语法                    描述
                    <%-- 注释 --%>                    JSP注释,注释内容不会被发送至浏览器甚至不会被编译
                    <!-- 注释 -->                    HTML注释,通过浏览器查看网页源代码时可以看见注释内容
                    <%                    代表静态 <%常量
                    %>                    代表静态 %> 常量
                    '                    在属性中使用的单引号
                    "                    在属性中使用的双引号

Directives JSP

Les directives JSP sont utilisées pour définir les propriétés liées à l'ensemble de la page JSP.

Format de syntaxe d'instruction JSP :

<%@ directive attribute="value" %>

Il existe trois balises d'instruction :

指令描述
                    <%@ page ... %>                    定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
                    <%@ include ... %>                    包含其他文件
                    <%@ taglib ... %>                    引入标签库的定义,可以是自定义标签

Comportement JSP

La balise de comportement JSP utilise la structure de syntaxe XML pour contrôler le moteur de servlet. Il peut insérer dynamiquement un fichier, réutiliser des composants JavaBean, guider l'utilisateur vers une autre page, générer du HTML pertinent pour les plug-ins Java, et bien plus encore.

Les balises de comportement n'ont qu'un seul format de syntaxe, qui adhère strictement à la norme XML :

<jsp:action_name attribute="value" />

Les balises de comportement sont essentiellement des fonctions prédéfinies. Le tableau suivant répertorie certaines balises de comportement JSP disponibles : <. 🎜>


Objets cachés JSP

JSP prend en charge neuf variables définies automatiquement, appelées objets cachés par les habitants du Jianghu. L'introduction de ces neuf objets cachés est présentée dans le tableau ci-dessous :

对象描述
                    requestHttpServletRequest类的实例
                    responseHttpServletResponse类的实例
                    outPrintWriter类的实例,用于把结果输出至网页上
                    sessionHttpSession类的实例
                    applicationServletContext类的实例,与应用上下文有关
                    configServletConfig类的实例
                    pageContextPageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
                    page                    类似于Java类中的this关键字
                    ExceptionException类的对象,代表发生错误的JSP页面中对应的异常对象

L'instruction de flux de contrôle

JSP fournit une prise en charge complète du langage Java. Vous pouvez utiliser l'API Java dans les programmes JSP et même créer des blocs de code Java, notamment des instructions de jugement et des instructions de boucle, etc.

Déclaration de jugement

Si… sinon bloque, veuillez consulter l'exemple suivant :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h3>IF...ELSE 实例</h3>
<% if (day == 1 | day == 7) { %>
      <p>今天是周末</p>
<% } else { %>
      <p>今天不是周末</p>
<% } %>
</body> 
</html>

Après l'exécution, les résultats suivants sont obtenus :

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

Jetons maintenant un coup d'œil au commutateur …case bloc, qui est similaire à if Le bloc ...else est très différent. Il utilise out.println(), et l'intégralité du script est installée dans la balise du script, comme ceci :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h3>SWITCH...CASE 实例</h3>
<% 
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>

Accès au navigateur, après l'exécution, les résultats suivants sont obtenus :

SWITCH...CASE 实例

星期三

Instruction de boucle

Vous pouvez utiliser les trois types de boucles de base de Java dans les programmes JSP : for, while et do.. .alors que.

Jetons un coup d'œil à un exemple de boucle for, la sortie suivante du "site Web chinois php" avec différentes tailles de police :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int fontSize; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h3>For 循环实例</h3>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
   <font color="green" size="<%= fontSize %>">
    php中文网
   </font><br />
<%}%>
</body> 
</html>

Après l'exécution, les résultats suivants sont obtenus :

7B4B85CF-FE4B-43CB-AAFF-F8594AD4342C.jpg

Modifiez l'exemple ci-dessus pour utiliser une boucle while pour écrire :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int fontSize; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h3>While 循环实例</h3>
<%while ( fontSize <= 3){ %>
   <font color="green" size="<%= fontSize %>">
    php中文网
   </font><br />
<%fontSize++;%>
<%}%>
</body> 
</html>
accès au navigateur, le résultat de sortie est (fontSize est initialisé à 0, donc une ligne supplémentaire est affichée) :

7B4B85CF-FE4B-43CB-AAFF-F8594AD4342C.jpg

Opérateurs JSP

JSP prend en charge tous les opérateurs logiques et arithmétiques Java.

Le tableau suivant répertorie les opérateurs JSP courants, avec une priorité de haut en bas :

                       Relation                     Égal/Inégal                     Bits et                     Bit exclusif OU                     Bit ou
CatégorieOpérateurAssociativité
Suffixe               () [] . (opérateur point)                  De gauche à droite
                    Un dollar ++ - - ! ~                 De droite à gauche
                    Multipliabilité                 * / %                 De gauche à droite
                    Additivité               + -               De gauche à droite
                    Maj                 >> >>> De gauche à droite
                > >= < <=               De gauche à droite
                == !=                 De gauche à droite
              &               De gauche à droite
              ^                 De gauche à droite
              |               De gauche à droite
                ET logique               &&               De gauche à droite
                    OU logique               ||                De gauche à droite
                    Jugement conditionnel                 ?:                 De droite à gauche
                    Devoir               = += -= *= /= %= >>= <<= &= ^= |=                     De droite à gauche
                    Virgule                 ,               De gauche à droite

Littéraux JSP

Le langage JSP définit les littéraux suivants :

  • Booléen : vrai et faux ;

  • Type entier (int) : le même qu'en Java ;

  • Float : identique à Java ;

  • Chaîne : Commencez et terminez par des guillemets simples ou doubles

  • Nul : nul.