English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Cette section présentera simplement la syntaxe de base du développement JSP.
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 :
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.
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); %>
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
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 |
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 :
Instructions | Description |
---|---|
<%@ 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 |
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 :
Syntaxe | Description |
---|---|
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 |
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 :
Objet | Description |
---|---|
request | HttpServletRequestExemple de classe |
response | HttpServletResponseExemple de classe |
out | PrintWriterExemple de classe, utilisé pour afficher les résultats sur une page web |
session | HttpSessionExemple de classe |
application | ServletContextExemple de classe, lié à l'application |
config | ServletConfigExemple de classe |
pageContext | PageContextExemple 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 |
exception | exception L'objet de la classe, représentant l'objet d'exception correspondant à la page JSP où s'est produite l'erreur |
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语言定义了以下几个字面量:
布尔值(boolean):true 和 false;
整型(int):与 Java 中的一样;
浮点型(float):与 Java 中的一样;
字符串(string):以单引号或双引号开始和结束;
Null:null。