第2章 JSP元素.

Slides:



Advertisements
Similar presentations
第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
Advertisements

第六讲 JSP 指令. 动态网站建设与规划 主讲:徐洪章 QQ:
第二章 JSP 编译指令. 课程目标  JSP 编译指令  JSP 页面的表达式  JSP 页面的注释  JSP 页面的声明  Scriptlets.
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
第六章 网页设计与制作基础.
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
项目2 字符格式和段落编排 2017年3月7日6时54分.
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
模块1 网页设计基础 实训1 体验HTML文档 1.1 网页基础知识 1.2 网站配色方案 1.3 网站设计常用软件
PRESENTED BY OfficePLUS
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第3章 超文本标记语言(HTML) 3.1 基本结构标记 3.2 文本格式标记 3.3 超链接标记<A></A>
Hello World 體驗實作第一個JSP程式.
专题4:JSP脚本和指令.
武汉纺织大学传媒学院 cm.wtu.edu.cn
第二讲 搭建Java Web开发环境 主讲人:孙娜
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
第六讲 JSP中的文件操作(2) 教学目的 本讲继续讲述JSP中使用Java输入、输出流实现文件的读写操作 。 1 文件上传 2 文件下载
辅导课程六.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
第17章 网站发布.
POWERPOINT TEMPLATE HI.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
网页制作基础 CNIC 王桦.
任务1-3 使用Dreamweaver创建ASP网页
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
SOA – Experiment 2: Query Classification Web Service
编程作业3:网页正文抽取 (10分).
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
产品推广 PRODUCT PROMOTION PRESENTED BY OfficePLUS.
计算机及办公软件应用 ©2013 苏州工业园区职业技术学院
直接扫描保存成TIF格式, 其他图片格式用Windows XP自带的 Windows图片与传真查看器打开
PRESENTED BY OfficePLUS
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
VB与Access数据库的连接.
PRESENTED BY OfficePLUS
姚金宇 MIT SCHEME 使用说明 姚金宇
POWERPOINT TEMPLATE PRESENTED BY OfficePLUS.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
项目二:HTML语言基础.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
数据库系统与应用实验 基于SQL Server 2005.
第4章 Excel电子表格制作软件 4.4 函数(一).
段磊 王慧锋 TEL: 数据库系统原理课程设计 实验环节4 段磊 王慧锋 TEL:
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
Visual Basic程序设计 第13章 访问数据库
VRP教程 2011.
第9章 多媒体技术 掌握 Windows 画图工具的基本操作; 掌握 Windows 音频工具进行音频播放;
Python 环境搭建 基于Anaconda和VSCode.
武汉纺织大学传媒学院 cm.wtu.edu.cn
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第四章 UNIX文件系统.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
LOGO HERE 单击此处添加 您的标题标题标题 PRESENTED BY JANE DOE
第4章 JSP动态网页设计基础 教学目标 教学重点 教学过程 2019年10月21日.
第四章 jsp语法 4.1 jsp页面的基本结构 一个jsp页面可由五种元素组合而成: 普通的html标记符
百万行、千万行数据查询教程 老黄牛.
Presentation transcript:

第2章 JSP元素

本章主要内容 常用的HTML标记 JSP指令元素 JSP脚本元素 JSP动作元素 XML与XML文档

2.1 JSP页面的组成元素 2.1.1 JSP页面的组成元素

2.1 JSP页面的组成元素 JSP页面的组成元素 JSP元素 模板文本元素 注释元素 指令元素 脚本元素 动作元素

2.1 JSP页面的组成元素 2.1.2 常用的HTML标记 HTML (HyperText Markup Language,超文本标记语言)不是程序设计语言,而是一组标记,便于网页设计人员把文本、图像、动画等制作成有一定效果的网页,资源间通过超链接联结成为一个有机的整体。

2.1 JSP页面的组成元素 HTML文件的基本结构包括文件头(Head)和文件体(Body)两大部分,头部为浏览器提供所需的描述信息,主体则包含待显示的内容。 HTML文本由浏览器解释并还原出页面效果。

2.1 JSP页面的组成元素 HTML标记是用尖括号标识的字符串,尖括号中的英文名叫标记名(如<body>),标记名与左边的“<”间一般不留空格。每个HTML标记都有自己特定的功能或效果,例如<font>标记可定义字体、字号和字的颜色等。

2.1 JSP页面的组成元素 大部分HTML标记是成对出现,不带“/”的叫起始标记,带有“/”的叫结束标记。标记的属性参数一般写在起始标记内。起始标记和结束标记间的对象称为标记体,标记的效果作用在标记体上,例如: <font size="5" color="#FF0000">JSP程序设计</font>

2.1 JSP页面的组成元素 当一个标记对没有标记体时,称之为空标记,此时可用简写式来表示,即:在起始标记的“>”字符前加上“/”,并把结束标记省略不写。如: <jsp:forward page="a1.jsp" / >

