丛书序 1
前言 1
第1章 Struts概述 1
1.1 Struts历史发展过程 1
1.1.1 Model设计模式的演进 2
1.1.2 MVC模式 3
1.2 Struts2简介 4
1.2.1 标签库介绍 4
1.2.2 拦截器应用的目的 5
1.2.3 FilterDispatcher和Action概述 5
1.2.4 Struts2配置文件处理 6
1.2.5 OGNL介绍和类型转换目的 6
1.2.6 校验 7
1.2.7 Web项目国际化原由 7
1.2.8 SiteMesh页面布局框架介绍 7
1.3 为什么要用Struts2 8
1.3.1 Tapestry优劣点 9
1.3.2 JSF优劣点 10
1.3.3 SpringMVC优劣点 10
1.4 在Web项目中使用Struts2 11
1.4.1 Struts2开发包的结构 11
1.4.2 创建MyEclipse项目 12
1.4.3 在项目中配置Struts2 13
第2章 Web基础技术概述 17
2.1 B/S和C/S系统区别 17
2.2 JSP和Servlet介绍 17
2.2.1 什么是JSP 18
2.2.2 什么是Servlet 18
2.2.3 JSP内置对象 18
2.2.4 Servlet的生命周期 19
2.3 XML知识介绍 20
2.3.1 XML的格式 20
2.3.2 XML的文档类型 20
2.3.3 XML的用途 20
2.3.4 XML的解析方式 21
2.3.5 DOM和SAX解析XML评解 21
2.3.6 JDOM和DOM4J解析XML评解 22
第3章 Struts2核心技术 23
3.1 使用web.xml配置Struts2实现Web项目Struts2应用 23
3.2 使用配置文件struts.xml实现页面导航定义 24
3.3 使用Action类控制导航业务数据 26
3.4 使用ActionSupport进行校验 28
第4章 Struts2的另一核心技术—拦截器 32
4.1 拦截器在Struts2中的默认应用 32
4.2 拦截器原理实现 35
4.3 在Struts2中配置自定义的拦截器 38
4.3.1 扩展拦截器接口的自定义拦截器配置 38
4.3.2 继承抽象拦截器的自定义拦截器配置 40
4.3.3 继承方法拦截器的自定义拦截器配置 42
4.4 Struts2文件上传拦截器的应用 45
4.4.1 Struts2文件上传功能开发 45
4.4.2 Struts2文件下载功能开发 51
第5章 Struts2标签库 56
5.1 Struts2标签使用原理解疑 56
5.2 OGNL表达式语言介绍 58
5.3 Struts2控制标签简介 61
5.3.1 append标签使用介绍 61
5.3.2 generator标签使用介绍 63
5.3.3 if、else、elseif标签使用介绍 64
5.3.4 iterator标签使用介绍 65
5.3.5 merge标签使用介绍 66
5.3.6 sort标签使用介绍 67
5.3.7 subset标签使用介绍 68
5.4 Struts2数据标签简介 70
5.4.1 action标签使用介绍 70
5.4.2 bean标签使用介绍 71
5.4.3 date标签使用介绍 73
5.4.4 debug标签使用介绍 75
5.4.5 include标签使用介绍 76
5.4.6 push标签使用介绍 77
5.4.7 set标签使用介绍 78
5.4.8 url标签使用介绍 79
5.4.9 param标签和property标签使用介绍 81
5.5 Struts2表单标签简介 81
5.5.1 基础表单标签使用介绍 81
5.5.2 复杂表单标签使用介绍 85
5.5.3 其他表单标签使用介绍 92
5.6 Struts2非表单标签简介 93
5.6.1 主题和模板介绍 93
5.6.2 非表单标签介绍 96
5.7 Struts2自定义标签实现图形验证功能 98
第6章 Struts2非JSP视图技术 102
6.1 velocity视图技术使用介绍 102
6.2 freemarker视图技术使用介绍 105
6.3 JasperReports报表视图技术使用介绍 107
第7章 Struts2类型转换技术 112
7.1 Struts2类型转换使用介绍 112
7.1.1 基本数据类型转换功能 112
7.1.2 List集合类型数据类型转换功能 115
7.1.3 Set集合类型数据类型转换功能 118
7.2 类型转换发生异常的处理方案 120
7.2.1 Struts2自带异常提示 120
7.2.2 Struts2局部异常提示定义属性文件使用介绍 122
7.2.3 Struts2全局异常提示定义属性文件使用介绍 123
第8章 Struts2输入校验 124
8.1 validate输入校验方式再谈 124
8.1.1 复习validate方法进行输入校验 124
8.1.2 validateXXX方法进行输入校验 127
8.2 利用配置文件进行输入校验方法说明 131
8.2.1 Struts 2字段校验的配置文件形式 131
8.2.2 Struts 2非字段校验的配置文件形式 134
8.2.3 Struts 2输入校验出错信息的国际化配置形式 136
8.3 集合类型输入校验介绍 138
8.3.1 Struts 2中单个Java对象的输入校验形式 138
8.3.2 Struts 2对象集合即批量输入的校验形式 141
8.4 Struts 2输入校验器大全 143
第9章 Struts 2国际化 150
9.1 Struts 2国际化基础应用 150
9.1.1 国际化基础使用方式 150
9.1.2 占位符国际化使用方式 153
9.2 Struts2 国际化使用范围说明 156
9.2.1 Struts 2包范围属性文件国际化应用 157
9.2.2 Struts 2Action范围属性文件国际化应用 158
9.2.3 Struts 2临时范围属性文件国际化应用 159
9.3 用户主动选择国际化应用介绍 162
第10章 Struts2页面布局实现 165
10.1 sitemesh基本使用方法 165
10.2 sitemesh高级应用 168
10.2.1 <page:applyDecorator>和<decorator:getProperty>标签 169
10.2.2 <decorator:usePage>、<decorator:useHtmlPage>和<decorator:head>标签 171
第11章 Hibernate技术简介 174
11.1 什么是ORM 174
11.1.1 ORM基础 174
11.1.2 ORM组成 175
11.1.3 流行的ORM架构 175
11.2 Hibernate概述 176
11.2.1 Hibernate用途 176
11.2.2 Hibernate架构 176
11.2.3 Hibernate核心接口 178
11.2.4 持久化对象的状态 179
11.3 Hibernate优点 180
第12章 Hibernate入门 181
12.1 准备工作 181
12.1.1 安装Hibernate 181
12.1.2 MyEclipse中使用Hibernate 182
12.1.3 安装MySQL数据库 183
12.2 第一个Hibernate应用 184
12.3 Hibernate配置 187
12.3.1 配置数据库连接 187
12.3.2 其他配置 190
12.3.3 SQL方言 192
12.3.4 查询语言中的替换 193
12.3.5 日志 193
第13章 Hibernate核心API 195
13.1 Session介绍 195
13.1.1 Configuration 195
13.1.2 SessionFactory 197
13.1.3 创建Session 197
13.2 简单的CRUD示例 200
13.3 Save还是Update 205
13.4 实体对象的识别 208
13.5 Hibernate一级缓存 210
13.6 Hibernate二级缓存 214
13.7 Hibernate事务处理 221
13.8 使用复合主键 224
第14章 Hibernate集合映射 229
14.1 Set集合映射 229
14.2 List集合映射 234
14.3 Map集合映射 239
14.4 Bag集合映射 243
14.5 Component映射 248
14.6 Composite-element映射 252
第15章 Hibernate关系映射 257
15.1 单向多对多映射 257
15.2 双向多对多映射 263
15.3 单向多对一映射 267
15.4 单向一对多映射 272
15.5 双向一对多(多对一)映射 278
15.6 基于外键的单向一对一映射 284
15.7 基于外键的双向一对一映射 289
15.8 基于主键的单向一对一映射 294
15.9 基于主键的双向一对一映射 299
第16章 Criteria条件查询 304
16.1 简单的Criteria查询 304
16.2 设定Criteria查询条件 306
16.3 Criteria中使用SQL语句 309
16.4 复杂的Criteria查询 311
16.5 使用DetchedCriteria查询 313
第17章 HQL查询 315
17.1 简单的HQL查询 315
17.2 复杂的HQL查询 319
17.3 HQL更新、删除操作 322
17.4 在XML中定义HQL 323
第18章 Spring入门 326
18.1 Spring历史发展过程 326
18.1.1 Spring为什么越来越流行 326
18.1.2 Spring框架的核心 327
18.2 Spring的技术知识介绍 327
18.2.1 Spring核心容器 328
18.2.2 Spring上下文 329
18.2.3 Spring AOP解疑 329
18.2.4 Spring DAO说明 330
18.2.5 Spring ORM介绍 330
18.2.6 Spring Web模块 330
18.2.7 Spring MVC框架 331
18.3 使用Spring的基础示例 331
第19章 为什么要使用控制反转 335
19.1 new—自己创建 335
19.2 get—工厂模式 337
19.3 set—外部注入 339
第20章 IOC容器的反射机制和装载机制 341
20.1 操作构造函数 341
20.2 get—工厂模式 343
20.3 操作类的方法 345
20.4 IOC容器装载机制 347
第21章 DI注入方式 351
21.1 设值注入 351
21.2 构造注入 354
21.3 集合类型注入 358
21.4 自定义类型注入 361
第22章 如何合理地编写配置文件 364
22.1 文件的分割和提取公共属性 364
22.2 根据名字自动装配的配置文件 369
22.3 Bean的作用范围 372
第23章 使用AOP 375
23.1 静态代理 375
23.2 动态代理 378
第24章 在Spring环境中实现AOP 382
24.1 采用Annotation方式实现AOP 382
24.2 采用配置文件方式实现AOP 384
24.3 获取参数 386
24.4 使用CGLIB库 389
第25章 Spring与Hibernate结合 392
25.1 使用编程方式实现事务 392
25.2 实现声明式事务 398
第26章 Spring与Struts结合 406
26.1 依赖查找方式实现Spring与Struts结合 406
26.2 Action注入方式实现Spring与Struts结合 412