
Oracle DB 10g XE(特别版)是适用于Java、SQL、PL/SQL等应用程序的一种优秀入门级数据库,可免费下载、开发、部署和分发应用。读者可以花费最小的代价,通过Oracle DB 10g XE,学习已被业界证明、技术领先的强大Oracle DB 10g基础架构,用来开发和部署各种应用程序。本书讲授了Java Web开发技术和Java Web开发环境,系统分析了Oracle DB 10g XE技术在Java Web开发中的应用,层次清晰地建立了Java Web开发的知识体系和应用环境。本书附录根据Sun公司Java Web开发认证的规范,撰写了Java Web开发认证习题与解答。
本书具有系统性、知识性、实用性等特点,适合作为高等院校计算机、通信等专业的教材,对于从事软件开发和应用的科技人员,也是一本适宜的参考书。
Oracle DB 10g Express Edition(Oracle DB XE)是适用于开发Java、C/C++、.NET、PHP、开放源代码、SQL、PL/SQL应用程序的一种优秀入门级数据库。Oracle DB XE(Universal)软件包大小仅为206MB,可运行在Windows和Linux操作系统上,最多存储4GB的用户数据,主机使用的最低内存要求为256MB,最大内存可达1GB。更为重要的是,这个技术领先的数据库可免费下载、开发、部署和分发应用。读者可以花费最小的代价,通过Oracle DB XE学习已被业界证明、技术领先的强大Oracle DB基础架构来开发和部署各种应用程序。在需要时可无缝地升级到Oracle DB 10g,而无需进行昂贵和复杂的移植。
与一般Java Web开发图书不同的是,本书不仅介绍Java Web开发技术和Java Web开发环境,更为重要的是系统分析了Oracle DB XE技术在Java Web开发中的应用,从而层次清晰地建立了Java Web开发的知识体系和应用环境,使读者能够深入理解Java Web开发技术。
本书共有18章,分为Java Web开发环境、Java Web开发技术、Oracle DB 10g XE使用指南、Oracle DB XE与Web开发等4个部分。另外,本书附录依据Sun公司Java Web开发认证的规范,撰写了Java Web开发认证习题与解答。
第1部分:Java Web开发环境
包括第1~4章。第1章概括性地介绍了Java Web开发技术,第2章介绍了用于Java Web开发的Oracle JDeveloper 10g IDE(JDeveloper 10g),第3章介绍了基于IDE开发Java应用程序的方法,第4章介绍了Java Web开发的部署、执行环境OracleAS 10g Container for J2EE(OC4J 10g)。
第2部分:Java Web开发技术
包括第5~8章。第5章介绍了Servlet运行原理和生命周期,分析了基本Servlet的结构,阐述了在JDeveloper 10g和OC4J 10g环境下,开发、部署和运行Servlet的原理和方法。第6章介绍了Servlet API中主要的接口和类的用途和使用方法,阐述了创建具有Servlet过滤器和事件监听器功能的Web应用的原理和方法。第7章介绍了JSP的运行原理、执行机制和生命周期,介绍了JSP页面的基本组成、语法、JSP隐含对象的用途和使用范围,阐述了在JDeveloper 10g和OC4J 10g环境下,开发、部署和运行JSP页面的原理和方法。第8章介绍了JSP指令和操作,分析了JSP与JavaBean之间的关系,阐述了在JDeveloper 10g和OC4J 10g环境下,使用JSP指令、操作以及JavaBean开发Web应用的原理和方法。
第3部分:Oracle DB 10g XE使用指南
包括第9~12章。Oracle DB XE提供了以Web浏览器作为用户管理、访问数据库的中文图形化界面,简化了对数据库的操作。其中,“对象浏览器”提供了对SQL进行可视化操作的环境,而“SQL命令器”提供了使用SQL、PL/SQL等的命令行执行环境。第9章介绍了Oracle DB XE的用途、系统需求、安装方法,分析了Oracle DB XE体系结构,介绍了启动、停止Oracle DB XE监听器和数据库服务器的方法,并介绍了用“管理命令器”创建DBA账号和一般用户账号的方法。第10章介绍了Oracle DB XE模式对象的相关概念,介绍了使用“对象浏览器”创建和维护数据表的方法。第11章介绍了SQL函数和操作符,介绍了使用“SQL命令器”实现SQL的数据查询和数据操纵功能的方法。第12章介绍了JDBC的概念、工作原理、JDBC驱动程序的类型,阐述了在JDeveloper 10g和OC4J 10g环境下,开发、部署、运行Oracle JDBC程序的原理和方法。
第4部分:Oracle DB XE与Web开发
包括第13~18章。第13章介绍了java.sql包中主要的类和接口的用途,阐述了在JDeveloper 10g和OC4J 10g环境下,使用JDBC API创建Web应用的原理和方法。第14章介绍了MVC设计模式的概念和体系结构,探讨了如何根据MVC设计模式的原理,综合运用Servlet、JSP以及JDBC技术实现Web应用的开发。第15章介绍了PL/SQL语言的概念、程序块的基本结构、语法要素和程序控制结构,阐述了在JDeveloper 10g和OC4J 10g环境下,使用JSP和JDBC调用PL/SQL过程和函数的原理与方法。第16章介绍了Oracle JVM和Java存储过程,以及在Oracle DB XE中创建、部署和运行Java存储过程的方法,阐述了在JDeveloper 10g和OC4J 10g环境下,从JSP调用部署在Oracle DB XE中的Java存储过程的原理和方法。第17章介绍了JDBC连接池和连接缓冲的工作原理,阐述了在JDeveloper 10g和OC4J 10g环境下,Oracle JDBC连接池与连接缓冲在Web应用中实现的原理和方法。第17章介绍了如何开发用于JSP页面的“自定义标记库”,包括如何编写“标记处理类文件”、“标记库描述文件”以及在JSP页面内使用自定义标记,阐述了在JDeveloper 10g和OC4J 10g环境下,在JSP页面内使用“自定义标记”进行Web开发的原理和方法。
本书内容深入浅出、知识结构完整、图文并茂,独具特色。全书采用了案例教学的方法,既有丰富的理论知识,又有大量的实践范例,突出强调对读者综合运用知识能力的培养。本书适合作为高等院校计算机、通信等专业的教材,对于从事软件开发和应用的科技人员,也是一本适宜的参考书。书中例子的源代码和教学PPT课件可从清华大学出版社网站上下载,下载网址是:http://www.tup.com.cn。
本书的出版得到了东北大学信息科学与工程学院博士生导师于戈教授的关心与指导,并为本书撰写了序言。高玮老师为本书撰写了Java Web开发认证习题与解答,并协助作者编制、调试了部分章节的源程序。
本书作为辽宁省教育科学“十一五”规划课题《基于Web的智能教学模式的研究与实践》(高22-7,辽教函[2006]8号文件)研究成果的一部分,从选题到立意,从酝酿到完稿,自始至终得到了学校、院系领导和同行老师的关心与指导。刘杰教授和李航博士认真审阅全书,并对本书的策划和编写提供了有益的帮助和支持。韩瑛教授对本书初稿在教学过程中存在的问题提出了宝贵的建议。本书也吸纳和借鉴了中外参考文献中的原理知识和资料,在此一并致以谢忱。
编 者
III
第1部分 Java Web开发环境
第1章 Java Web开发技术概述 2
1.1 J2EE体系结构 2
1.2 J2EE容器和组件 4
1.2.1 容器 4
1.2.2 组件 5
1.3 客户层技术 6
1.3.1 Web客户 6
1.3.2 Applet客户 7
1.3.3 应用客户 7
1.4 Web层技术 7
1.4.1 Web组件 8
1.4.2 Web层基本结构 11
1.4.3 Web组件的选择 12
1.5 EJB层技术 13
1.6 数据层技术 14
1.6.1 J2EE平台 14
1.6.2 命名服务与服务 15
1.6.3 部署服务与管理服务 15
1.6.4 Oracle DB XE 18
1.6.5 基于JDBC API的数据库
服务 18
1.6.6 数据事务服务 18
1.7 J2EE平台中角色与任务 19
1.8 小结 19
第2章 Java Web开发环境概述 21
2.1 Oracle JDeveloper 10g简介 21
2.2 安装Oracle JDeveloper 10g 25
2.3 Oracle JDeveloper 10g IDE 26
2.3.1 命令工作区 27
2.3.2 开发工作区 28
2.3.3 信息浏览工作区 32
2.4 IDE工作环境配置 32
2.4.1 Preferences命令 32
2.4.2 Configure Palette命令项 34
2.5 IDE工程环境配置 35
2.5.1 文件类型 35
2.5.2 IDE工程环境配置 36
2.6 Oracle JDeveloper 10g对象库 39
2.7 小结 39
第3章 基于IDE开发Java程序 41
3.1 用IDE创建Java类 41
3.2 基于UML类图设计Java类 46
3.3 由Java类生成UML类图 51
3.4 小结 52
第4章 Java Web执行环境 53
4.1 OC4J概述 53
4.2 安装OC4J 57
4.3 在OC4J中部署J2EE应用 58
4.4 在OC4J中部署Web应用 64
4.4.1 注册Web应用 64
4.4.2 Web应用的结构 65
4.5 OC4J的其他配置 74
4.6 小结 76
第2部分 Java Web开发技术
第5章 基于IDE开发Servlet 80
5.1 Servlet编程基础 80
5.1.1 HTTP通信协议 80
5.1.2 Servlet运行原理 82
5.2 基本Servlet结构 83
5.2.1 GenericServlet与
HttpServlet 84
5.2.2 Servlet生命周期 85
5.3 用JDeveloper开发Servlet 87
5.3.1 创建Servlet类 87
5.3.2 分析Servlet类 90
5.3.3 部署与运行Web应用 92
5.4 小结 98
第6章 基于Servlet API的Web开发 99
6.1 Servlet API概述 99
6.1.1 Servlet基本类 99
6.1.2 Web请求和响应类 101
6.1.3 与Web容器联系 102
6.1.4 与Web应用联系 103
6.1.5 Servlet异常类 103
6.1.6 其他附属类 103
6.2 处理客户请求 104
6.2.1 HTTP客户请求的数据
格式 104
6.2.2 处理客户表单数据 107
6.2.3 建立Web响应 112
6.3 Servlet会话处理 116
6.3.1 HTTP会话 117
6.3.2 HttpSession接口 118
6.4 与其他Servlet合作 127
6.4.1 在Web响应中包含其他Web
资源(include) 128
6.4.2 向其他Web资源转递
请求(forward) 130
6.5 Servlet过滤器 131
6.5.1 过滤器的概念 131
6.5.2 过滤器的使用方法 132
6.5.3 在Web应用中使用过滤器 133
6.6 Servlet事件监听器 138
6.6.1 事件 138
6.6.2 事件监听器的类型 139
6.6.3 在Web应用中使用
事件监听器 139
6.7 小结 142
第7章 基于IDE开发JSP 144
7.1 JSP概述 144
7.1.1 JSP运行原理 144
7.1.2 JSP生命周期方法 145
7.1.3 JSP执行过程 146
7.2 JSP脚本元素 147
7.3 基于IDE开发JSP页面 149
7.4 JSP隐含对象 152
7.4.1 对象使用范围 153
7.4.2 request对象 153
7.4.3 response对象 155
7.4.4 out对象 159
7.4.5 session对象 159
7.4.6 application对象 164
7.4.7 page与config对象 166
7.4.8 pageContext对象 166
7.5 小结 167
第8章 JSP指令、操作与JavaBean 169
8.1 JSP指令 169
8.1.1 page指令 169
8.1.2 include指令 175
8.2 JSP操作 176
8.2.1 <jsp:include>与<jsp:param>
操作 177
8.2.2 <jsp:forward>操作 178
8.3 JSP与JavaBean 180
8.3.1 JavaBean的存取范围 181
8.3.2 使用JavaBean 181
8.3.3 JavaBean在JSP中的应用 183
8.4 小结 186
第3部分 Oracle DB 10g XE使用指南
第9章 Oracle DB XE基础知识 190
9.1 Oracle DB XE简介 190
9.2 Oracle DB XE系统需求 191
9.3 安装Oracle DB XE 191
9.4 Oracle DB XE体系结构 193
9.4.1 Oracle实例 194
9.4.2 Oracle数据库 195
9.5 启动和停止监听器 197
9.6 启动和停止数据库服务器 198
9.7 连接数据库服务器 200
9.8 用户及权限管理 200
9.9 安装与使用OracleDB XE Client 202
9.10 小结 204
第10章 Oracle DB XE模式对象 205
10.1 SQL概述 205
10.2 数据库模式对象 205
10.3 创建表 209
10.4 维护表结构 212
10.5 输入和修改表数据 213
10.6 小结 214
第11章 用SQL访问Oracle DB XE 215
11.1 SQL函数 215
11.1.1 数值型函数 215
11.1.2 字符型函数 216
11.1.3 日期型函数 216
11.1.4 转换函数 217
11.1.5 聚集函数 218
11.2 SQL操作符 218
11.3 用SQL查询数据 219
11.3.1 单表查询 220
11.3.2 多表查询 224
11.3.3 嵌套查询 225
11.4 用SQL输入数据 226
11.5 用SQL更新数据 227
11.6 用SQL删除数据 228
11.7 小结 229
第12章 Oracle JDBC程序设计 230
12.1 JDBC基本概念 230
12.2 java.sql包 231
12.3 JDBC工作原理 233
12.4 JDBC驱动程序 233
12.5 基于JDBC API访问通用数据库 236
12.6 基于JDBC API连接
Oracle DB XE 238
12.6.1 Oracle JDBC驱动程序 239
12.6.2 命名服务与服务 240
12.6.3 javax.sql包 242
12.6.4 JDBC数据源 243
12.6.5 基于JDeveloper连接
Oracle DB XE 247
12.7 PL/SQL程序设计环境 251
12.8 小结 251
第4部分 Oracle DB 10g XE与Web开发
第13章 基于JDBC API的Web开发 254
13.1 Connection接口 254
13.2 Statement接口 255
13.3 SQLException类 258
13.4 ResultSet接口 259
13.4.1 串行访问ResultSet 259
13.4.2 ResultSet接口中的方法 260
13.4.3 记录集元数据 262
13.4.4 可被更新和滚动的记
录集 264
13.5 PreparedStatement接口 267
13.6 CallableStatement接口 271
13.7 DatabaseMetaData接口 272
13.8 小结 274
第14章 Web设计模式及案例分析 276
14.1 Web应用程序设计的重要性 276
14.2 问题的提出 277
14.3 MVC设计模式 278
14.3.1 MVC体系结构 278
14.3.2 MVC的动态行为关系 280
14.3.3 MVC的CRC卡 281
14.3.4 MVC的优缺点 281
14.4 结构化Web应用 282
14.4.1 Model 1结构 282
14.4.2 Model 2结构 283
14.4.3 MVC设计模式的优点 285
14.5 Web开发案例分析 286
14.5.1 数据表设计 286
14.5.2 功能概述 286
14.5.3 体系结构 286
14.5.4 显示模块设计 289
14.5.5 修改模块设计 290
14.5.6 添加模块设计 291
14.5.7 删除模块设计 292
14.6 小结 293
第15章 PL/SQL与Web开发 294
15.1 PL/SQL概述 294
15.2 PL/SQL程序设计 294
15.2.1 PL/SQL块结构 295
15.2.2 变量和类型 296
15.2.3 条件逻辑 296
15.2.4 循环 297
15.2.5 PL/SQL复合类型 299
15.2.6 异常处理 304
15.3 基于JSP调用PL/SQL过程 307
15.3.1 创建PL/SQL过程 307
15.3.2 使用JDBC调用PL/SQL
过程 309
15.3.3 示例应用程序 309
15.4 基于JSP调用PL/SQL函数 311
15.4.1 创建PL/SQL函数 311
15.4.2 使用JDBC调用PL/SQL
函数 312
15.4.3 示例应用程序 313
15.5 小结 315
第16章 Java存储过程与Web开发 316
16.1 Oracle JVM简介 316
16.2 Java存储过程 317
16.3 创建Java存储过程 319
16.4 基于JSP调用Java存储过程 325
16.5 小结 327
第17章 JDBC连接池与Web开发 328
17.1 JDBC连接池工作原理 328
17.2 JDBC连接池和缓存包 329
17.3 实现Oracle JDBC连接池 329
17.4 实现Oracle JDBC连接缓存 334
17.5 控制PooledConnection对象
数量 339
17.6 小结 339
第18章 自定义标记库与Web开发 341
18.1 自定义标记与标记库 341
18.1.1 自定义标记 341
18.1.2 自定义标记的分类 342
18.1.3 自定义标记库 342
18.1.4 自定义标记库与JavaBean
的比较 343
18.1.5 JSTL简介 343
18.1.6 自定义标记库的运行
原理 344
18.2 标记处理类API 344
18.2.1 javax.servlet.jsp包 345
18.2.2 javax.servlet.jsp.tagext包 345
18.3 标记处理类生命周期方法 345
18.3.1 TagSupport类 345
18.3.2 BodyTagSupport类 347
18.4 标记库描述文件 348
18.5 使用自定义标记库 348
18.6 用IDE开发自定义标记库 349
18.7 小结 355
附录 Java Web认证习题与解答 356
参考文献 382