2.1 JSP页面的组成元素 1、文件标记 文件标记在HTML文件中,用于指出HTML文件的各组成部分。HTML文件标记一般只出现一次,如果重复出现,一些早期的浏览器可能无法正常解释。

2.1 JSP页面的组成元素 (1)<html> </html>标记 <html>标记表示HTML文件从此处开始,到</html>标记结束,这对标记处在最外层,网页的内容写在此标记内。

2.1 JSP页面的组成元素 (2)<head> </head>标记 这对标记表示此处是HTML文档的文件头。文件头内部的信息一般不会在浏览器的正文区显示。此标记对内可以插入其它标记,如网页标题标记<title></title>。

2.1 JSP页面的组成元素 (3)<body> </body>标记 这对标记表示此处是网页的主体,一般不能省略,标记体的内容在浏览器正文区中显示,例如文字、图片和超链接等。

2.1 JSP页面的组成元素 2、排版标记 (1)<!-- -->标记 (1)<!-- -->标记 <!-- -->标记在HTML文件中作注释用,对网页中的代码作说明,可以放在网页中的任何位置。注释内容会返回到客户端浏览器上,但不显示。在IE5浏览器中,通过菜单【查看】→【源文件】,可以看到<!-- -->注释。

2.1 JSP页面的组成元素 (2)<p>标记 <p></p>标记对用于标识一个段落,两个相邻的段落间有一空行的间隔。在DreamWeaver8的设计视图模式中,输入文字后按<回车>键,会自动产生<p></p>标记。

2.1 JSP页面的组成元素 (3)<br>标记 这个标记没有结束标记,表示换行。在DreamWeaver8的设计视图中,输入文字后按<Shift>+<回车>组合键,会自动产生<br>标记。<p></p>标记和<br>都能换行,但<br>换行后,上下两行的间距比较小,<p></p>标记换行后,上下两行有一空行的间距。

2.1 JSP页面的组成元素 3、字体标记 字体标记包括有: <STRONG>、<B>、<EM>、<I>、<FONT>等。 1)<font>标记用于定义字体、字号大小和颜色。<font>标记的主要属性有face、size、color。 (1)face属性用于设置字体,如:<font face="宋体">。

2.1 JSP页面的组成元素 (2)size属性用于设置字号,HTML中定义了7种字号,1号最小,7号最大,如:<font size=“4”>。字号也可以用“磅”(px)表示。 (3)color属性用于设置文本的颜色,color有三种方法来设定颜色,第一种方法是用颜色名称,第二种方法用红、绿和蓝色百分比的RGB值来设定,第三种方法是用十六进制的颜色代号来设定颜色。

2.1 JSP页面的组成元素 如: <FONT COLOR="RED">颜色设定</FONT> <FONT COLOR="RGB(70%,10%,30%)">颜色设定</FONT> <FONT COLOR="#FF0000">颜色设定</FONT>

2.1 JSP页面的组成元素 4、表格标记 在网页中,表格主要分成排版表格和数据表格两种。 排版表格在浏览器中不显示边线,仅供排版、布局用。 数据表格在浏览器中显示边线或背景色,用于列表显示数据。

2.1 JSP页面的组成元素 <table>标记表示表格的开始,</table>表示表格到此结束。 <tr></tr>表示表格中的一行。 <table></table>间如果有n对<tr></tr>标记,表示此表格有n行。 <td></td>表示一行中的一列,一般写在<tr></tr>内。

2.1 JSP页面的组成元素 <table>、<tr>、<td>间的嵌套关系为: <td></td> </tr> </table>

2.1 JSP页面的组成元素 【例2-1】用DW8制作一个3行3列的细线数据表格,表格宽400像素,边线粗细为1个像素,边线颜色为红色。操作步骤如下: 第一步:启动DW8,在【文件】窗口中单击右键,在弹出的快捷菜单中选择【新建文件】,自动生成一个JSP页面文件,将其更名为exam201.jsp。双击exam201.jsp文件,打开供编辑,确定当前文档视图为设计视图。

2.1 JSP页面的组成元素 第二步:插入表格。使用菜单【插入】→【表格】,在对话框中填写如下参数:行数为3,列数为3,表格宽度为400像素,边框粗细为0,单元格边距为0,单元格间距为1,单击“确定”按钮后编辑区中插入了一个表格。

