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

JSP 语法

Dieser Abschnitt wird einfach die grundlegenden Grammatiken in der JSP-Entwicklung vorstellen.

Skriptprogramm

Ein Skriptprogramm kann eine beliebige Anzahl von Java-Anweisungen, Variablen, Methoden oder Ausdrücken enthalten, solange sie im Skriptsprachensystem gültig sind.

Syntax-Format des Skriptprogramms:

<% Code-Abschnitt %>

或者,您也可以编写与其等价的XML语句,就像下面这样:

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

Jeglicher Text, HTML-Tags, JSP-Elemente müssen außerhalb des Skriptprogramms geschrieben werden.

Hier ist ein Beispiel, das gleichzeitig der erste JSP-Beispiel in diesem Tutorial ist:

<html>
<head><title>Hello World</title></head>
<body>
Hallo Welt!<br/>
<%
Hinweis: + request.getRemoteAddr());
%>
</body>
</html>

installiert ist.Stellen Sie sicher, dass Apache Tomcat in C:\apache-tomcat-7.0.2ab und stellen Sie sicher, dass die Laufumgebung korrekt eingerichtet ist.

Speichern Sie den folgenden Code in hello.jsp und legen Sie ihn im Verzeichnis C:\apache-tomcat-7.0.2\webapps\ROOT-Verzeichnis öffnen, den Browser öffnen und die Adresse im Adressfeld eingeben http://localhost:8080/hello.jsp. Nach dem Ausführen erhalten Sie das folgende Ergebnis:

Problem mit der chinesischen Kodierung

Um chinesische Texte auf der Seite normal anzuzeigen, müssen Sie den folgenden Code im Header der JSP-Datei hinzufügen:

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

Nächste, wir ändern das obige Programm in:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Grundlagen教程网(oldtoolbag.com)</title>
</head>
<body>
Hallo Welt!<br/>
<%
out.println("Ihre IP-Adresse ") + request.getRemoteAddr());
%>
</body>
</html>

Auf diese Weise wird chinesischer Text normal angezeigt.

    JSP-Deklaration

Eine Deklarationsanweisung kann eine oder mehrere Variablen, Methoden deklarieren, die für den nachfolgenden Java-Code verwendet werden. In JSP-Dateien müssen Sie diese Variablen und Methoden erst deklarieren, bevor Sie sie verwenden können.

JSP声明的语法格式:

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

或者,您也可以编写与其等价的XML语句,就像下面这样:

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

程序示例:

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

    JSP表达式

一个JSP表达式中包含的脚本语言表达式,先被转换成String,然后插入到表达式出现的地方。

由于表达式的值会被转换成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。

表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。

JSP表达式的语法格式:

<%= 表达式 %>

同样,您也可以编写与之等价的XML语句:

<jsp:expression>
   表达式
</jsp:expression>

程序示例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Grundlagen教程网(oldtoolbag.com)</title>
</head>
<body>
<p>
   今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

Nach dem Ausführen erhalten Sie folgende Ergebnisse:

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

    JSP注释

JSP注释主要有两个作用:为代码作注释以及将某段代码注释掉。

JSP注释的语法格式:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Grundlagen教程网(oldtoolbag.com)</title>
</head>
<body>
<%-- 该部分注释在网页中不会被显示--%> 
<p>
   今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

Nach dem Ausführen erhalten Sie folgende Ergebnisse:

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

不同情况下使用注释的语法规则:

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

    JSP指令

JSP指令用于设置与整个JSP页面相关的属性。

JSP指令语法格式:

<%@ directive attribute="value" %>

这里有三种指令标签:

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

    JSP-Verhalten

JSP-Verhaltensetiketten verwenden die XML-Syntaxstruktur, um den Servlet-Engine zu steuern. Sie können eine Datei dynamisch einfügen, JavaBean-Komponenten wiederverwenden, den Benutzer zu einer anderen Seite leiten, relevante HTML für Java-Plugins generieren und so weiter.

Verhaltensetiketten haben nur ein Syntaxformat und folgen streng den XML-Standards:

<jsp:action_name attribute="value" />

Verhaltensetiketten sind im Wesentlichen voreingestellte Funktionen. Nachfolgend sind einige verfügbare JSP-Verhaltensetiketten aufgeführt:

SyntaxBeschreibung
                jsp:include                zur Einbindung statischer oder dynamischer Ressourcen in der aktuellen Seite verwendet
                jsp:useBean                Ein JavaBean-Komponenten suchen und initialisieren
                jsp:setProperty                Den Wert eines JavaBean-Komponenten setzen
                jsp:getProperty                Den Wert eines JavaBean-Komponenten in den output einfügen
                jsp:forward                Einen request-Objekt von einer JSP-Datei zu einer anderen Datei weiterleiten
                jsp:plugin                zur Einbindung von Applet- und JavaBean-Objekten in generierte HTML-Seiten verwendet
                jsp:element                Einen XML-Element dynamisch erstellen
                jsp:attribute                Definiert die Attribute eines dynamisch erstellten XML-Elements
                jsp:body                Definiert den Inhalt des Hauptteils eines dynamisch erstellten XML-Elements
                jsp:text                zur Verpackung von Musterdaten verwendet

    Versteckte JSP-Objekte

JSP unterstützt neun automatisch definierte Variablen, die als versteckte Objekte bekannt sind. Eine kurze Einführung in diese neun versteckten Objekte finden Sie im folgenden Tabelle:

ObjektBeschreibung
                requestHttpServletRequestBeispiel einer Klasse
                responseHttpServletResponseBeispiel einer Klasse
                outPrintWriterBeispiel einer Klasse, die zur Ausgabe der Ergebnisse auf die Webseite verwendet wird
                sessionHttpSessionBeispiel einer Klasse
                applicationServletContextBeispiel einer Klasse, die mit dem Anwendungscontext verbunden ist
                configServletConfigBeispiel einer Klasse
                pageContextPageContextBeispiel einer Klasse, die den Zugriff auf alle Objekte der JSP-Seite sowie den Namensraum ermöglicht
                page                ähnlich dem Schlüsselwort this in Java-Klassen
                exceptionexception Objekte der Klasse, die die entsprechenden Ausnahmeobjekte auf der JSP-Seite darstellen, in der ein Fehler aufgetreten ist

    Steuerungsflussanweisungen

JSP bietet uneingeschränkte Unterstützung für die Java-Sprache. Sie können in JSP-Programmen Java-APIs verwenden und Java-Codeblöcke, einschließlich Bedingungs- und Schleifenanweisungen, erstellen.

    Bedingungsanweisungen

If…else-Block, siehe untenstehendes Beispiel:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Grundlagen教程(oldtoolbag.com)</title>
</head>
<body>
<h2>IF...ELSE-Beispiel</h2>
<% if (day == 1 | day == 7) { %>
      <p>Heute ist Wochenende</p>
<% } else { %>
      <p>Heute ist kein Wochenende</p>
<% } %>
</body> 
</html>

Nach dem Ausführen erhalten Sie folgende Ergebnisse:

IF...ELSE-Beispiel
Heute ist kein Wochenende

Sehen wir uns den switch…case-Block an, der stark von dem if…else-Block abweicht. Er verwendet out.println() und ist vollständig in den Skript-Tag des Programms eingebettet, wie im folgenden Beispiel gezeigt:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Grundlagen教程(oldtoolbag.com)</title>
</head>
<body>
<h2>SWITCH...CASE-Beispiel</h2>
<% 
switch(day) {
case 0:
   out.println("Sonntag");
   break;
case 1:
   out.println("Montag");
   break;
case 2:
   out.println("Dienstag");
   break;
case 3:
   out.println("Mittwoch");
   break;
case 4:
   out.println("Donnerstag");
   break;
case 5:
   out.println("Freitag");
   break;
default:
   out.println("Samstag");
}
%>
</body> 
</html>

Durch den Browser aufrufen, nach dem Ausführen erhalten Sie folgende Ergebnisse:

SWITCH...CASE-Beispiel
Mittwoch

Schleifenanweisungen

In JSP-Programmen können Sie die drei grundlegenden Java-Loop-Typen verwenden: for, while und do…while.

Lassen Sie uns ein Beispiel für den for-Loop sehen, das verschiedene Schriftgrößen des "Grundlagen教程网" ausgibt:

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

Nach dem Ausführen erhalten Sie folgende Ergebnisse:

Verwenden Sie den while-Loop, um den folgenden Beispielcode zu schreiben:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int fontSize = 0; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Grundlagen教程(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。