
本书由浅入深、循序渐进地介绍了JSP技术的知识体系、开发技巧以及相关的技术整合。全书共分31章,内容涵盖了JSP技术基础、JSP技术的相关开发技术(包括JavaBeans、文件操作、数据库操作、自定义标签库等技术)、JSP技术与其他技术的整合开发(如Web测试、Log4j、J2EE、Hibernate等)。本书一个最大的特点就是它一切以JSP技术为中心,涉及面广,对使用JSP进行Web开发过程中涉及的技术都有介绍,对每项技术都做了比较详细的介绍并配有实例程序供读者理解,每个例子都具有很强的针对性,力求让读者通过自己动手做而掌握每项技术的要点,从而学习更多的知识。
本书适合JSP/Java编程的初中级读者、JSP编程爱好者、Java开发人员以及高校相关专业师生学习 使用。
前 言
JSP是由Sun微系统公司于1999年6月推出的一项技术。它基于Java Servlet技术,是整个J2EE体系中一项重要的Web开发技术。利用这一技术可以建立先进、安全和跨平台的动态网站。
JSP技术是目前主流Web技术中应用最广泛的一种,它可以让Web开发人员和设计人员非常容易地创建和维护动态网页。作为JavaTM技术的一部分,JSP能够快速开发出基于Web、独立于平台的应用程序。JSP把用户界面从系统内容中分离出来,使得设计人员能够在不改变底层动态内容的前提下改变整个网页布局。JSP的优势在于能够开发大型的具有良好扩充性的程序,所以目前的许多大型商业系统都采用了JSP技术。
随着JSP技术的成熟,使用JSP技术和其他技术进行结合开发成为现今很多应用的重点,而要和其他技术结合开发不但要非常熟悉JSP技术,而且还要对要整合的技术有所了解,最好是能使用它们做一些简单的应用,则使用这些技术时才不至于不知如何下手。
为了让越来越多的Java Web应用开发者能够尽快熟悉JSP技术的开发,作者总结了以前众多开发的经验,精心编排了这本书。本书依照读者的学习规律,首先介绍JSP技术相关的知识,在读者掌握了这些相关JSP技术的基础上,再对内容进行深入的讲解,严格遵循由浅入深、循序渐进的原则,并以最新的Tomcat 5版为例介绍了如何开发JSP应用、如何部署、整合以及解决安全问题等,对于初学者和具有一定开发经验的开发者而言都有很好的参考价值。
本书的特点
1.内容实用,立足实践
本书立足JSP开发的实践,使读者能够非常快地进入实际开发角色;以精炼的语言全面总结了JSP技术,并且每介绍一个知识点都会配合相应的例子。
2.实例丰富,内容新颖
在本书中,基本上每项技术都有相应的实例配合讲解,先介绍一个很简单的例子,然后介绍相关的技术原理,最后再介绍一个相对复杂而更富有实际意义的例子,使得读者开发能力不断提高。而且以JSP和Servlet技术最新标准为基础,并对旧版本的部分内容有所简单介绍,适合于JSP的最新版本。
3.技术先进,内容充实
作者在讲解任何一个知识点之前都会把相关的Java技术进行介绍,并使用具有典型性的例子进行讲解,使得读者能够根据不同的需要选择不同的技术,把JSP技术的方方面面和Java Web应用的各种技术紧密结合,全面覆盖了Java Web应用开发中使用的各种Java技术。
4.讲解通俗,步骤详细
每个实例的制作步骤都以通俗易懂的语言阐述,并穿插讲解技巧,读者阅读时就像听课一样详细而贴切。读者只需要按照步骤操作,就可以学习到Java Web开发的相关知识,并体会到独立完成一个Web应用的乐趣。
5.涉及面广,读者要求低
本书的一个很重要的特点就是把Web应用开发中涉及的各种技术都进行了介绍,通过学习本书,读者可以从零开始,不需要任何JSP或Java技术开发的基础,就可以循序渐进地学习各种技术。
6.主次分明,结构清晰
在讲解范例时,难免会遇到这种情况:为了说明某一个知识点,而要在前面用很多步做辅助工作,这个过程虽然是必要的,但是会扰乱视线,使读者抓不到重点。我们的解决方法是把各种需要事先了解才能编写的代码都编写好,读者通过实例的演示看到实际的效果后,学习起来就轻松多了。而且本书例子的创建步骤是基本一致的,目的是让读者可以轻松阅读,快速掌握。
7.完善的视频演示,易学易懂
为了方便读者完成各种软件和环境的配置,理解实例的操作步骤和意图,本书特意制作了大量的操作视频,既节约了篇幅,又方便了读者的学习和理解,可以说是两全其美,物超所值。
8.附有作者的Blog空间,与读者在线交流
作者为本书专门开辟了一个个人Blog,网址是http://tomcatweb.bokee.com,读者可以直接和作者交流,让作者为读者答疑解惑。另外,作者的E-mail是jmailappuser@163.com,读者也可以通过E-mail和作者联系。
本书包括的内容
本书分为4部分:第1部分介绍JSP技术开发的基础知识;第2部分介绍JSP技术开发的相关技术,主要是那些使用频率比较高的技术;第3部分介绍JSP技术的拓展应用,其中涉及了大量与Web开发相关的技术,是在Java Web开发的高级应用中使用较多的技术;第4部分介绍一个实际开发的例子——一个小的网络书店购书系统,通过这个例子,读者可以较为全面地了解一个系统的开发过程。本书涉及的内容如下:
1.JSP技术开发的基础知识
(1)JSP语法规范;
(2)JSP的内置对象;
(3)JSP的会话管理;
(4)Servlet技术基础。
2.JSP、Servlet、JavaBeans及Java Web应用的基本常用技术
(1)JSP的文件操作;
(2)JSP中使用JavaBeans的要求;
(3)JavaBeans在JSP页面中的生命周期;
(4)JDBC的相关知识;
(5)使用JDBC访问数据库的基本步骤;
(6)配置和使用数据源。
3.Web开发技术的整合应用
(1)开发配置Servlet过滤器与监听器;
(2)使用自定义JSP标签和标准标签;
(3)使用JSP技术开发Java Mail Web应用;
(4)JSP技术与XML技术;
(5)在Tomcat中的Web应用中使用Log4j进行日志管理与程序调试;
(6)JSP结合EJB开发J2EE应用(使用JBoss);
(7)使用Eclipse开发Web应用,介绍使用Eclipse进行JSP开发的两个插件;
(8)JSP结合使用Hibernate技术,实现Web应用的数据持久化;
(9)JSP Web应用的测试;
(10)使用MVC框架,包括Structs、WebWork2、Java Server Faces等;
(11)JSP技术与CORBA技术结合,开发分布式Web应用;
(12)在JSP应用开发中使用Velocity模板语言;
(13)在JSP应用开发中使用XDoclet。
4.JSP Web开发的实例应用
介绍一个小的网络书店购物系统。
本书的读者对象
? JSP/Java编程初中级读者;
? JSP编程爱好者;
? Java开发人员;
? 高校相关专业师生。
本书创作团队
本书由强锋科技统筹组织,由张洪伟主笔编写。其他参与编写、资料整理、程序调试和光盘录制的人员有张增强、王俊标、陈晨、李卓龙、高守传、郭瑞、周宇炜、蔡雪焘、陈杰、荣飞、郑林、张路平、顼宇峰、罗皓菡、赵正坤、公芳亮、程明雷、梁文建、马斗、邱哲、宋昕、陈刚、张传毓、赖梅艳、杨晓强、梁计锋、强致懿、郭腊梅等。在此对大家的辛勤工作表示衷心的感谢!
编著者
2006.5
目 录
第1部分 JSP技术基础
第1章 JSP技术简介 2
1.1 认识HTTP协议 2
1.2 客户端Web程序设计介绍 2
1.2.1 CSS 2
1.2.2 JavaScript 3
1.2.3 VBScript 3
1.2.4 动态HTML 3
1.2.5 Java Applet(Java小应用程序) 4
1.2.6 浏览器技术的作用与局限性 4
1.3 JSP与其他动态网页技术 5
1.3.1 JSP的开发背景及发展历史 5
1.3.2 CGI 6
1.3.3 ASP 6
1.3.4 PHP 7
1.4 JSP的运行原理与优点 7
1.5 JSP的运行环境介绍 8
1.5.1 Tomcat介绍 8
1.5.2 BEA WebLogic介绍 8
1.5.3 IBM WebSphere介绍 9
1.6 运行第一个JSP应用程序 9
1.6.1 安装JDK 9
1.6.2 安装Tomcat 10
1.6.3 编写并发布运行JSP文件 11
1.7 小结 12
第2章 JSP语法 13
2.1 JSP容器与JSP页面生命周期 13
2.1.1 JSP容器介绍 13
2.1.2 JSP页面生命周期 13
2.2 JSP注释 14
2.3 JSP声明 16
2.4 JSP指令 16
2.4.1 定义JSP文件的全局属性——page指令 17
2.4.2 包含一个文件——include指令 18
2.5 JSP动作 18
2.5.1 包含一个静态文件或者其他Web组件的结果——include动作 19
2.5.2 重定向资源——forward动作 21
2.5.3 声明使用的Java插件——plugin动作 22
2.5.4 声明使用一个JavaBeans——useBean动作 23
2.5.5 设置JavaBeans的属性值——setProperty动作 25
2.5.6 获取JavaBeans的属性值——getProperty动作 25
2.6 Java小程序段(Scriptlet) 26
2.7 JSP表达式 27
2.8 小结 27
第3章 JSP内置对象 28
3.1 JSP内置对象介绍 28
3.2 处理客户请求信息——request对象 29
3.2.1 request对象介绍 29
3.2.2 访问请求参数 29
3.2.3 在请求作用域中管理属性 32
3.2.4 获取Cookie 33
3.2.5 访问请求报头 35
3.2.6 访问请求行元素 36
3.2.7 访问安全信息 37
3.2.8 访问国际化信息 38
3.3 控制服务器的响应信息——response对象 39
3.3.1 response对象介绍 39
3.3.2 输出缓冲 39
3.3.3 设置响应报头 41
3.3.4 重定向资源 42
3.4 管理客户的会话——session对象 43
3.4.1 URL重写 43
3.4.2 安装Cookie 43
3.4.3 SSL会话 43
3.4.4 会话服务 43
3.5 Web应用全局对象——application对象 45
3.5.1 访问应用程序初始化参数 45
3.5.2 管理应用程序环境属性 47
3.5.3 支持资源的提取 47
3.5.4 RequestDispatcher方法 48
3.5.5 其他实用方法 50
3.6 当前页面的引用——page变量 50
3.6.1 契约服务 51
3.6.2 访问服务器小程序信息 51
3.7 Servlet的配置信息——config对象 51
3.8 向客户输出数据——out对象 53
3.8.1 管理响应缓冲 53
3.8.2 写入内容 53
3.9 异常处理——exception变量 54
3.10 小结 54
第4章 Servlet技术介绍 55
4.1 Servlet简介 55
4.2 快速体验Servlet——Servlet的简单例子 56
4.2.1 编写Servlet 56
4.2.2 编译并发布Servlet 57
4.3 Servlet的生命周期 59
4.3.1 加载Servlet——由Servlet容器负责 59
4.3.2 初始化Servlet——init()方法 60
4.3.3 请求处理——service()方法 60
4.3.4 终结Servlet——destroy()方法 61
4.3.5 卸载Servlet 61
4.4 HTTP Servlet 61
4.4.1 处理HTTP请求 61
4.4.2 处理HTTP响应 63
4.4.3 HTTP Servlet实例 64
4.5 Web程序的异常处理 66
4.5.1 Java的异常处理 66
4.5.2 Web程序中的异常处理 67
4.6 小结 68
第5章 JavaBeans与JSP技术 69
5.1 JavaBeans技术简介 69
5.2 JavaBeans规范 69
5.2.1 JavaBeans构造方法 69
5.2.2 JavaBeans属性 70
5.2.3 JavaBeans事件 72
5.2.4 JavaBeans的持续性 72
5.3 JavaBeans与EJB的比较 73
5.4 JavaBeans在JSP技术中的应用 73
5.4.1 快速体验在JSP中使用JavaBeans 73
5.4.2 尝试使用JavaBeans 75
5.4.3 不共享的JavaBeans——作用域为页面 77
5.4.4 在请求域内共享JavaBeans 78
5.4.5 在会话域内共享JavaBeans 78
5.4.6 在应用程序域内共享JavaBeans 78
5.4.7 JavaBeans在不同的范围内共享时的效果 78
5.5 使用JavaBeans实现购物车 80
5.6 小结 84
第6章 JSP文件操作 85
6.1 快速体验JSP文件操作——使用JSP读取文本文件的简单例子 85
6.1.1 编写进行文件操作的JavaBeans类 85
6.1.2 编写JSP文件 88
6.1.3 发布运行Web应用 89
6.2 Java文件操作基础介绍 90
6.2.1 使用文件类——File类 90
6.2.2 使用字节流 92
6.2.3 使用字符流 93
6.3 文件的上传 94
6.3.1 组件安装 94
6.3.2 commons-fileupload文件上传介绍 94
6.3.3 文件上传的例子 96
6.4 JSP操作Excel文件 102
6.4.1 安装配置POI 102
6.4.2 使用POI操作Excel工作簿介绍 103
6.4.3 使用POI操作Excel工作簿的例子 104
6.5 小结 109
第7章 JSP Web应用的会话管理 110
7.1 JSP的会话管理机制简介 110
7.1.1 Session简介 110
7.1.2 一个利用了会话跟踪的例子 111
7.2 会话跟踪实现方法介绍 113
7.2.1 使用隐藏表单字段 113
7.2.2 使用Cookie跟踪Session 113
7.2.3 使用URL-rewriting跟踪Session 116
7.3 在Tomcat配置Session 119
7.3.1 为单个Web应用配置Session 119
7.3.2 为所有的Web应用配置Session 121
7.4 使用Tomcat实现会话持久化 121
7.5 小结 127
第8章 JSP 2.0技术 128
8.1 JSP 2.0的表达式语言 128
8.2 JSP 2.0新加指令介绍 131
8.2.1 提供参数——<jsp:param> 131
8.2.2 提示错误信息——<jsp:fallback> 131
8.2.3 动态产生XML元素——<jsp:element> 132
8.2.4 定义属性——<jsp:attribute> 133
8.2.5 定义元素体——<jsp:body> 134
8.2.6 对标签体内容求值——<jsp:doBody> 134
8.2.7 调用标签片段——<jsp:invoke> 135
8.2.8 指定文件类型声明——<jsp:output> 135
8.2.9 定义标签库的标准元素和命名空间——<jsp:root> 136
8.2.10 封装模板数据——<jsp:text> 136
8.3 JSP 2.0简单标签扩展 137
8.3.1 使用SimpleTag接口 137
8.3.2 使用标签文件 140
8.4 小结 142
第2部分 JSP的应用
第9章 自定义JSP标签 144
9.1 自定义JSP标签实例 144
9.2 自定义JSP标签相关API 149
9.2.1 BodyTagSupport类 149
9.2.2 SimpleTagSupport类 151
9.2.3 标签处理中处理异常 152
9.3 标签描述文件 152
9.3.1 taglib标签库元素 153
9.3.2 tag标签元素 153
9.3.3 attribute元素 154
9.3.4 在Web应用中使用自定义标签 155
9.3.5 打包自定义标签库 155
9.4 相关问题 156
9.5 小结 156
第10章 JSP标准标签库(JSTL) 157
10.1 JSTL简介 157
10.2 JSTL快速入门——一个简单的例子 158
10.2.1 下载安装JSTL的例子程序 158
10.2.2 一个新的应用 159
10.3 EL表达式语言 160
10.3.1 限制了作用域的变量 161
10.3.2 隐含对象 162
10.3.3 存取器 164
10.3.4 运算符 165
10.4 使用JSTL的核心标签库(Core Tag Library) 167
10.4.1 通用标签 167
10.4.2 流程控制标签 171
10.4.3 循环迭代标签 172
10.4.4 导入文件和URL操作标签 172
10.5 常见问题 173
10.6 小结 174
第11章 关系数据库与JDBC基础 175
11.1 使用JSP和JDBC开发第一个数据库应用 175
11.1.1 准备数据库驱动程序和数据库 175
11.1.2 编写访问数据库的JSP文件 176
11.1.3 发布访问数据库的Web应用 179
11.2 关系数据库与SQL语言介绍 179
11.2.1 表操作(定义、删除和修改) 179
11.2.2 查询操作 181
11.2.3 数据更新(插入、更新和删除) 182
11.3 JDBC基础知识 183
11.3.1 JDBC简介 184
11.3.2 JDBC两层模型和三层模型 184
11.3.3 指定数据库的URL连接串 185
11.3.4 JDBC API介绍 185
11.4 通过JDBC访问数据库 188
11.4.1 使用JDBC-ODBC桥连接数据库 188
11.4.2 使用本地协议纯Java驱动程序连接数据库 191
11.4.3 使用PreparedStatement接口发送SQL语句——数据录入例子 203
11.4.4 使用JDBC的数据库事务操作——银行转账 205
11.5 JSP与数据库连接池 209
11.6 JSP与数据源(DataSource) 211
11.6.1 数据源(DataSource)简介 211
11.6.2 配置使用数据源 211
11.7 小结 213
第12章 JSP与Java Mail Web应用 214
12.1 Java Mail的简单实例 214
12.1.1 准备邮件服务器 214
12.1.2 编写程序 214
12.1.3 运行程序并查看效果 216
12.2 Java Mail API简介 216
12.3 使用Java Mail API发送带附件的邮件应用 217
12.3.1 编写程序 217
12.3.2 运行程序并查看结果 220
12.4 创建可发送附件的Java Mail Web应用 221
12.4.1 Java Mail Web应用的程序分析 221
12.4.2 邮件账户管理 221
12.4.3 包含文件 224
12.4.4 登录邮件服务器 224
12.4.5 管理邮件夹中的邮件 227
12.4.6 查看邮件 231
12.4.7 写新邮件 232
12.4.8 退出系统 235
12.4.9 发布Java Mail Web应用 235
12.5 小结 236
第13章 XML在JSP中的应用 237
13.1 XML与JSP 237
13.1.1 什么是XML 237
13.1.2 XML的特点 238
13.1.3 XML与JSP的工具介绍 239
13.2 使用DOM解析接口操作XML文件 240
13.2.1 DOM API 240
13.2.2 使用DOM读写XML文件的例子 242
13.3 使用JDOM操作XML文件 246
13.3.1 JDOM的安装与简介 246
13.3.2 使用JDOM读写XML文件 247
13.4 使用SAX操作XML文件 249
13.4.1 SAX API 249
13.4.2 使用SAX读写XML文件 250
13.5 使用XSLT给XML定制样式 258
13.5.1 建立XML文件 260
13.5.2 建立XSLT文件 260
13.5.3 建立源数据的对象 261
13.5.4 建立结果数据的对象 262
13.5.5 转换数据 262
13.6 小结 263
第14章 使用Servlet过滤器和监听器 264
14.1 Servlet过滤器简介 264
14.2 实现一个Servlet过滤器 265
14.2.1 编写实现类的程序 265
14.2.2 配置发布Servlet过滤器 267
14.3 ServletRequest和ServletResponse的包装类 268
14.4 用Servlet过滤器过滤文本信息 269
14.4.1 输出流管理类 269
14.4.2 编写响应包装类 270
14.4.3 编写Servlet过滤器 271
14.4.4 编写JSP和Servlet文件 273
14.4.5 发布运行Web应用 276
14.5 Servlet监听器简介 277
14.5.1 监听服务器ServletContext对象 277
14.5.2 监听客户会话 278
14.5.3 监听客户请求 278
14.6 网站计数器实例——使用Servlet监听器 279
14.7 小结 282
第15章 JSP Web应用的安全性 283
15.1 JSP/Servlet容器认证 283
15.1.1 使用基本认证(BASIC) 285
15.1.2 使用摘要认证(DIGEST) 286
15.1.3 使用基于表单的认证(FORM) 286
15.2 为Web应用配置使用SSL 288
15.2.1 SSL简介 288
15.2.2 在Tomcat中为Web应用配置使用SSL 289
15.3 小结 292
第3部分 整合应用
第16章 Tomcat容器的JSP特色应用 294
16.1 使用Tomcat阀 294
16.1.1 客户访问日志阀 294
16.1.2 远程地址过滤器 296
16.1.3 远程主机过滤器 297
16.1.4 客户请求记录器 297
16.1.5 单点登录阀 299
16.2 使用基于JNDI的应用程序开发(介绍Tomcat的JNDI资源) 300
16.2.1 使用通用JavaBeans资源 301
16.2.2 使用Java Mail Sessions资源 304
16.2.3 使用JDBC Data Sources 304
16.3 小结 304
第17章 在JSP中使用Hibernate实现数据持久化 305
17.1 快速体验JSP结合Hibernate——JSP和Hibernate结合的简单例子 305
17.1.1 Hibernate简介 305
17.1.2 配置Hibernate环境 307
17.1.3 准备数据库和数据库连接池 308
17.1.4 编写持久化类 311
17.1.5 编写Hibernate配置文件 313
17.1.6 编写映射文件 314
17.1.7 编写JSP应用文件 315
17.1.8 编译并发布Web应用 318
17.2 Hibernate技术介绍 319
17.2.1 映射定义 319
17.2.2 Hibernate的类型 322
17.2.3 Hibernate事务 323
17.3 Hibernate配置 323
17.3.1 可编程的配置方式 324
17.3.2 XML配置文件方式 326
17.4 小结 327
第18章 JSP Web应用的设计概述 328
18.1 可维护性与可扩展性设计 328
18.1.1 可维护性 328
18.1.2 可扩展性 329
18.2 JSP Web应用的设计 329
18.2.1 以页面为中心的设计(Model 1) 329
18.2.2 MVC设计模式(Model 2) 330
18.3 Web应用的架构框架 331
18.3.1 Struts——最流行的MVC框架 331
18.3.2 WebWork2——基于XWork的MVC框架 332
18.3.3 Spring——以控制倒置原则为基础的MVC框架 332
18.3.4 Java Server Faces——Sun力推的MVC框架 332
18.4 Web应用的测试 332
18.4.1 JUnit——优秀的单元测试工具 332
18.4.2 Cactus——基于JUnit框架的服务器端测试工具 333
18.5 日志 333
18.5.1 Log4j——最流行的日志工具 333
18.5.2 Jakarta Commons Logging——Jakarta的优秀日志工具 333
18.6 小结 333
第19章 MVC模式实现——Struts 334
19.1 快速体验Struts——使用Struts框架的简单应用实例 334
19.1.1 建立Struts开发环境 334
19.1.2 实例介绍 335
19.1.3 创建Model组件 335
19.1.4 创建View组件 337
19.1.5 编写配置文件 338
19.1.6 发布运行Web应用 339
19.2 Struts框架的体系结构与运行原理 340
19.2.1 从Struts的组件来看Struts的工作原理 340
19.2.2 Struts配置文件struts-config.xml 342
19.3 Struts组件介绍 344
19.3.1 使用ActionServlet控制器类分发请求 344
19.3.2 使用Action组件分离请求和业务 345
19.3.3 使用ActionMapping映射Action 346
19.3.4 ActionForm Bean获取表单数据 347
19.4 使用Struts开发用户登录系统——Struts实例 348
19.4.1 开发模型组件 348
19.4.2 开发视图组件 353
19.4.3 开发辅助类 356
19.4.4 创建配置文件 360
19.4.5 发布Web应用 361
19.4.6 Web应用分析 363
19.5 小结 365
第20章 MVC模式实现——WebWork2 366
20.1 快速体验WebWork2——简单应用实例 366
20.1.1 WebWork2简介 366
20.1.2 建立WebWork2开发环境 367
20.1.3 实例介绍 367
20.1.4 开发构成类和JSP文件 367
20.1.5 编译发布Web应用 372
20.2 WebWork2组件介绍 373
20.2.1 使用Action组件响应客户请求 373
20.2.2 使用ActionContext获取用户请求信息 374
20.2.3 使用ServletDispatcher分发客户请求 375
20.2.4 使用Interceptor(拦截器)框架 376
20.2.5 使用验证框架验证用户输入 378
20.2.6 配置XWork 379
20.3 使用WebWork2开发产品录入系统——WebWork2实例 381
20.3.1 创建Action组件 381
20.3.2 创建视图组件 382
20.3.3 验证框架 384
20.3.4 编写配置文件 385
20.3.5 运行基于WebWork2的Web应用 386
20.4 小结 387
第21章 Java Server Faces 388
21.1 快速体验Java Server Faces——使用Java Server Faces开发的简单例子 388
21.1.1 Java Server Faces技术介绍 388
21.1.2 建立Java Server Faces开发环境 389
21.1.3 编写相关类和文件 389
21.1.4 编译发布Web应用 395
21.2 Java Server Faces的生命周期 396
21.3 JSF定义的组件 397
21.3.1 管理Bean 398
21.3.2 验证器 398
21.4 Java Server Faces导航规则 400
21.5 小结 401
第22章 JSP Web应用测试 402
22.1 JUnit简介及安装配置 402
22.1.1 JUnit简介 402
22.1.2 安装配置 403
22.2 JUnit中常用的接口和类 403
22.3 使用JUnit测试的例子 405
22.4 使用Cactus测试Web应用 409
22.4.1 Cactus介绍 409
22.4.2 使用Cactus测试Web应用 409
22.5 使用StrutsTestCase测试Struts应用程序 412
22.5.1 StrutsTestCase介绍 412
22.5.2 使用StrutsTestCase测试Struts应用程序的例子 412
22.6 小结 418
第23章 使用Log4j进行日志管理与程序调试 419
23.1 快速体验Log4j——使用Log4j的简单例子 419
23.1.1 Log4j简介 419
23.1.2 建立Log4j环境 420
23.1.3 使用Log4j的Web应用 420
23.2 Log4j关键类和接口介绍 422
23.2.1 Logger:日志写出器 422
23.2.2 Level:日志级别 423
23.2.3 Appender接口 424
23.2.4 Layout类:日志输出格式 424
23.2.5 Log4j的Logger继承性 425
23.3 配置Log4j 426
23.3.1 使用Java Properties配置 426
23.3.2 配置log4j.xml 429
23.3.3 Log4j配置实现过程 433
23.4 Web应用中使用Log4j的例子 434
23.5 小结 435
第24章 使用XDoclet简化JSP的Web开发 436
24.1 快速体验XDoclet——使用XDoclet的简单例子 436
24.1.1 XDoclet介绍 436
24.1.2 安装配置XDoclet 436
24.1.3 Java源程序和添加注释 436
24.1.4 书写build.xml文件 439
24.1.5 运行实例 441
24.2 XDoclet生成配置文件过程介绍 442
24.3 使用XDoclet进行Web开发 446
24.3.1 开发Struts 446
24.3.2 开发Servlet过滤器 449
24.3.3 开发自定义标签 451
24.3.4 运行例子 451
24.4 小结 454
第25章 使用Ant管理JSP Web应用 455
25.1 快速体验Ant——使用Ant的简单例子 455
25.1.1 Ant简介 455
25.1.2 安装配置Ant 455
25.1.3 编写应用类文件 456
25.1.4 编写相关的build.xml文件 458
25.1.5 使用Ant运行 459
25.2 编写build.xml文件 460
25.2.1 project元素介绍 460
25.2.2 target元素介绍 461
25.2.3 task元素介绍 461
25.2.4 property元素介绍 462
25.2.5 常用Ant task介绍 462
25.2.6 build.xml实例分析 463
25.3 用Ant发布复杂Web应用 464
25.3.1 build.xml文件 464
25.3.2 init目标 467
25.3.3 compile目标 467
25.3.4 copyjar目标 468
25.3.5 deploy目标 468
25.3.6 clean和help目标 468
25.3.7 使用Ant发布Web应用 468
25.4 小结 469
第26章 使用Eclipse开发JSP 470
26.1 Eclipse简介与Eclipse安装 470
26.1.1 Eclipse简介 470
26.1.2 安装Eclipse和多国语言包 470
26.2 使用Eclipse的Lomboz插件开发JSP 472
26.2.1 Lomboz插件介绍 472
26.2.2 安装配置Lomboz插件 473
26.2.3 安装Tomcat插件 474
26.2.4 使用Lomboz插件开发JSP程序 475
26.2.5 使用Lomboz插件调试JSP程序 477
26.3 小结 478
第27章 使用JBuilder开发JSP 479
27.1 快速体验JBuilder 479
27.1.1 安装JBuilder 479
27.1.2 JBuilder开发环境简介 479
27.2 使用JBuilder开发JSP(实例) 480
27.2.1 建立工程及相关准备工作 480
27.2.2 设置项目相关属性 481
27.2.3 新建Web Module 482
27.2.4 开发JSP 483
27.3 使用JBuilder开发Servlet(实例) 484
27.4 使用JBuilder进行程序调试(实例) 488
27.5 小结 489
第28章 JSP结合EJB开发J2EE应用 490
28.1 快速体验EJB——JSP结合EJB开发的简单例子 490
28.1.1 J2EE简介(J2EE体系结构) 490
28.1.2 JBoss入门 491
28.1.3 一个简单的J2EE应用介绍 492
28.1.4 开发EJB组件 493
28.1.5 在Web应用中访问EJB组件 496
28.1.6 在JBoss中发布运行J2EE应用 498
28.2 EJB技术介绍 499
28.2.1 EJB组件介绍 499
28.2.2 实体EJB 500
28.2.3 会话EJB 501
28.2.4 Web应用中访问EJB组件过程介绍 501
28.3 网上书店——J2EE应用实例 502
28.3.1 创建EJB组件 502
28.3.2 编写配置文件并在Web应用中访问EJB组件 507
28.3.3 发布J2EE应用 509
28.4 小结 510
第29章 JSP作为客户访问CORBA服务 511
29.1 快速体验CORBA——使用JSP访问CORBA的简单例子 511
29.1.1 CORBA简介 511
29.1.2 实现CORBA服务的小例子 512
29.2 CORBA技术构成 516
29.2.1 对象请求代理(Object Request Broker,ORB) 516
29.2.2 接口定义语言(Interface Defination Language,IDL) 517
29.2.3 接口仓库(Interface Repository,IR) 520
29.2.4 对象适配器(Object Adapter,OA) 520
29.2.5 动态调用接口(Dynamic Invocation Interface,DII)和静态调用接口
(Static Invocation Interface,SII) 520
29.2.6 GIOP和IIOP 521
29.3 股票查询服务——CORBA服务实例 521
29.3.1 使用IDL语言定义IDL接口并编译映射到Java程序 521
29.3.2 实现IDL接口 522
29.3.3 编写服务端实现 524
29.3.4 准备数据库 525
29.3.5 实现CORBA客户端 525
29.3.6 配置CORBA服务的Servlet客户端 528
29.3.7 测试CORBA服务与Web应用 529
29.4 小结 530
第30章 Velocity模板语言 531
30.1 Velocity入门 531
30.1.1 简介 531
30.1.2 安装Velocity 531
30.1.3 开始使用Velocity 532
30.2 注释 534
30.3 引用 535
30.3.1 变量引用 535
30.3.2 属性引用 536
30.3.3 方法引用 539
30.3.4 正式引用符(Formal Reference Notation) 540
30.3.5 安静引用符(Quiet Reference Notation) 540
30.4 指令 540
30.4.1 #set指令——变量赋值 541
30.4.2 #if/#elseif/#else指令——条件语句 542
30.4.3 #foreach指令——循环语句 543
30.4.4 #include指令——包含指令 547
30.4.5 #parse指令——导入VM文件 547
30.4.6 #stop指令——停止模板执行 548
30.4.7 #macro指令——定义VTL模板 548
30.5 VTL的其他特征 550
30.5.1 关系运算和逻辑运算 550
30.5.2 转义VTL指令 551
30.5.3 数学运算 551
30.5.4 范围操作 551
30.6 小结 552
第4部分 JSP应用案例
第31章 JSP案例:在线图书订购系统 554
31.1 BookStore实例介绍 554
31.1.1 BookStore的结构描述 554
31.1.2 BookStore的功能介绍 555
31.2 开发并发布JavaBeans 556
31.2.1 图书基本信息Bean——Book 556
31.2.2 购物车Bean——BookShopCart 560
31.2.3 购买项目Bean——ShopBookItem 562
31.3 数据库操作 563
31.4 JSP页面 564
31.4.1 图书列表页面 564
31.4.2 添加图书确认页面 566
31.4.3 中转页面 569
31.4.4 查看购物车 570
31.5 发布运行BookStore应用 573
31.6 小结 573