2.1 JSP页面的组成元素 第三步:定义表格的背景色为红色。在编辑区中单击表格的边线,选定整个表格,属性面板上,背景颜色选择红色(#FF0000)。 第四步:定义单元格的背景色为白色。用鼠标左键拖动选定表格中的所有单元格,在属性面板中,定义单元格的背景色为白色(#FFFFFF),至此,细线表格生成。

2.1 JSP页面的组成元素 第五步:预览。用快捷键<CTRL>+S保存文档,启动Tomcat,按<F12>预览exam201.jsp,即可看到网页上的细线表格。 以上操作录相请参考电子资源包demo\ch2\exam201.exe文件。

2.1 JSP页面的组成元素 5、表单 表单是系统和用户交互的手段之一。用户在表单中填写数据,提交后,表单中的数据传递给后台程序处理,实现了客户端和服务器的交互。

2.1 JSP页面的组成元素 (1)<form>和</form>标记 <form>标记中的id和name属性均为表单的ID名,用于在当前网页中标识表单,在当前网页中此ID名应该唯一。

2.1 JSP页面的组成元素 <form>中action属性值为后台表单处理程序的URI,本例指定用exam.jsp来处理表单数据。 <form>标记中的method属性表示数据的提交方式,一般有GET和POST两种方式。GET方式将表单中的数据按照“变量名=变量值”的形式附加在URL的查询串中,各个变量之间使用“&”连接。

2.1 JSP页面的组成元素 本例如果采用GET方式提交数据,则相应的URL类似于: http://127.0.0.1:8080/exam.jsp?name=user1&Submit=%CC%E1%BD%BB

2.1 JSP页面的组成元素 用GET方式提交表单数据的优点是速度快,缺点是变量值会在浏览器的地址栏中显示,并且URL的长度有限制,一次所能提交的数据量有限。 如果用POST方式提交表单数据,表单数据按“变量名=变量值”的形式存放在HTTP请求报头尾部的数据体中,表单数据不会显示在URL中。

2.1 JSP页面的组成元素 (2)文本域标记 文本域表单的常见用法如: <input name="name" type="text" id="name" value="123" /> <input>标记表示此标记是写入标记,存储用户写入的信息。标记中的id和name属性为文本域的ID名,type属性表示此写入标记的类型,value属性存储文本域的值。

2.1 JSP页面的组成元素 多行文本框用文本区域表单元素实现,它的HTML标记使用格式如下: <textarea name="textarea">内容</textarea> name属性是文本区域的名字。由于多行文本框可以输入较多的内容,所以把写入的内容存储在标记体中。

2.1 JSP页面的组成元素 (3)单选按钮 在实际应用中的“性别”信息一般通过单选按钮采集,用户在给定的“男”和“女”两个选项中选择其中一个,相应的HTML代码如:

2.1 JSP页面的组成元素 (4)复选按钮 在实际应用的“爱好”信息一般通过复选按钮采集,用户在列出的多个爱好中作出选择,可以选零个,也可以全选,相应的HTML代码如:

2.1 JSP页面的组成元素 (5)隐藏表单域 隐藏表单域是不可视的表单元素,用于存储隐含信息,例如将用户的登录信息存储在隐藏表单域中,用户提交表单后,隐藏表单域中的信息也会被提交给服务器。隐藏表单域记录的是“name=value”形式的信息,它的HTML标记类似于:

2.1 JSP页面的组成元素 (6)列表表单元素 列表表单元素预先把一组可供选择的数据存储在列表中,以下拉菜单或列表的形式供用户在其中选择,其中name是选项的提示文字,value才是选项的值。它的HTML标记形如: <select name=" career" size="3" multiple="multiple"> <option value="001" selected="selected">公司员工</option> <option value="002">在校学生</option> <option value="003">公务员</option> </select>

2.1 JSP页面的组成元素 (7)文件域表单元素 文件域表单由一个文本域和一个按钮组成,单击按钮后会激活一个文件选择对话框,从本地磁盘中选择一个文件,被选中文件的路径及文件名自动填写在文本域中。上传文件时,需要用到文件域。文件域的HTML标记形如:

2.1 JSP页面的组成元素 6、超链接 <a>标记的href属性可以定义超链接,它的一般用法是: <a href="next.htm">下一页</a> href属性值为目标资源的URL,如果是空链接,则URL写为“#”。

2.1 JSP页面的组成元素 【例2-2】用DW8设计一个会员注册的JSP页面,如图2-2示。用户名文本域的名称为userName,口令文本域的名称为password。性别用单选按钮实现,名称为sect,可选值为“男”、“女”。爱好为复选按钮,名称为hobby,可选值有“篮球”、“排球”和“足球”。开户行是下拉列表,名称为bankAccount,可选值有“中国银行”、“工商银行”、“建设银行”。附言是多行文本域,名称为memo。最后是提交按钮,以POST方式提交给exam303.jsp页面。

2.1 JSP页面的组成元素

2.1 JSP页面的组成元素 操作步骤如下: (1)启动DW8,在【文件】窗口中合适的位置上单击右键,在弹出的菜单中选择【新建文件】,将新生成的JSP页面改名为exam202.jsp,双击打开供编辑。 (2)插入表单:使用菜单【插入】→【表单】→【表单】,单击选中表单的红色边框,在属性面板上的【动作】项中输入“exam303.jsp”作为后台处理程序,在【方法】项中选中“POST”。

2.1 JSP页面的组成元素 (3)按图2-2的要求,在表单内制作出题目所要求的表单。 (4)保存文档。使用菜单【文件】→【保存】,或用快捷键<CTRL>+S。 (5)预览。启动Tomcat,在DW8中,按<F12>预览当前页,则IE浏览器中显示图2-2示的表单。 以上操作录相请参考电子资源包demo\ch2\exam202.exe文件。

2.2 JSP注释元素 JSP页面中的注释用于说明程序段的主要作用或程序员的意图,方便日后维护或备忘。JSP页面中的注释主要两种:JSP注释和HTML注释。

2.2 JSP注释元素 2.2.1 JSP注释 JSP注释也叫隐藏注释或服务器端注释,只有打开JSP页面后才能看到它。JSP注释中的内容被编译器忽略,不会出现在Servlet程序中,也不会返回给客户端浏览器。其基本语法为: <%-- 注释的内容 --%>

2.2 JSP注释元素 例如: JSP注释在JSP页面上的位置没有统一规定,但习惯上写在程序段前,需要注意:JSP注释属于标记级的注释,不要把它嵌套在类似于“<% %>”的标记内。

2.2 JSP注释元素 2.2.2 HTML注释 HTML注释也叫输出注释,属于HTML标记范畴,也是标记级的注释。其基本语法为: <!-- 注释内容 [<%%>|<%=%>] -->

2.2 JSP注释元素 HTML注释被JSP编译器视为HTML标记,直接用out.write()方法输出。标记中的注释内容会返回到客户端浏览器,但注释信息不会在浏览器中显示。 在HTML注释中,可以使用<%%>或<%=%>等标记输出一些动态的注释信息。

2.3 JSP指令元素 JSP指令元素(Directive Elements)主要供JSP容器使用,为JSP容器提供相关的页面属性信息,用于指示JSP容器如何正确地翻译代码,或者执行特定的操作。 JSP指令元素主要包括三个:include、page和taglib,它们的基本语法格式形如: <%@ 指令元素 属性="值" %>

<%@ include file="relativeURLspec" %> 2.3 JSP指令元素 2.3.1 include指令元素 1、include指令的基本语法 include指令元素称为文件包含,是在JSP容器把JSP网页翻译成Servlet程序时,将指定文本文件的内容嵌入Servlet程序中,替换include指令。其基本语法为 <%@ include file="relativeURLspec" %>

2.3 JSP指令元素 file属性指出被包含资源的URL,可使用相对路径或绝对路径。绝对路径以Web应用的上下文路径名“/xxxx”开头,如:

2.3 JSP指令元素 2、include指令的使用注意事项 include指令适合于包含静态内容。 include指令是代码静态绑定,被include指令包含的内容在编译时会被静态地嵌入Servlet程序中 。 include指令影响JSP页面的可读性。

2.3 JSP指令元素 2.3.2 page指令元素 page指令用于设置当前JSP页面的属性。 page指令中允许重复使用多次的属性有pageEncoding和import属性等。习惯上,把page指令写在JSP页面的头部。

2.3 JSP指令元素 page指令的基本语法格式如下 <%@ page language="java" extends=" ……." import=" ……." session=" true|false" buffer="none|default|sizekb" autoFlush="true|false" isThreadSafe="true|false" info="…….." isErrorPage="true|false" errorPage="…….." contentType="……." pageEncoding="default" isELIgnored="true|false" %>

2.3 JSP指令元素 1、language属性 这个属性定义JSP页面脚本代码所采用的编程语言,默认值为java。 2、extends属性 JSP页面最终会被JSP容器编译成一个Servlet程序,extends属性用于定义这个Servlet程序的父类。

2.3 JSP指令元素 3、import属性 import属性用于导入当前JSP页面中要用到的其它Java类。如果要导入多个Java类,用逗号来分隔它们,例如要导入java.util.*和java.io.*,可写为: 也可以分为两行来写,例如: <%@page import="java.util.*,java.io.*"%> <%@page import="java.util.*"%> <%@page import="java.io.*"%>

2.3 JSP指令元素 4、pageEncoding属性 pageEncoding定义当前页面的字符编码标准,默认的字符集为ISO-8859-1,如果页面中有简体中文,则字符集应该定义为GB2312或GBK。

2.3 JSP指令元素 5、contentType属性 contentType属性定义MIME类型(MIME-type)和字符集。 MIME (Multipurpose Internet Mail Extensions,多功能Internet 邮件扩充服务)使用简单的ASCII文本来传递E-mail信息, E-mail中允许包含有任意类型的附件文件。

2.3 JSP指令元素 给HTTP协议附加了MIME-type信息,用于指明HTTP中所传递信息的数据类型,浏览器接收完数据后,按照数据的类型调用合适的软件来处理这些数据。 例如,如果接收到的信息是一个Excel文件,则IE5浏览器会自动启动Excel软件来处理这些信息,如果Excel软件启动失败或客户端找不到Excel软件时,IE浏览器提示用户将接收到的信息另存为文件。

2.3 JSP指令元素 常见的MIME-type类型 数据类型 MIME-type 文件名后缀 HTML文本 text/html .htm、.html 一般文本 text/plain *.txt RTF文本 application/rtf *.rtf MS-WORD文档 application/msword *.doc MS Excel application/vnd.ms-excel *.xls MS-PowerPoint演示文稿 application/vnd.ms-powerpoint *.ppt Adobe PDF文档 application/pdf *.pdf zip压缩文档 application/zip *.zip JPEG图片文档 image/jpeg *.jpg PNG图片文档 image/png *.png GIF图片 image/gif *.gif AVI video/x-msvideo *.avi MPEG-1视频文档 video/mpeg *.mpg

<%@ page contentType="text/html; charset=gb2312"> 2.3 JSP指令元素 contentType属性的一般用法如下示: <%@ page contentType="text/html; charset=gb2312">

2.3 JSP指令元素 6、session属性 session属性用来指示JSP页面的Servlet实现类中,是否要生成一个session隐含对象。关于session隐含对象,在后续的章节中有详细的介绍。

2.3 JSP指令元素 7、buffer属性 out对象是JSP页面的隐含对象之一,用于向客户端返回信息。buffer属性为out对象定义输出流缓冲区,则out.write()输出的信息会暂时存储在缓冲区中,缓冲区被刷新后,其中的信息会通过PrintWriter对象传给客户端。

<%@page buffer="64kb"%> 2.3 JSP指令元素 输出缓冲区能够改善系统的性能。buffer属性取值为none时,表示不设缓冲区,则out对象的输出信息会直接传递PrintWriter。当buffer取值为nkb时,表示缓冲区的大小为nKB,默认值为8KB。一个应用样例如: <%@page buffer="64kb"%>

<%@page buffer="2kb" autoFlush="false"%> 2.3 JSP指令元素 8、autoFlush属性 定义out对象缓冲区的刷新属性。autoFulsh取值为true时,表示缓冲区满时自动执行刷新操作,取值为false表示缓冲区满时,抛出一个IOException异常。默认值为true。这个属性一般和buffer属性联合使用,如果buffer="none"时,则autoFlush="true"无效。一个应用样例如: <%@page buffer="2kb" autoFlush="false"%>

2.3 JSP指令元素 9、isThreadSafe属性 isThreadSafe="true"时,表示JSP编译后所得的Servlet程序以多线程方式工作,采用Servlet多线程方式工作能提高程序的响应速度,减少系统开销。默认值为true。当isThreadSafe="false"时,表示Servlet程序以单线程方式工作。

2.3 JSP指令元素 10、info属性 定义JSP页面的信息,如版权、开发日期等,可通过javax.sevlet.Servlet.getServletInfo()方法读取这些信息。一个样例如下示: <body> <%@page info="xxx公司信息部研发,2007-1-9"%> <%=getServletInfo()%> </body>

2.3 JSP指令元素 11、isELIgnored 属性 isELIgnored="true"时,表示忽略JSP页面中的EL表达式,isELIgnored="false"时表示JSP页面中的EL表达式要被解释和执行。默认值为true。EL表达式是JSP2.0中新增的技术规范,在后续章节有详细的介绍。

2.3 JSP指令元素 12、errorPage属性 JSP页面如果发生了运行时异常,出错原因、出错的类名、出错的行号、出错的方法名等信息会被封装在异常对象中。errorPage属性用于指明:JSP页面发生运行时异常,则把异常对象传递给指定的出错页处理,errorPage中的值为出错页的URL,可用相对路径或绝对路径表达。此项默认值为空,则运行时异常信息直接显示在浏览器上。应用样例如下示:

2.3 JSP指令元素 当前JSP页面出现运行时异常,服务器会把异常对象传递给nullString.jsp页面处理。 <%@ page errorPage="nullString.jsp" %> 或: <%@ page errorPage="/error/nullString.jsp" %> 当前JSP页面出现运行时异常,服务器会把异常对象传递给nullString.jsp页面处理。 errorPage属性在JSP页面中只需定义一次,如果定义多次,编译时可能会引发“重复标记”的语法错误。

2.3 JSP指令元素 13、isErrorPage属性 isErrorPage="true"时,定义本JSP页面为异常对象处理页,特点是当前JSP页面的Servlet实现类中定义有exception隐含对象,接收异常页传递过来的异常信息。exception对象是Throwable类型的,在后续章节中有介绍。 isErrorPage="false"时,Servlet程序中不定义exception隐含对象。

2.3 JSP指令元素 【例2-3】定义一个exam208.jsp页面,运行时会发生异常,并能自动切换至exam209.jsp页面显示出错的类名、方法名、出错原因等信息。操作步骤如下: (1)启动DW8,新建JSP文件exam208.jsp。在exam208.jsp的代码视图中,将第1行中的<%@page %>指令属性修改如下:

2.3 JSP指令元素 定义若exam208.jsp发生运行时异常,则转至exam209.jsp页面显示异常信息。 <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="exam209.jsp" %> 定义若exam208.jsp发生运行时异常,则转至exam209.jsp页面显示异常信息。 在exam208.jsp的<body></body>间输入如下的代码,使exam208.jsp运行时发生对象引用为空的异常:

2.3 JSP指令元素 第1行: <body> 第2行: <% 第3行: String s=null; 保存exam208.jsp 第1行: <body> 第2行: <% 第3行: String s=null; 第4行: int i=s.length(); 第5行: %> 第6行: </body>

2.3 JSP指令元素 (2)在DW8中新建JSP文件exam209.jsp。在exam209.jsp的代码视图中,修改第1行<%@page%>指令,定义当前页为异常对象处理页: <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" isErrorPage="true" %>

2.3 JSP指令元素 在exam209.jsp中的<body></body>标记内,添加如下示的代码: 第2行: <% 第3行: StackTraceElement a[]=exception.getStackTrace(); 第4行: out.print("出错原因:"+exception+"<br>"); 第5行: out.print("出错的文件:"+a[0].getFileName()+"<br>"); 第6行: out.print("出错的方法名:"+a[0].getMethodName()+"<br>"); 第7行: out.print("出错的行号:"+a[0].getLineNumber()+"<br>"); 第8行: %> 第9行: </body>

2.3 JSP指令元素 (3)预览。启动Tomcat,预览exam208.jsp页面,结果如图2-3示。

2.3 JSP指令元素 在实验过程中,如果exam208.jsp和exam209.jsp中的代码均没有语法错误,但预览exam208.jsp后,异常信息无法显示,只是在IE5浏览器中出现“该页无法显示”的提示,这是服务器传递给IE5的错误信息不足1KB以及IE5的高级选项中设置了“显示友好HTTP错误信息”参数引起,最简单的解决方法是在exam209.jsp页面的<head></head>标记内,加入<!-- - -> 注释标记,在注释标记中多粘贴一些文字,使服务器的返回信息在1KB以上。

2.3 JSP指令元素 例如在exam209.jsp的<head></head>标记中,加入以下的注释:

2.3 JSP指令元素 2.3.3 taglib指令 1、taglib标记库 taglib是JSP中实现模型与表示分离的重要机制,一个标记的后台有相关的Java程序与之对应,在JSP页面中使用了一个标记,则表示此处调用相应的Java程序,程序运行结果传回至标记处显示。

2.3 JSP指令元素 taglib的优势是明显的:它实现了模型与表示的分离,提高了Java代码的可重用性和可维护性,例如要修改代码时,程序员只需要对Java程序进行重新编译,不需要触及网页表示层。 在JSP中,标记库主要包括标准标记库和扩展标记库。标准标记库就是常用的JSP动作(JSP Action),例如:<jsp:useBean>、<jsp:include>等。扩展标记库包括JSTL和用户自定义的标记等,在后续的章节中有详细的介绍。

<%@taglib uri="taglibURI" prefix="pre"%> 2.3 JSP指令元素 2、taglib指令 在JSP页面中可以直接使用JSP动作,但如果要使用扩展标记库,要求在JSP页面头部用taglib指令作出声明。taglib指令的语法格式为: <%@taglib uri="taglibURI" prefix="pre"%>

2.3 JSP指令元素 其中uri属性值是待用标记库的URI,每个标记库都有一个唯一的URI,这个URI在标记库的配置文件中已作定义,此处直接引用。prefix属性值是待用标记的前缀,在标记库的配置文件中也已经作定义,此处也是直接引用。例如: <%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql"%> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

<%! declaration(s) %> 2.4 JSP脚本元素 2.4.1 声明元素 声明元素<%! %>用于声明类成员变量、成员方法或内部类。 1、声明元素的基本语法格式 <%! declaration(s) %>

2.4 JSP脚本元素 2、用声明元素声明类成员变量 例如: <%! int x1=100,a[]=new int[6]; static double x2; String str=null; %>

2.4 JSP脚本元素 3、用声明元素声明成员方法 例如: <%! //定义adder()方法计算1+2+...+n int adder(int n) { int sum=0; for(int i=1;i<=n;i++) sum=sum+i; return sum; } %>

2.4 JSP脚本元素 2.4.2 脚本小程序 脚本小程序就是一段Java代码。在JSP页面中声明脚本小程序的基本语法格式为: 2.4.2 脚本小程序 脚本小程序就是一段Java代码。在JSP页面中声明脚本小程序的基本语法格式为: Tomcat把<% %>标记内的Java代码段放在Servlet实现类 _jspService()方法的try{}内,所以在<%%>内定义的变量属于局部变量,并且作用范围仅限于try{}内。如果有多个<% %>标记,则按出现的先后顺序转译到try{}内。 <% scriptlet %>

2.4 JSP脚本元素 一个样例如下示:

2.4 JSP脚本元素 【例2-4】有一个空白的学生成绩表格如下示,第1行是表格的标题行,第2行起是数据行。第1行标题栏的文字要居中对齐,背景色为浅紫色(#CC66FF)。要求用JSP脚本程序段产生5行数据行,并且奇数号数据行背景色为浅黄色(#FFFF99),偶数号数据行背景色为浅绿色(#33FF66),最终得到一个6行3列的空白学生成绩表。

2.4 JSP脚本元素 操作步骤如下: (1)启动DW8,新建JSP文件exam210.jsp。在设计视图模式下插入一个表格,表格的参数为:2行3列,400像素宽,间距为1像素,其它参数均为0。 (2)在表格第1行的3列中,分别输入题目标题栏中的文字“学号”、“姓名”、“成绩”。拖动鼠标左键,选定第1行的3 列,在属性面板上单击【居中对齐】按钮,在【背景颜色】栏中输入背景色取值“#CC66FF”。

2.4 JSP脚本元素 (3)切换到代码视图,找到第2个<tr>标记,添加如下的代码:

<%= expression %> 2.4 JSP脚本元素 2.4.3 表达式元素 表达式元素的基本功能是运行一条Java表达式,如果表达式有计算结果,则把结果显示在表达式位置上。表达式元素的基本语法格式如下: <%= expression %>

out.write(expression); 2.4 JSP脚本元素 表达式元素的标记经过Tomcat翻译后,在Servlet实现类中一般表示为: 如果表达式复杂,则标记可能被分解成多条连续的out.write()语句。 表达式元素的用法例如: 注意表达式不能带Java语句结束符“;”。 out.write(expression); <%= 1+(5/2) %>

2.5 JSP标准动作 在JSP中,将类似于<xxx:yyy>的JSP标记也称为JSP动作。JSP动作分为标准动作和扩展动作。JSP标准动作是一组形如“<jsp:xxx>”的标记,标记的前缀均为“jsp”。JSP标准动作的标记名是由JSP规范定义,用户不能随意更改。利用JSP动作可以动态地插入文件、将用户重定向到另一个页面、动态生成XML元素等。

2.5 JSP标准动作

2.5 JSP标准动作 2.5.2 <jsp:include>动作

<jsp:include page="urlSpec" flush="true|false"/> 动态包含的基本语法格式如下: 或 <jsp:include page="urlSpec" flush="true|false"/> <jsp:include page="urlSpec" flush="true|false"> { <jsp:param .... /> }* </jsp:include>

2.5 JSP标准动作 在<jsp:include>标记中,page="urlSpec"属性定义了被包含资源的URL,可用相对路径或绝对路径表达。属性flush="true"时,表示在包含目标资源前,先刷新当前页面输出缓冲区中的内容。flush="false"时,包含文件前,不刷新当前页面的输出缓冲区。默认值为false。如果要给被包含的页面传递参数,可以使用<jsp:param>标记。

2.5 JSP标准动作 在被包含的页面中,不能改变response的状态码,也不能对HTTP响应报头进行设置,这些工作应当在调用页面中进行。 例如,有一个被包含的文件my2.jsp为: <!-- 被包含的文件名为 my2.jsp ---> <%@ page contentType="text/html; charset=gb2312" %> 调用包含文件返回的结果: <% out.println("调用成功"); %>

<jsp:include page="my2.jsp" flush="true"/> 要在my1.jsp包含这个JSP文件,则调用代码为: 在Tomcat中,my1.jsp和my2.jsp被编译成两个Servlet程序,其中<jsp:include>动作在Servlet实现类中的代码为: <jsp:include page="my2.jsp" flush="true"/>

2.5 JSP标准动作 JSP容器能自动识别被包含文件中的内容哪些是静态,哪些是动态,对于静态内容不作处理,直接打印输出;对于动态内容,则执行相应的程序代码。 值得注意的是:如果被包含文件中存在动态内容,则文件名的后缀应该为*.jsp,如果取其它的文件名后缀,JSP容器在调用被包含文件时不执行编译操作,动态内容的代码将被忽略。

<jsp:param name="name" value="value" /> <jsp:param>主要是为<jsp:include>、<jsp:forward>和<jsp:params>等动作元素传递参数,如果在其它场合中使用它,JSP容器会报告翻译错误。 <jsp:param>的基本语法为: <jsp:param name="name" value="value" />

2.5 JSP标准动作 2.5.4 <jsp:forward>动作 <jsp:forward>动作使程序从当前页面跳转到另一个目标页面运行,目标页面可以是静态资源(如*.htm),也可以是一个JSP页面(*.jsp),还可以是一个Servlet、CGI程序等。<jsp:forward>会导致当前JSP页面运行中断,断点后的代码将无法被继续执行。

<jsp:forward page= "relativeURLspec "/> 或 <jsp:forward page= "relativeURLspec "/> <jsp:forward page= "urlSpec "> { <jsp:param .... /> }* </jsp:forward>

2.5 JSP标准动作 2.5.5 <jsp:plugin>动作 <jsp:plugin>主要用来在客户端浏览器中加载运行一个Applet或JavaBean,被加载的Applet或JavaBean可以是单个类文件*.class,也可以是一个*.jar包。在JSP页面中使用<jsp:plugin>动作,服务器将把被加载的文件传送到客户端,由客户端的JVM运行Applet或JavaBean。

2.5 JSP标准动作 <jsp:plugin>的基本语法格式为: <jsp:plugin type="bean|applet" code="objectCode" codebase="objectCodebase" { align="alignment" } { archive="archiveList" } { height="height" } { hspace="hspace" } { jreversion="jreversion" } { name="componentName" }

2.5 JSP标准动作 { vspace="vspace" } { title=”title” } { width="width" } { nspluginurl="url" } { iepluginurl="url" } { mayscript=’true|false’ } > { <jsp:params> { <jsp:param name="paramName" value=”paramValue" /> }+ </jsp:params> } { <jsp:fallback> arbitrary_text </jsp:fallback> } </jsp:plugin>

2.5 JSP标准动作 2.5.6 <jsp:params>和<jsp:fallback> <jsp:params>是<jsp:plugin>的一部分,只能在<jsp:plugin>中使用,在其它场合下使用,JSP容器在翻译时会报错。在<jsp:params>内部书写<jsp:param>。 <jsp:fallback>也是<jsp:plugin>的一部分,只能在<jsp:plugin>中使用,在其它场合下使用,JSP容器在翻译时会报错。<jsp:plugin>用于定义启动Applet/JavaBean失败时,显示的提示信息。

2.5 JSP标准动作 2.5.7 XML与XML文档 1、XML与XML文档 XML (eXtensible Markup Language, 可扩展的标记语言)允许用户自定义一组标记来描述数据,XML的主要目标是提供结构化数据。XML文档由文件头和文件体两大部分构成。文件头负责向XML解释器传递文档信息,主要包括XML声明、注释和文档类型等。文件体是用XML标记描述数据。

<?xml version="1.0" [encoding=""] [standlone=”yes|no”] ?> 2.5 JSP标准动作 文档声明 XML文档的第一行一般是文档声明,它的基本格式如下示: XML声明中有三个属性:version、encoding和standlone。 <?xml version="1.0" [encoding=""] [standlone=”yes|no”] ?>

2.5 JSP标准动作 version属性指明XML文档符合的XML规范版本号,一般取值为“1.0”。 encoding属性是可选的,用于指明XML文档中字符的编码标准,默认值是UTF-8,如果文档使用了简体中文字符,则属性取值为“gb2312”。 standlone属性取值为“yes”时,表示XML文档是自我验证,取值为“no”时,表示使用DTD等进行验证。

2.5 JSP标准动作 XML文件体 XML的文件体是用XML标记来存储数据的地方。文件体采用树形结构来存储数据,并且有一个标记充当根元素。根元素只有一个,根元素中可以嵌套其它标记(子元素)。 例如,一个描述学生信息的XML文档如下示:

2.5 JSP标准动作 <?xml version="1.0" encoding="gb2312" ?> <students> <student recoNO="1"> <id>AB0987</id> <name>张三</name> <phone>4147644</phone> </student> <student recoNO="2"> <id>AC88721</id> <name>李四</name> <phone>5253354</phone> </students>

<name>张三</name> 2.5 JSP标准动作 2、XML文档的使用注意事项 在书写XML文档时,要注意以下事项: 标记要成对出现。也就是说,起始标记和结束标记要配对出现,例如: 其中<name>是起始标记,</name>是结束标记。 <name>张三</name>

<item id="DB554" price="45.2" qty="3" /> 2.5 JSP标准动作 如果标记没有标记体,则称为空标记,空标记可以简写为“<xxx />”形式,例如: 大小写敏感。例如<name>不同于<Name>。 要有一个唯一的根元素。 子元素间允许层次嵌套,但不允许交叉。例如,以下的<name>和<phone>子元素出现了交叉现象: <item id="DB554" price="45.2" qty="3" />

2.5 JSP标准动作 <student> <id>AB0987</id> <name> 张三 <phone> </name> 4147644 </phone> </student>

2.5 JSP标准动作 应该按层次嵌套格式修改为: <student> <id>AB0987</id> <name>张三</name> <phone>4147644</phone> </student>