资源说明:第1章 J2EE的基本概念和规范....................................................................................................2
1.1. J2EE定义.................................................................................................................................2
1.2. J2EE规范构成.........................................................................................................................3
1.3. J2EE体系结构.........................................................................................................................3
1.3.1.
Java
语言系统
.................................................................................................................3
1.3.2.
客户端程序设计模型
.....................................................................................................4
1.3.3.
中间层基础结构
.............................................................................................................4
1.3.4.
程序员企业级
API...........................................................................................................4
1.4. J2EE N-TIERS结构....................................................................................................................4
1.5. C/S与B/S结构区别.................................................................................................................6
1.6. 小结.........................................................................................................................................7
第2章 WEB服务器和WEB应用服务器.......................................................................................8
2.1. WEB服务器(WEB SERVER)......................................................................................................8
2.2. 应用程序服务器(THE APPLICATION SERVER).........................................................................8
2.3. 一个例子.................................................................................................................................9
2.3.1.
情景
1
:不带应用程序服务器的
Web
服务器
................................................................9
2.3.2.
情景
2
:带应用程序服务器的
Web
服务器
....................................................................9
2.3.3.
附加说明
.........................................................................................................................9
2.4. 应用程序服务器(THE APPLICATION SERVER).......................................................................10
2.4.1.
BEA Weblogic................................................................................................................10
2.4.2.
IBM Webshpere..............................................................................................................10
- ii -
2.4.3.
JBoss..............................................................................................................................10
2.4.4.
Tomcat...........................................................................................................................10
2.5. 小结.......................................................................................................................................11
第3章 利用TOMCAT创建和发布WEB应用.................................................................................12
3.1. TOMCAT与SERVLET容器........................................................................................................13
3.2. TOMCAT结构..........................................................................................................................13
3.2.1.
server.xml
文件属性
.......................................................................................................15
3.3. JAVA WEB应用简介...............................................................................................................16
3.4. TOMCAT的工作模式..............................................................................................................17
3.4.1.
独立的
Servlet
容器
........................................................................................................17
3.4.2.
进程内的
Servlet
容器
....................................................................................................17
3.4.3.
进程外的
Servlet
容器
....................................................................................................18
3.5. TOMCAT的版本......................................................................................................................18
3.6. TOMCAT安装配置..................................................................................................................19
3.6.1.
j2sdk
的安装
...................................................................................................................19
3.6.2.
使用可执行文件安装
Tomcat........................................................................................20
3.6.3.
解压安装
Tomcat...........................................................................................................20
3.7. 基本的安装测试...................................................................................................................20
3.8. TOMCAT ADMIN的安装..........................................................................................................22
3.9. TOMCAT启动分析..................................................................................................................23
3.10. TOMCAT目录结构..................................................................................................................24
3.11. 创建和发布WEB应用............................................................................................................24
3.11.1.
Web
应用的目录结构
....................................................................................................24
3.11.2.
Eclipse
+
MyEclipse
开发
helloapp
的
Web
应用
..............................................................25
3.12. 手工部署开发式目录结构...................................................................................................38
3.12.1.
在
server.xml
文件中加入
元素
.....................................................................38
3.13. 利用TOMCAT配置虚拟主机..................................................................................................38
3.14. 小结.......................................................................................................................................39
第4章 JAVA SERVLET..............................................................................................................40
4.1. 第一个SERVLET.....................................................................................................................40
4.1.1.
基本结构
.......................................................................................................................40
4.1.2.
输出纯文本的
Servlet....................................................................................................44
4.1.3.
Servlet
的编译和安装
....................................................................................................45
4.2. 处理表单数据.......................................................................................................................49
4.2.1.
表单数据概述
...............................................................................................................49
4.2.2.
实例:读取表单变量
...................................................................................................50
4.2.3.
实例:输出所有表单数据
...........................................................................................52
4.2.4.
实例:测试表单
...........................................................................................................54
4.3. 读取HTTP请求.......................................................................................................................56
4.3.1.
http
请求头概述
.............................................................................................................56
4.3.2.
实例:在
Servlet
中读取请求头
....................................................................................57
4.3.3.
实例:输出所有的请求头
...........................................................................................57
4.4. 访问CGI变量........................................................................................................................59
- iii -
4.4.1.
CGI
概述
........................................................................................................................59
4.4.2.
标准
CGI
变量的
Servlet
等价表示
.................................................................................60
4.4.3.
实例:读取
CGI
变量
....................................................................................................61
4.5. HTTP应答状态.......................................................................................................................63
4.5.1.
状态代码概述
...............................................................................................................63
4.5.2.
设置状态代码
...............................................................................................................64
4.5.3.
HTTP.
状态代码及其含义
.............................................................................................64
4.5.4.
实例:访问多个搜索引擎
...........................................................................................67
4.6. 设置HTTP应答头.................................................................................................................70
4.6.1.
HTTP
应答头概述
.........................................................................................................70
4.6.2.
常见应答头及其含义
...................................................................................................71
4.6.3.
实例:定时刷新页面的例子
.......................................................................................72
4.7. 处理COOKIE...........................................................................................................................74
4.7.1.
Cookie
概述
....................................................................................................................74
4.7.2.
Servlet
的
Cookie API.....................................................................................................74
4.7.3.
几个
Cookie
工具函数
....................................................................................................76
4.8. 会话状态...............................................................................................................................79
4.8.1.
会话状态概述
...............................................................................................................79
4.8.2.
会话状态跟踪
API.........................................................................................................80
4.8.3.
查看当前请求的会话对象
...........................................................................................80
4.8.4.
查看和会话有关的信息
...............................................................................................80
4.8.5.
在会话对象中保存数据
...............................................................................................81
4.8.6.
实例:显示会话信息
...................................................................................................82
4.9. 小结.......................................................................................................................................84
第5章 JAVA SERVER PAGE.....................................................................................................85
5.1. 概述.......................................................................................................................................85
5.2. JSP和其他类似技术比较.....................................................................................................86
5.3. JSP语法概要表.....................................................................................................................86
5.4. 脚本元素、指令和预定义变量............................................................................................88
5.4.1.
JSP
脚本元素
.................................................................................................................88
5.4.2.
JSP
指令
.........................................................................................................................89
5.4.3.
实例:脚本元素和指令的应用
...................................................................................91
5.5. JSP预定义变量.....................................................................................................................92
5.5.1.
HttpServletRequest
类的
Request
对象
................................................................92
5.5.2.
HttpServletResponse
类的
Respone
对象
............................................................92
5.5.3.
JspWriter
类的
out
对象
..............................................................................................92
5.5.4.
HttpSession
类的
session
对象
.................................................................................93
5.5.5.
ServletContex
类的
application
对象
.....................................................................93
5.5.6.
ServletConfig
类的
Config
对象
................................................................................93
5.5.7.
PageContext
类的
PageContext
对象
.....................................................................93
5.5.8.
Object
类的
Page
(相当于
this
)对象
.....................................................................93
5.5.9.
exception........................................................................................................................93
5.6. JSP动作.................................................................................................................................95
5.6.1.
jsp:include
动作
.............................................................................................................96
- iv -
5.6.2.
jsp:useBean
动作
...........................................................................................................97
5.6.3.
关于
jsp:useBean
的进一步说明
....................................................................................99
5.6.4.
jsp:setProperty
动作
.....................................................................................................100
5.6.5.
jsp:getProperty
动作
....................................................................................................103
5.6.6.
jsp:forward
动作
..........................................................................................................104
5.6.7.
jsp:plugin
动作
.............................................................................................................104
5.6.8.
附录:
JSP
注释和字符引用约定
...............................................................................104
5.7. JSP/SERVLET应用程序优化................................................................................................104
5.7.1.
在
HttpServlet init()
方法中缓存数据
..........................................................................104
5.7.2.
禁用
servlet
和
Jsp
的自动装载功能
.............................................................................105
5.7.3.
控制
HttpSession..........................................................................................................105
5.7.4.
使用
gzip
压缩
..............................................................................................................106
5.7.5.
不要使用
SingleThreadModel......................................................................................106
5.7.6.
使用线程池
.................................................................................................................107
5.7.7.
选择正确的包括机制
.................................................................................................107
5.7.8.
在
useBean
动作中使用合适的范围
............................................................................107
5.7.9.
其他技术
.....................................................................................................................107
5.8. 实例:BOOKSTORE应用......................................................................................................108
5.8.1.
Web
服务器层
..............................................................................................................108
5.8.2.
数据库层
.....................................................................................................................108
5.8.3.
JavaBean
和实用类
.....................................................................................................122
5.8.4.
发布
bookstore
应用
.....................................................................................................132
5.9. 小结.....................................................................................................................................132
第6章 JDBC技术.......................................................................................................................133
6.1. 概述.....................................................................................................................................133
6.2. JDBC的设计目的................................................................................................................133
6.3. JDBC的主要功能................................................................................................................133
6.4. 与ODBC相比JDBC特点.....................................................................................................135
6.5. JDBC结构............................................................................................................................135
6.6. JDBC工作原理....................................................................................................................136
6.7. 数据库应用的模型.............................................................................................................138
6.8. 通过JDBC 实现对数据库的访问......................................................................................139
6.8.1.
编写访问数据库程序的步骤
.....................................................................................139
6.8.2.
实现对数据库的一般查询
Statement..........................................................................141
6.8.3.
预编译方式执行
SQL
语句
PreparedStatement............................................................143
6.8.4.
执行存储过程
CallableStatement................................................................................143
6.8.5.
ResultSet
对象
..............................................................................................................143
6.8.6.
数据转换
.....................................................................................................................144
6.8.7.
对应
JAVA
与
SQL
类型
.................................................................................................144
6.8.8.
NULL
结果值
...............................................................................................................147
6.8.9.
获得结果集中的结构信息
.........................................................................................147
6.9. 更新数据库.........................................................................................................................148
6.9.1.
对表中的记录进行操作
.............................................................................................148
6.9.2.
创建和删除表
.............................................................................................................150
- v -
6.9.3.
增加和删除表中的列
.................................................................................................150
6.9.4.
利用
PreparedStatement
对象实现数据更新
...............................................................151
6.10. 参数的输入与输出.............................................................................................................151
6.11. 事务处理.............................................................................................................................152
6.12. 批量处理JDBC语句提高处理速度....................................................................................154
6.13. 处理中文编码问题.............................................................................................................155
6.14. 通过JDBC访问数据库的JSP范例程序..............................................................................157
6.15. 在BOOKSTORE应用中通过JDBC访问数据库.....................................................................159
6.16. 数据源DATASOURCE...........................................................................................................164
6.16.1.
数据源和连接池
.........................................................................................................165
6.16.2.
数据源和
JNDI
资源
....................................................................................................165
6.17. 在TOMCAT中配置数据源....................................................................................................166
6.17.1.
server.xml
中加入
元素
.............................................................................166
6.17.2.
在应用程序的
web.xml
中加入
元素
....................................................168
6.18. 程序中访问数据源.............................................................................................................168
6.18.1.
通过数据源访问数据库的
JSP
范例程序
...................................................................168
6.18.2.
在
bookstore
应用中通过数据源访问数据库
..............................................................170
6.19. 小结.....................................................................................................................................175
第7章 STRUTS与MVC设计模式............................................................................................177
7.1. STRUTS与JAVA WEB应用.....................................................................................................177
7.1.1.
Web
组件的三种关联
..................................................................................................177
7.1.2.
MVC
概述
....................................................................................................................179
7.1.3.
JSP Model1
和
JSP Model2.........................................................................................181
7.1.4.
Struts
概述
....................................................................................................................182
7.2. 从HELLOAPP开始STRUTS应用.............................................................................................187
7.2.1.
helloapp
的需求
...........................................................................................................187
7.2.2.
组建
Struts
框架
............................................................................................................187
7.2.3.
创建工程
.....................................................................................................................187
7.2.4.
创建视图组件
.............................................................................................................189
7.2.5.
创建控制器组件
.........................................................................................................196
7.2.6.
创建模型组件
.............................................................................................................199
7.2.7.
配置文件
.....................................................................................................................199
7.3. 配置STRUTS组件.................................................................................................................201
7.3.1.
Web
应用部署描述符
................................................................................................202
7.3.2.
ActionServlet
的参数
..................................................................................................204
7.3.3.
Struts
配置
....................................................................................................................207
7.3.4.
Struts
配置元素
..........................................................................................................209
7.3.5.
Struts config
骨架
.........................................................................................................215
7.3.6.
应用资源文件
.............................................................................................................216
7.3.7.
配置
Struts
核心
..........................................................................................................217
7.3.8.
配置模块化应用
.........................................................................................................219
7.4. STRUTS控制器组件.............................................................................................................220
7.4.1.
Action
类
......................................................................................................................221
7.4.2.
RequestProcessor
类
....................................................................................................222
- vi -
7.4.3.
action
类
.......................................................................................................................223
7.4.4.
使用内置的
struts action
类
.........................................................................................225
7.4.5.
利用
token
解决重复提交
............................................................................................226
7.4.6.
实用类
.........................................................................................................................227
7.5. STRUTS模型组件.................................................................................................................229
7.5.1.
模型在
MVC
中的地位
.................................................................................................229
7.5.2.
模型的概念和类型
.....................................................................................................230
7.5.3.
业务对象
(BO).............................................................................................................230
7.5.4.
业务对象的持久化
.....................................................................................................231
7.5.5.
小结
.............................................................................................................................233
7.6. STRUTS视图组件.................................................................................................................233
7.6.1.
视图概述
.....................................................................................................................233
7.6.2.
在视图中使用
JavaBean.............................................................................................234
7.6.3.
使用
ActionForm..........................................................................................................235
7.7. 扩展STRUTS框架.................................................................................................................240
7.7.1.
PlugIn..........................................................................................................................240
7.7.2.
请求是如何被处理的
.................................................................................................242
7.7.3.
创建你自己的
RequestProcessor................................................................................246
7.7.4.
ActionServlet...............................................................................................................247
7.7.5.
结论
.............................................................................................................................248
7.8. STRUTS应用国际化.............................................................................................................248
7.8.1.
本地化与国际化的概念
.............................................................................................248
7.8.2.
Web
应用的中文本地化
..............................................................................................248
7.8.3.
Java
对
I18N
的支持
......................................................................................................249
7.8.4.
Web
容器中
Locale
对象的来源
....................................................................................250
7.8.5.
在
Web
应用中访问
Locale
对象
....................................................................................250
7.8.6.
在
Struts
应用中访问
Locale
对象
.................................................................................250
7.8.7.
ResourceBundle
类
.......................................................................................................251
7.8.8.
MessageFormat
类和符合消息
...................................................................................251
7.8.9.
Struts
框架对国际化的支持
........................................................................................251
7.8.10.
异常处理的国际化
.....................................................................................................253
7.8.11.
小结
.............................................................................................................................253
7.9. VALIDATOR验证框架...........................................................................................................254
7.10. 异常处理.............................................................................................................................255
7.11. STRUTS标签.........................................................................................................................258
7.11.1.
在
Struts
应用中使用标签库
........................................................................................259
7.11.2.
Struts HTML
标签库
....................................................................................................259
7.11.3.
Struts Bean
标签库
.......................................................................................................261
7.11.4.
Struts Logic
标签库
......................................................................................................261
7.11.5.
Struts Template
标签库
................................................................................................263
7.11.6.
Struts Nested
标签库
....................................................................................................263
7.12. 使用TILES框架....................................................................................................................263
7.12.1.
Tiles
配置和基本配置文件介绍
..................................................................................264
7.12.2.
使用
Tiles.....................................................................................................................267
- vii -
7.12.3.
小结
.............................................................................................................................267
7.13. 用STRUTSTESTCASE测试STRUTS应用................................................................................268
7.13.1.
准备
StrutsTestCase......................................................................................................268
7.13.2.
初试
StrutsTestCase......................................................................................................271
7.13.3.
深入
StrutsTestCase......................................................................................................272
7.13.4.
关于
Web.xml
和
Struts-Config.xml................................................................................273
7.13.5.
小结
.............................................................................................................................273
第8章 HIBERNATE与JAVA对象持久化技术........................................................................274
8.1. QUICK START........................................................................................................................274
8.1.1.
准备工作
.....................................................................................................................274
8.1.2.
构建
Hibernate
基础代码
...........................................................................................274
8.1.3.
由数据库产生基础代码
.............................................................................................275
8.2. HIBERNATE 配置.................................................................................................................283
8.2.1.
准备
.............................................................................................................................283
8.2.2.
第一段代码
.................................................................................................................284
8.2.3.
Hibernate
基础语义
.....................................................................................................287
8.3. HIBERNATE高级特性...........................................................................................................288
8.3.1.
XDoclet
与
Hibernate
映射
........................................................................................288
8.3.2.
数据检索
.....................................................................................................................296
8.3.3.
Hibernate Query Language (HQL).............................................................................299
8.4. 数据关联.............................................................................................................................299
8.4.1.
一对一关联
.................................................................................................................299
8.4.2.
一对多关联
.................................................................................................................302
8.4.3.
多对多关联
.................................................................................................................310
8.5. 数据访问.............................................................................................................................314
8.5.1.
PO
和
VO......................................................................................................................314
8.5.2.
关于
unsaved-value......................................................................................................317
8.5.3.
Inverse
和
Cascade.......................................................................................................318
8.5.4.
延迟加载(
Lazy Loading
)
.......................................................................................318
8.5.5.
事务管理
.....................................................................................................................321
8.5.6.
基于
JDBC
的事务管理
...............................................................................................322
8.5.7.
基于
JTA
的事务管理
...................................................................................................322
8.5.8.
锁(
locking
)
.............................................................................................................325
8.5.9.
悲观锁(
Pessimistic Locking
)
.................................................................................325
8.5.10.
乐观锁(
Optimistic Locking
)
...................................................................................326
8.5.11.
Hibernate
分页
.............................................................................................................329
8.5.12.
Cache
管理
...................................................................................................................331
8.5.13.
Session
管理
.................................................................................................................334
第9章 轻量级框架SPRING..........................................................................................................338
9.1. SPRING概述.........................................................................................................................338
9.1.1.
Spring
是什么?
..........................................................................................................338
9.1.2.
Spring
项目
..................................................................................................................339
9.1.3.
入门指引
.....................................................................................................................339
- viii -
9.1.4.
Putting a Spring into Hello World
:
Spring
之
Hello World.........................................344
9.2. SPRING基础.........................................................................................................................351
9.2.1.
Introducting Inversion of Control
:控制反转介绍
....................................................351
9.2.2.
Types of Inversion of Control
:控制反转类型
...........................................................351
9.2.3.
Inversion of Control in Spring
:
Spring
中的控制反转
...............................................353
9.2.4.
Dependency Injection with Spring
:使用
Spring
依赖注入
........................................353
9.2.5.
Configuring the BeanFactory
:配置
Bean
工厂(
BeanFactory
)
.............................356
9.2.6.
Injection Parameters
:注入参数
...............................................................................360
9.2.7.
Understanding Bean Naming
:理解
Bean
命名
..........................................................370
9.2.8.
Bean Instantiation Modes
:
Bean
实例化模式
............................................................372
9.2.9.
Resolving Dependency
:依赖解析
.............................................................................374
9.2.10.
Auto-Wiring Your Beans
:自动装配你的
Bean..........................................................375
9.2.11.
Checking Dependency
:依赖检查
.............................................................................378
9.2.12.
Bean Inheritance
:
Bean
继承
.....................................................................................380
9.2.13.
小结
.............................................................................................................................381
9.3. ASPECT ORIENTED PROGRAMMING WITH SPRING:基于SPRING的AOP编程........................382
9.3.1.
AOP Concepts
:
AOP
概念
..........................................................................................382
9.3.2.
Types of AOP
:
AOP
的种类
........................................................................................383
9.3.3.
AOP in Spring
:
Spring
中的
AOP...............................................................................383
9.3.4.
Advisors and Pointcuts in Spring
:
Spring
里的通知者和切入点
..............................401
9.3.5.
All About Proxies
:关于代理
.....................................................................................413
9.3.6.
Advanced Use of Pointcuts
:切入点的高级使用
......................................................418
9.3.7.
Getting Started with Introductions
:引入初步
...........................................................419
9.3.8.
Framework Services for AOP
:
AOP
框架服务
..........................................................419
9.3.9.
小结
.............................................................................................................................419
9.4. 基于SPRING的数据访问......................................................................................................420
9.4.1.
Exploring the JDBC Infrastructure
:探索
JDBC
的底层结构
....................................420
9.4.2.
Spring JDBC Infrastructure
:
Spring JDBC
底层机制
...............................................420
9.4.3.
Database Connection and DataSources
:数据库连接和数据源
..............................420
9.4.4.
Using DataSources in DAO Classes
:在
DAO
类中使用数据源
................................420
9.4.5.
Exception Handling
:异常处理
.................................................................................420
9.4.6.
The JDBC Template Class
:
JDBC
模板类
.................................................................420
9.4.7.
Selecting The Data as Java Objects
:选出作为
Java
对象的数据
.............................420
9.4.8.
Updating Data
:更新数据
.........................................................................................420
9.4.9.
Inserting Data
:插入数据
..........................................................................................420
9.4.10.
Transactions
:事务
....................................................................................................421
9.4.11.
Why JDBC
:为什么用
JDBC......................................................................................421
9.4.12.
Using JDBC Data Access in the Sample Application
:在示例程序中使用
JDBC
数据访
问
421
9.4.13.
小结
.............................................................................................................................421
9.5. 在SPRING应用中使用HIBERNATE.......................................................................................421
9.5.1.
What Is Hibernate
:什么是
Hibernate........................................................................421
9.5.2.
The Hibernate Query Language
:
Hibernate
查询语言
..............................................421
9.5.3.
Selecting Data
:选择数据
.........................................................................................421
- ix -
9.5.4.
Updating and Inserting Data
:更新并插入数据
.......................................................421
9.5.5.
Using Hibernate in the Sample Appliction
:在示例应用中使用
Hibernate..............421
9.5.6.
小结
.............................................................................................................................421
9.6. 基于SPRING的应用程序设计及实现..................................................................................422
9.6.1.
Designing to Interfaces
:面向接口的设计
................................................................422
9.6.2.
Impact of Spring on Interface-Based Design
:
Spring
对于基于接口设计的冲击
....422
9.6.3.
Building a Domain Object Model
:域对象模型的构建
............................................422
9.6.4.
Designing and Building the Data Access Tier
:持久层设计与构建
.........................422
9.6.5.
Designing the Business Tier
:业务层设计
.................................................................423
9.6.6.
小结
.............................................................................................................................423
9.7. 基于SPRING的WEB应用开发..............................................................................................423
9.7.1.
Introducing Spring MVC
:介绍
Spring MVC.............................................................423
9.7.2.
Using Handler Mappings
:使用
Handler Mappings..................................................423
9.7.3.
Using Handler Interceptors
:使用处理拦截器
.........................................................423
9.7.4.
Woking with Controllers
:让控制器工作起来
..........................................................423
9.7.5.
Views
,
Locales
,
and Themes
:视图,
Locales
,主题
............................................424
9.7.6.
Using Command Controllers
:使用命令控制器
.......................................................424
9.7.7.
Using Spring MVC in the Sample Appliction
:在范例应用种使用
Spring MVC.......424
9.7.8.
使用
Spring
中
JSP
标记
................................................................................................424
9.7.9.
Using Velocity
:使用
Velocity.....................................................................................425
9.7.10.
Using XSLT Views
:使用
XSLT
视图
...........................................................................425
9.7.11.
Using PDF Views
:使用
PDF
视图
.............................................................................425
9.7.12.
Using Excel Views
:使用
Excel
视图
...........................................................................425
9.7.13.
Using Tiles
:使用
Tiles................................................................................................425
9.8. SPRING和STRUTS.................................................................................................................425
9.8.1.
Exploring the Struts Architecture
:考察
Struts
体系结构
............................................425
9.8.2.
A Struts Appliction
:一个
Sturts
程序
..........................................................................425
9.8.3.
Accessing Spring Beans
:访问
Spring Bean...............................................................425
9.8.4.
Using Other Views
:使用第三方
Views......................................................................425
9.8.5.
Using Struts Actions as Spring Beans
:将
Struts Action
定义为
Spring Bean..............426
9.8.6.
Combining Struts and Spring MVC
:整合
Struts
和
Spring MVC................................426
9.8.7.
小结
.............................................................................................................................426
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。