JSP语法
脚本程序
脚本程序可以包含任意量量的Java语句句、变量量、⽅方法或表达式,只要它们在脚本语⾔言 中是有效的。 脚本程序的语法格式:
<% 代码⽚片段 %>
或者,您也可以编写与其等价的XML语句句,就像下⾯面这样:
<jsp:scriptlet> 代码片段</jsp:scriptlet>
任何⽂文本、HTML标签、JSP元素必须写在脚本程序的外⾯面。 下⾯面给出⼀一个示例例,同时也是本教程的第⼀一个JSP示例例:
<html>
<head>
<title>Hello
World</title>
</head>
<body> Hello World!<br/><% out.println("Your IP address is " + request.getRemoteAddr()); %>
</body>
</html>
打开浏览器器并在地址栏中输⼊入http://localhost:8080/hello.jsp。运⾏行行后得到以下结
果:
JSP声明
⼀一个声明语句句可以声明⼀一个或多个变量量、⽅方法,供后⾯面的Java代码使⽤用。在JSP⽂文 件中,您必须先声明这些变量量和⽅方法然后才能使⽤用它们。 JSP声明的语法格式:
JSP声明
⼀一个声明语句句可以声明⼀一个或多个变量量、⽅方法,供后⾯面的Java代码使⽤用。在JSP⽂文 件中,您必须先声明这些变量量和⽅方法然后才能使⽤用它们。 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>表达式示例</title> </head> <body>
<p> 今天的日期是:
<%= (new java.util.Date()).toLocaleString()%> </p></body>
</html>
运⾏行行后得到以下结果:
今天的⽇日期是: 2016-6-25 13K40K07
JSP注释
JSP注释主要有两个作⽤用:为代码作注释以及将某段代码注释掉。 JSP注释的语法格式:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html><head>
<meta charset="utf-8"><title>注释示例</title>
</head>
<body>
<%-- 该部分注释在网页中不会被显示--%>
<p> 今天的日期是:
<%= (new java.util.Date()).toLocaleString()%></p></body>
</html>
运⾏行行后得到以下结果:
今天的⽇日期是: 2016-6-25 13K41K26
语法 描述
JSP指令
JSP指令⽤用来设置与整个JSP⻚页⾯面相关的属性。 JSP指令语法格式:
<%@ directive attribute="value" %>
这⾥里里有三种指令标签
JSP⾏行行为
JSP⾏行行为标签使⽤用XML语法结构来控制servlet引擎。它能够动态插⼊入⼀一个⽂文件,重 ⽤用JavaBean组件,引导⽤用户去另⼀一个⻚页⾯面,为Java插件产⽣生相关的HTML等等。 ⾏行行为标签只有⼀一种语法格式,它严格遵守XML标准:
<jsp:action_name attribute="value" />
⾏行行为标签基本上是⼀一些预先就定义好的函数,下表罗列列出了了⼀一些可⽤用的JSP⾏行行为标 签:
JSP隐含对象
JSP⽀支持九个⾃自动定义的变量量,江湖⼈人称隐含对象。这九个隐含对象的简介⻅见下 表:
控制流语句句
JSP提供对Java语⾔言的全⾯面⽀支持。您可以在JSP程序中使⽤用Java API甚⾄至建⽴立Java代 码块,包括判断语句句和循环语句句等等。
判断语句句
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>示例</title>
</head><body> <h3>IF...ELSE 实例</h3> <% if (day == 1 | day == 7) { %>
<p>今天是周末</p> <% } else { %>
<p>今天不是周末</p> <% } %> </body> </html>
现在来看看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></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>
循环语句句
在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>循环示例</title> </head> <body><h3>For 循环实例</h3><%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; %>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>循环示例</title> </head> <body> <h3>While 循环实例</h3>
<%while ( fontSize <= 3){ %>
<font color="green" size="<%= fontSize %>">
字体放大 </font><br />
<%fontSize++;%> <%}%>
</body> </html>
JSP运算符
JSP⽀支持所有Java逻辑和算术运算符。 下表罗列列出了了JSP常⻅见运算符,优先级从⾼高 到底:
JSP 字⾯面量量
JSP语⾔言定义了了以下⼏几个字⾯面量量:
布尔值(boolean):true 和 false; 整型(int):与 Java 中的⼀一样; 浮点型(float):与 Java 中的⼀一样; 字符串串(string):以单引号或双引号开始和结束; Null:null。