English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dieser Abschnitt wird einfach die grundlegenden Grammatiken in der JSP-Entwicklung vorstellen.
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:
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.
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表达式中包含的脚本语言表达式,先被转换成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注释的语法格式:
<%@ 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指令语法格式:
<%@ directive attribute="value" %>
这里有三种指令标签:
指令 | Beschreibung |
---|---|
<%@ page ... %> | 定义页面的依赖属性,例如脚本语言、错误页面、缓存需求等等 |
<%@ include ... %> | 包含其他文件 |
<%@ taglib ... %> | 标签库的定义引入,可以是自定义标签 |
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:
Syntax | Beschreibung |
---|---|
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 |
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:
Objekt | Beschreibung |
---|---|
request | HttpServletRequestBeispiel einer Klasse |
response | HttpServletResponseBeispiel einer Klasse |
out | PrintWriterBeispiel einer Klasse, die zur Ausgabe der Ergebnisse auf die Webseite verwendet wird |
session | HttpSessionBeispiel einer Klasse |
application | ServletContextBeispiel einer Klasse, die mit dem Anwendungscontext verbunden ist |
config | ServletConfigBeispiel einer Klasse |
pageContext | PageContextBeispiel 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 |
exception | exception Objekte der Klasse, die die entsprechenden Ausnahmeobjekte auf der JSP-Seite darstellen, in der ein Fehler aufgetreten ist |
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.
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
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语言定义了以下几个字面量:
布尔值(boolean):true 和 false;
整型(int):与 Java 中的一样;
浮点型(float):与 Java 中的一样;
字符串(string):以单引号或双引号开始和结束;
Null:null。