第 4章 JSP程序设计基础
JSP 动态网页新技术 1
静态与动态网页
H T M L 文件 內 容
< H T M L >
H T M L 文件 內 容
< / H T M L
>
x x x,h t mx x x,h t m
客 户 端 浏 览 器服 务 器 端 T o m c a t 网 站传 送 H T M L 网 页
H T M L 网 页 內 容 传 送 至 客 戶端 浏 览 器 之 后,H T M L 文 件內 容 沒 有 任 何 变 更
x x x,j s px x x,j s p
客 户 端 浏 览 器服 务 器 端 T o m c a t 网 站传 送 J S P 网 页
J S P 程 序 代 码 根 据 用 户需 求,构 建 H T M L 文 件內 容 之 后 再 输 出
H T M L
J S P 产 生动 态 内 容文 件 內 容
< H T M L >
H T M L
< %
J S P 程 序 代 码
% >
文 件 內 容
,,,
< / H T M L >
第 4章 JSP程序设计基础
JSP 动态网页新技术 2
关于 HTML
HTML以 标签 形式存在 于网页当 中 。
<HEAD></HEAD>表示 网页开始的区块 。
<TITLE>与 </TITLE>之间的文字会显示 在 浏览器 的 标题栏中 。
<BODY>标签区块,代表 网页文件主体。
第 4章 JSP程序设计基础
JSP 动态网页新技术 3
表格标 签 定 义
<table></table> 设定表格的开始与结束。
<tr></tr> 设定一个新列。
<td></td> 设定指定列里的一个新字段。
<th></th> 设定表格每行的字段抬头。
第 4章 JSP程序设计基础
JSP 动态网页新技术 4
表格的 边框 厚度、高度 与宽度属性 说明
border 改变表格边框厚度。
width 改变表格的宽度。
height 改变表格的高度。
第 4章 JSP程序设计基础
JSP 动态网页新技术 5
表格 位置设定
绝对位置 表示法,使用像素来做为设定单位,不论窗口如何调整,
占用固定的像素。
相对 位置表示法,使用百分比 做为设定单位,占用 某一固定的比例大小 。
第 4章 JSP程序设计基础
JSP 动态网页新技术 6
表格 数据 的 对齐 方式属 性 可 设定 的属性 值说 明
align left,center、
right
靠左、置中、靠右对齐,默认为靠左对齐
valign top,center、
bottom
向上、置中、向下对齐,默认为置中对齐第 4章 JSP程序设计基础
JSP 动态网页新技术 7
超链接超链接标签
<a href=“目标网页和文件,>链接 文字 </a>
第 4章 JSP程序设计基础
JSP 动态网页新技术 8
超 链接 target 属性属性 值 说 明
_blank 将连结内容显示在新窗口中。
_self 将连接内容显示在原本的窗口中。
_top 将连结内容显示在原本的窗口中,并取消框架的限制。
_parent 将内容显示在上一层的框架中。
第 4章 JSP程序设计基础
JSP 动态网页新技术 9
<img>标签链接图片文件
<img src=filesourcepath>
第 4章 JSP程序设计基础
JSP 动态网页新技术 10
JSP程序代码区块
<%…%> 界定 JSP网页 提供 互动 功能的 程序区块 。
<%
Java程序代码 …
%>
第 4章 JSP程序设计基础
JSP 动态网页新技术 11
JSP程序代码细节
注解程序 以 符号 //作 标识,
// 该区块里为 JSP程序代码程序运行 的 过程 中,标识 為 //的程式 代码 都 会 被忽略。
数据输出
out是 JSP中的 默认对象,用來 将数据输出 到 客户 端 网页 上。
println()是 out对象 提供 将字符串 等 数据输出至网页 的方法。
每一行完整的 程序指令,均 必须 以分 号 (; )做結束。
第 4章 JSP程序设计基础
JSP 动态网页新技术 12
JSP语法
Scripting Elements,由 Java程序代码构成的 JSP程序区块,也就是 JSP网页中的 Java程序片段,<%…%> 符号之间输出文字信息的程序代码。
Directive Elements,网页相关信息、属性的存取与设定。
Action Elements,以 XML为基础所发展的 JSP网页元素,主要用来进行与网页加载、转向甚至引用外部组件等相关操作,此类元素以标签型式存在,并且以 jsp前缀区别其它网页中所存在的标签。
JSTL,JSP 预先定义专门提供页制作的标签函数库,全名为 JSP Standard
Tag Library(简称 JSTL),包含各种网页运作所需的功能,例如循环、流程控制、输入 /出、文字格式化,XML文件处理和数据库存取操作。
EL Elements,JSP 2.0纳入的新规格,用来简化上述 Scripting Elements的网页编写模式。
第 4章 JSP程序设计基础
JSP 动态网页新技术 13
变量
变量用以储存各种类型的数据,同时对应到计算机中某一段内存空间区块的特定名称,程序根据变量名称在计算机内存中取得所需的数据内容,进行各种程序逻辑的运算。
声明变量,
varType varName ;
第 4章 JSP程序设计基础
JSP 动态网页新技术 14
常量
Final关键词与常数声明,
final varType varName = varValue ;
常数 所 储存 的內容不 允许 被 改变,若在 程序运行 中更改 常数 的內容,會 导致错误 情況 发生 。
第 4章 JSP程序设计基础
JSP 动态网页新技术 15
变量 的命名 规则
必须为 合法 字符
Java程序将字母相同、大小写相异的两个变量视为相异,同时名称包含非法字符并不被允许,例如空白与前置为数字的变量名称 。
避免使用关键词关键词 是由 Java预先定义,具有特定 意义 的特定 名称 字串,无法被使用 在变量 的命名。
使用具 意义 的 变量名称变量 的命名基本上只要符合 上述 的 规则 即可,使用 一个 代表 变量意义 的 名称为变量 命名可方便 辨识 。
第 4章 JSP程序设计基础
JSP 动态网页新技术 16
数据类型类型 数据类型 名称 大小 有效 范围字符 char 字符 16 bit '\u0000'~'\uffff'
布尔 boolean 布尔 值 1 bit true或 false
浮点数 float 浮点数 32 bit 1.40239846E-45 ~3.40282347E+38
double 倍 精确浮点数 64 bit 4.94065645841246544E-324
~1.79769313486231570E+308
整数 byte 位 整数 8 bit -128 ~ 127
short 短 整数 16 bit -32768 ~ 32767
int 整数 32 bit -2147483648 ~ 2147483647
long 长整数 64 bit -922337203685475808 ~
922337203685475808
第 4章 JSP程序设计基础
JSP 动态网页新技术 17
声明整型变量整型 变量,必须 以任何 一个整数类型 的 名称 作 声明,如下所示:
byte bteVar ;
short shVar ;
int intVar ;
long lngVar ;
第 4章 JSP程序设计基础
JSP 动态网页新技术 18
浮点型变量
浮点数 的 数值类型依其数值范围的大小分为两种,分别是 float和
double,用以储存包含小数点的非整数数值。
浮点数可以储存的数值范围比整数大,同时,一个声明为浮点数的变量同样可以被用以储存整数数据。
第 4章 JSP程序设计基础
JSP 动态网页新技术 19
布尔型变量声明为 boolean的 变量 只能 储存 true或是 false:
boolean blnVar1 = flase ;
boolean blnVar2 = true ;
第 4章 JSP程序设计基础
JSP 动态网页新技术 20
字符型变量
Char类型 的 变量 代表 双位 組的 单一字符 。
当 一個 字符 被指定給 char型变量,字符 必須使用 单引号 將其 包围起來。
一個 字符 可以 用以 表示 变量 或是字串。
第 4章 JSP程序设计基础
JSP 动态网页新技术 21
数组
数组 (Array)是一种复合类型的数据类型,用来存放一群类型相同的数据元素 。
数组存放元素的位置,由索引值作识别,索引值从 0开始依次增加 。
声明 一個 数组变量,
数据类型 数组名称 []=new 数据类型 [数组 大小 ];
语法 2,数据类型 数组名称 []={內容值 };
单一列结构的数组,将其称为一维数组第 4章 JSP程序设计基础
JSP 动态网页新技术 22
二维数组
声明二维数组,
数据类型 数组名 [][]=new 数据类型 [列数 ][行数 ] ;
存取二维数组的方式也相当的简单,只需指定所要存取的元素,
其所在位置的索引编号即可,例如前一个二维数组示意图中,当用户想要取得元素 32所需的语法如下:
a = objArr[2][1] ;
其中的 objArr代表上述的二维数组表格,[2][1]则是其位置索引,
这一行程序代码片段会将取得的元素 32存到变量 a。
第 4章 JSP程序设计基础
JSP 动态网页新技术 23
二维数组元素 11 [0] [0] 元素 12 [0] [1] 元素 11 [0] [2]
元素 21 [1] [0] 元素 22 [1] [1] 元素 12 [1] [2]
元素 31 [2] [0] 元素 32 [2] [1] 元素 13 [2] [3]
第 4章 JSP程序设计基础
JSP 动态网页新技术 24
数据类型转换数据类型转换语法,
(dataType)varName
第 4章 JSP程序设计基础
JSP 动态网页新技术 25
算术运算符运算符 运算符名称 范例
+ 加法 A+B=14
- 减法 A-B=8
* 乘法 A*B
/ 除法 A/B
% 取余数 A%B
第 4章 JSP程序设计基础
JSP 动态网页新技术 26
算术运算符运算符 使用 语法 说明
+= A+=5 A+=5 等于 A=A+5
-= A-=5 A-=5等于 A=A-5
*= A*=5 A*=5等于 A=A*5
/= A/=5 A/=5等于 A=A/5
%= A%=5 A%5等于 A=A%5
++ A++,++A A++等于 A=A+1
-- A--,--A A--等于 A=A-1
第 4章 JSP程序设计基础
JSP 动态网页新技术 27
前置与后置运算
前置运算,运算符首先针对其连接的操作数进行运算,然后回传运算的结果 。
B = 5 ;
A = ++B ;
后 置 运算,操作数的值首先会回传给指定变量,然后运算符再针对其进行运算 。
B = 5 ;
A = B ++ ;
第 4章 JSP程序设计基础
JSP 动态网页新技术 28
比较运算符运算符 说明 使用 语法 范例 (A=3,B=23)
= = 等于 A= = B 返回布尔值 false
!= 不等于 A!=B 返回布尔值 true
> 大于 A>B 返回布尔值 false
>= 大于等于 A>=B 返回布尔值 false
< 小于 A<B 返回布尔值 true
<= 小于等于 A<=B 返回布尔值 true
第 4章 JSP程序设计基础
JSP 动态网页新技术 29
逻辑布尔运算符运算符 意义
|,|| OR逻辑判断
&,&& AND
! NOT
第 4章 JSP程序设计基础
JSP 动态网页新技术 30
OR运算符
| 以及 ||均是 OR运算符,其左右串接 2个操作数,当 其中有一 个操作数 的值是 true的時候,则返回一个 true 的 布尔 值。
operandA || operandB
operandA与 operandB 其中有一 个等于 true,则返回一个 true的 布尔值 。
第 4章 JSP程序设计基础
JSP 动态网页新技术 31
AND运算符
& 和 && 两个同样是 AND运算符,针对两个操作数进行 AND的逻辑运算,只有当其连接的两操作数均是 true的时候,则返回一个
true的布尔值,否则一律返回 false 。
&&不一定会针对其串接的两个操作数作运算,当左边的操作数结果为 false的时候,则其直接返回一个结果为 false的布尔值,不再理会右边表达式的操作数,而 &则是对于两个操作数进行运算,
即使左边的操作数结果为 false,右边的操作数还是会完成其运算之后,才会回传其结果。
第 4章 JSP程序设计基础
JSP 动态网页新技术 32
! 运算符
!是一 种逻辑反向运算符,针对一个布尔操作数 作 运算,将 其值 取反后输出,其用法如下:
!true => false
!false => true
第 4章 JSP程序设计基础
JSP 动态网页新技术 33
运算符优先顺序运算符 说明
++,-- 递增、递减运算
*,/,% 乘、除、取余数
<,<=,>,>= 小于、小于等于、大于、大于等于
==,!= 等于、不等于
& 逻辑运算 "AND"
| 逻辑运算 "OR"
&& 逻辑运算 "AND"
|| 逻辑运算 "OR"
+=,-=,*=,/=,%= 算术指派运算符第 4章 JSP程序设计基础
JSP 动态网页新技术 34
If 判断式
if(condition )
{
语句 ;
}
i f 判 断 式
i f 语 句 区 域,,,
主 程 序
t r u e
f a l s e
主 程 序第 4章 JSP程序设计基础
JSP 动态网页新技术 35
if-else判断式
if(condition)
{
语句 1 …
}
else{
语句 2 …
}
其他语句 …
i f 判 断 式主 程 序
t r u e
f a l s e
i f 语 句 区 域,,,e l s e 语 句 区 域,,,
主 程 序第 4章 JSP程序设计基础
JSP 动态网页新技术 36
if-else if-else 判断 式
if(condition 1){
语句 1 …
}
else if(condition2){
语句 2 …
}
else{
语句 3 …
}
主 程 序
i f 判 断 式
t r u e
f a l s e
i f 语 句 区 域,,,
e l s e i f 判 断 式
f a l s e
t r u e
主 程 序
e l s e i f 区 域第 4章 JSP程序设计基础
JSP 动态网页新技术 37
Switch判断 式
switch(运算式 式 ){
case 1:
程序 片段 ;
break;
case 2:
程序 片段 ;
break;
default:
程序 片段 ;
break;
}
c a s e 判 断 式 1
s w i t c h 区 域
c a s e 判 断 式 2
c a s e 判 断 式 N
主 程 序 区 域
t r u e
t r u e
t r u e
f a l s e
f a l s e
f a l s e
主 程 序 区 域
d e f a u l t 区 域第 4章 JSP程序设计基础
JSP 动态网页新技术 38
For循环
for(初始值 ;条件式 ;表达式 ){
程序代码 ;
}
主 程 序满 足 f o r 条 件 式
f o r 条 件 式不 满 足 f o r 条 件式
f o r 循 环 区 域主 程 序第 4章 JSP程序设计基础
JSP 动态网页新技术 39
while 循环
while(条件 式 ){
程序代码
}
t r u e f a l s e
主 程 序
w h i l e 判 断 式
w h i l e 循 环 区 域主 程 序第 4章 JSP程序设计基础
JSP 动态网页新技术 40
do-while 循环
do{
程序代码
}while(条件式 )
t r u e
w h i l e 循 环 区 域
f a l s e
d o - w h i l e
主 程 序主 程 序
w h i l e 判 断 式第 4章 JSP程序设计基础
JSP 动态网页新技术 41
Break与 continue指令
break指令用来强迫结束循环或离开判断式,在 switch语句中,可以利用它结束一个 case区块的运行,break经常被使用于循环中,进行循环的强迫中断操作 。
continue指令
continue指令会忽略其后的程序代码,而直接运行下一次的循环。
第 4章 JSP程序设计基础
JSP 动态网页新技术 42
HTML与 Script
Script与 HTML之间并非完全没有关联,在实际网页的设计过程中,通过 Script控制 HTML以动态产生网页内容的行为相当普遍,
HTML与 Script之间经常是协同运作而非独立存在。
第 4章 JSP程序设计基础
JSP 动态网页新技术 43
Directives Element
指令 意义
page 使用于设定 JSP的网页特性。
include 使用于将外部文件加载到当前的 JSP网页。
taglib 使用于自定义 JSP标签。
第 4章 JSP程序设计基础
JSP 动态网页新技术 44
引用 Directives Element
Directives Element必须以符号 @进行 引用,并且放置在
<%…%> 区块当 中:
<%@ directivename
propertyname1=value1,propertyname2=value2,…%>
第 4章 JSP程序设计基础
JSP 动态网页新技术 45
Page指令
page指令用来设定 JSP网页的相关特性,包含编码方式、引用类、
缓冲区、使用的 Script语言
<%@page 属性 1=,设定值,,属性 2="设定值 ",…%>
第 4章 JSP程序设计基础
JSP 动态网页新技术 46
page-contentType
设定 JSP网页的文件格式与编码所使用的字符集,默认值为
text/html;charset=ISO-8895-1
contentType属性 值 将网页 文件 数据 的 编码 方式 设定为 GB2312。
<%@page
contentType = "text/html;
charset = GB2312"%>
JSP网页默认 的 编码 方式並沒有 办法识别 中文,contentType属性 的
charset项目必须设定为 GB2312或是 MS950才能 正确显示 中文。
第 4章 JSP程序设计基础
JSP 动态网页新技术 47
page-language & import
Language属性
language属性用来设定编写 JSP网页使用的程序语法,目前处理
JSP网页服务器中的 JSP引擎都只支持 Java,因此这个属性的默认值为 Java。
import屬性
import属性用来指定所要加载的非预设 Java包或类 。
默认加载的包类有 java.lang,javax.servlet,javax.servlet和
javax.servlet.http
载入 非 预设包,如
<%@page import = "java.util.*,java.io.*"%>
加载了 2个包 java.util.*和 java.io.*,以 逗号 作分隔。
第 4章 JSP程序设计基础
JSP 动态网页新技术 48
Page属性设定
Session属性
session属性的属性值可为 true或 false,用来设定 JSP网页是否使用内建的 session对象与功能,默认值为 true。
Buffer属性
– 设定 JSP网页 所使用的 缓冲区 大小。
– 缓冲区 是用 来暂存 一些要 传送 給客 户 端的 数据,默认 值 为 8kb。
– 设定 值 none,表示不使用 缓冲区 的功能。
– 设定缓冲区 的大小值 必须大于 8kb:
<%@page buffer = "24kb"%>
autoFlush
是否在 缓冲区 中的 储存空间已满时,自动将数据传送 至 客户 端,
默认 值 为 true。
第 4章 JSP程序设计基础
JSP 动态网页新技术 49
page-info
Info属性
– 设定一个 代表 当前 這個 JSP网页 的 信息 。
– 设定 內容可在 程序 中使用 getServletInfo()方法來取得。
– 设定 info属性,
<%@page info =,网页信息说明 …,%>
第 4章 JSP程序设计基础
JSP 动态网页新技术 50
Page-isThreadSafe
isThreadSafe
– 设定目前网页产生例外错误时,可取得与显示这个例外错误信息的另一个网页地址 。
– 通常设定的地址为目前网页的相对路径,
<%@page errorPage="error.jsp"%>
– 当目前的网页发生例外错误时,在 error.jsp中可直接使用
exception对象来取得相关的错误信息。
第 4章 JSP程序设计基础
JSP 动态网页新技术 51
page-ErrorPage isErrorPage
ErrorPage
– 设定当前网页产生 例外 错误时,可取得 与显示这个 例外 错误信息 的另一 个网页地址,
<%@page errorPage="error.jsp"%>
– 当目前 的 网页发生 例外 错误时,在 error.jsp中可 直接 使用
exception对象来获取相关 的 错误信息 。
isErrorPage
– 用來 设定网页 是否可 显示 其它 网页 所 产生 的例外 信息,此 属性 的 默认 值 为 false。
第 4章 JSP程序设计基础
JSP 动态网页新技术 52
include指令
Include
– 将 HTML,文本文件 或者 JSP程序载入当前的 JSP网页 。
– File属性为 所要 载入 的 文件路径 。
<%@include file=,载入文件 的 相对路径 "%>
– 一旦引用 include指令,载入 的外部 文件 內容 将成为当前网页 的一部份。
第 4章 JSP程序设计基础
JSP 动态网页新技术 53
Taglib指令
taglib
– 用來引用一 个自定义 的 标签库 。
– taglib使用 语法,
<%@taglib uri=“名称空间,prefix=“前缀,%>
在上面的这行语句中,名称空间代表标签库所在的 URI,前缀则是一个英文字,用来做为自定卷标与网页预设卷标的区别 符号。
第 4章 JSP程序设计基础
JSP 动态网页新技术 54
Action Element
分类 项目 功能说明
JavaBean <jsp:useBean> 使用 JavaBean
<jsp:setProperty> 设定 JavaBean的属性值
<jsp:getProperty> 取得 JavaBean的属性值
<jsp:param> 设定传送参数一般元素 <jsp:plugin> 载入 Java Applet或 JavaBean
<jsp:forward> 网页重新导向
<jsp:include> 载入 HTML或 JSP文件
XML(2.0新增 ) <jsp:attribute> 设定卷标属性
<jsp:body> 动态设定 XML卷标主体
<jsp:element> 动态设定 XML卷标第 4章 JSP程序设计基础
JSP 动态网页新技术 55
<jsp:param>
<jsp:param>
– 传递参数 給 JSP程序 。
– 语法,
<jsp:param name=“参数名称,value=“参数值 "/>
– <jsp:param>元素使用 时必须 要 设定 其 name属性 表示 传递参数的 名称,value属性 用來 设定该参数 的值。
– JSP操作元素 和 HTML不同,设定 元素的 属性时必须 加上 双引号 ""。
– 在 JSP程序 中以如下的 程序代码 來 获取该参数 的值。
– request.getParameter(“参数名称 ");
– <jsp:param>操作元素 的使用 必须 配合 <jsp:include>、
<jsp:forward>以及 <jsp:plugin>等元素。
第 4章 JSP程序设计基础
JSP 动态网页新技术 56
<jsp:include>
<jsp:include>
在当前 的 网页 中 加载 JSP程序 或者 HTML文件,
<jsp:include page =,载入文件 所在的 相对路径,
flush = "true">
<jsp:param name =,参数 1” value =,参数值 "/>
<jsp:param name =,参数 2” value =,参数值 "/>
</jsp:include>
单纯加载文件
<jsp:include page =,载入文件 所在的 相对路径,
flush = "true"/>
第 4章 JSP程序设计基础
JSP 动态网页新技术 57
<jsp:forward>
<jsp:forward>
提供 网址重新定向 的功能:
<jsp:forward page = "导向网页所在的相对路径 ">
<jsp:param name =,参数 1” value =,参数值 "/>
<jsp:param name =,参数 2” value =,参数值 "/>
</jsp:forward>
Page属性设定导向网页 所 在的相对路径 。
<jsp:forward page =,导向网页 所在的 相对路径 "/>