JSP 语法

JSP 脚本元素

Java 程序片

在标记符<%和 %>之间插入的 Java 代码被称为 JSP 页面的 Java 程序片。

一个 JSP 页面可以有任意段 Java 程序片段,这些片段将被 JSP 引擎 (如 Tomcat) 按顺序执行。在 一个程序片中声明的变量被为 JSP 页面的局部变量,他们在 JSP 后记所有的程序片以及表达式内都有效。

当多个客户请求一个 JSP 页面时, JSP 引擎为每个客户启动一个线程,不同线程分别执行该 JSP 中程序片,程序片中的局部变量会在不同的线程被分配不同的内存空间,因此一个客户对 JSP 页面局部变量操作的结果不会影响到其它客户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>hello</title>
</head>
<body>
<%
int i=0;
for(i=0;i<10;i++) {
out.print("<h2>"+i+"</h2>");
}
%>
</body>
</html>

成员变量与方法的声明

在标识符 <%! %>之间声明的变量被称为 JSP 页面的成员变量。

1
2
3
<%!
int n=0;
%>

在标识符 <%!%>之间声明的方法被称为 JSP 页面的成员方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>hello</title>
</head>
<body>
<%!
int n=0;
int add(int x,int y)
{
return x+y;
}
%>
<%
out.print("<h1>被请求"+(n++)+"次</h1>");
out.print("<p>1+2="+add(1,2)+"</p>");

%>
</body>
</html>

JAVA 表达式

在标识符<%=%>之间插入一个表达式,可以有算术表达式、逻辑表达式和条件表达式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>hello</title>
</head>
<body>
<%
out.print("<p>2+2=");
%>
<%=2+2%>
<%
out.print("</p><p>2==2:");
%>
<%=2==2%>
<%
out.print("</p>");
%>
</body>
</html>

JSP 指令标记

page 指令

page 指令用来定义整个 JSP 页面的一些属性和属性值。

page 指令格式: <% @ page 属性=“值1” %>

  • contentType

  • import

  • language

  • pageEncoding

include 指令

include 指令标记就是将 jsp 文件、或其它文件静态嵌入当前 jsp 文件

语法格式 <%include file="url"%>

JSP 动作标记

include 动作标记

动作标记 include 就是让 JSP 文件动态嵌入当前 JSP 文件

1
<jsp:include page="url"/>

或者

1
2
3
<jsp:include page="url">
子标签
<jsp:include/>

以下是 include 动作相关的属性列表。

属性 描述
page 包含在页面中的相对 URL 地址。
flush 布尔属性,定义在包含资源前是否刷新缓存区。

forward 动作标签

 jsp:forward 动作把请求转到另外的页面。jsp:forward 标记只有一个属性 page。语法格式如下所示:

<jsp:forward page="相对 URL 地址" />