一、目录介绍
第1章 Java EE应用和开发环境
1.1 Java EE应用概述2
1.1.1 Java EE应用的分层模型2
1.1.2 Java EE应用的组件3
1.1.3 Java EE应用的结构和优势4
1.1.4 常用的Java EE服务器4
1.2 轻量级Java EE应用相关技术5
1.2.1 JSP、Servlet 3.x和JavaBean及替代技术5
1.2.2 Struts 2.3及替代技术5
1.2.3 Hibernate 4.3及替代技术6
1.2.4 Spring 4.0及替代技术6
1.3 Tomcat的下载和安装7
1.3.1 安装Tomcat服务器7
1.3.2 配置Tomcat的服务端口9
1.3.3 进入控制台9
1.3.4 部署Web应用12
1.3.5 配置Tomcat的数据源12
1.4 Eclipse的安装和使用14
1.4.1 Eclipse的下载和安装14
1.4.2 在线安装Eclipse插件14
1.4.3 从本地压缩包安装插件16
1.4.4 手动安装Eclipse插件17
1.4.5 使用Eclipse开发Java EE应用17
1.4.6 导入Eclipse项目20
1.4.7 导入非Eclipse项目21
1.5 Ant的安装和使用22
1.5.1 Ant的下载和安装22
1.5.2 使用Ant工具23
1.5.3 定义生成文件24
1.5.4 Ant的任务(task)29
1.6 Maven的安装和使用31
1.6.1 下载和安装Maven31
1.6.2 设置Maven32
1.6.3 创建、构建简单的项目33
1.6.4 Maven的核心概念36
1.6.5 依赖管理41
1.6.6 POM文件的元素44
1.7 使用SVN进行协作开发44
1.7.1 下载和安装SVN服务器45
1.7.2 配置SVN资源库46
1.7.3 下载和安装SVN客户端47
1.7.4 将项目发布到服务器48
1.7.5 从服务器下载项目48
1.7.6 提交(Commit)修改49
1.7.7 同步(Update)本地文件49
1.7.8 添加文件和目录50
1.7.9 删除文件和目录50
1.7.10 查看文件或目录的版本变革51
1.7.11 从以前版本重新开始51
1.7.12 创建分支52
1.7.13 沿着分支开发52
1.7.14 合并分支53
1.7.15 使用Eclipse作为SVN客户端54
1.8 本章小结57
第2章 JSP/Servlet及相关技术详解
2.1 Web应用和web.xml文件59
2.1.1 构建Web应用59
2.1.2 配置描述符web.xml60
2.2 JSP的基本原理61
2.3 JSP的4种基本语法65
2.3.1 JSP注释65
2.3.2 JSP声明66
2.3.3 输出JSP表达式67
2.3.4 JSP脚本68
2.4 JSP的3个编译指令70
2.4.1 page指令70
2.4.2 include指令74
2.5 JSP的7个动作指令75
2.5.1 forward指令75
2.5.2 include指令77
2.5.3 useBean、setProperty、getProperty指令79
2.5.4 plugin指令81
2.5.5 param指令81
2.6 JSP脚本中的9个内置对象82
2.6.1 application对象83
2.6.2 config对象88
2.6.3 exception对象90
2.6.4 out对象92
2.6.5 pageContext对象93
2.6.6 request对象95
2.6.7 response对象102
2.6.8 session对象106
2.7 Servlet介绍108
2.7.1 Servlet的开发108
2.7.2 Servlet的配置110
2.7.3 JSP/Servlet的生命周期111
2.7.4 load—on—startup Servlet112
2.7.5 访问Servlet的配置参数113
2.7.6 使用Servlet作为控制器115
2.8 JSP 2的自定义标签119
2.8.1 开发自定义标签类120
2.8.2 建立TLD文件120
2.8.3 使用标签库121
2.8.4 带属性的标签122
2.8.5 带标签体的标签125
2.8.6 以页面片段作为属性的标签128
2.8.7 动态属性的标签129
2.9 Filter介绍131
2.9.1 创建Filter类132
2.9.2 配置Filter133
2.9.3 使用URL Rewrite实现网站伪静态136
2.10 Listener介绍137
2.10.1 实现Listener类138
2.10.2 配置Listener139
2.10.3 使用ServletContextAttributeListener140
2.10.4 使用ServletRequestListener和ServletRequestAttributeListener141
2.10.5 使用HttpSessionListener和HttpSessionAttributeListener142
2.11 JSP 2特性147
2.11.1 配置JSP属性147
2.11.2 表达式语言149
2.11.3 Tag File支持157
2.12 Servlet 3.0新特性159
2.12.1 Servlet 3.0的注解159
2.12.2 Servlet 3.0的Web模块支持160
2.12.3 Servlet 3.0提供的异步处理162
2.12.4 改进的Servlet API165
2.13 Servlet 3.1新增的非阻塞式IO167
2.14 Tomcat 8的WebSocket支持170
2.15 本章小结174
第3章 Struts 2的基本用法
3.1 MVC思想概述176
3.1.1 传统Model 1和Model 2176
3.1.2 MVC思想及其优势177
3.2 Struts 2的下载和安装178
3.2.1 为Web应用增加Struts 2支持178
3.2.2 在Eclipse中使用Struts 2179
3.2.3 增加登录处理180
3.3 Struts 2的流程183
3.3.1 Struts 2应用的开发步骤183
3.3.2 Struts 2的流程184
3.4 Struts 2的常规配置185
3.4.1 常量配置185
3.4.2 包含其他配置文件191
3.5 实现Action191
3.5.1 Action接口和ActionSupport基类193
3.5.2 Action访问Servlet API195
3.5.3 Action直接访问Servlet API197
3.5.4 使用ServletActionContext访问Servlet API199
3.6 配置Action200
3.6.1 包和命名空间200
3.6.2 Action的基本配置203
3.6.3 使用Action的动态方法调用204
3.6.4 指定method属性及使用通配符205
3.6.5 配置默认Action211
3.6.6 配置Action的默认处理类211
3.7 配置处理结果212
3.7.1 理解处理结果212
3.7.2 配置结果213
3.7.3 Struts 2支持的结果类型214
3.7.4 plainText结果类型215
3.7.5 redirect结果类型217
3.7.6 redirectAction结果类型218
3.7.7 动态结果219
3.7.8 Action属性值决定物理视图资源219
3.7.9 全局结果221
3.7.10 使用PreResultListener222
3.8 配置Struts 2的异常处理223
3.8.1 Struts 2的异常处理机制223
3.8.2 声明式异常捕捉225
3.8.3 输出异常信息226
3.9 Convention插件与“约定”支持227
3.9.1 Action的搜索和映射约定228
3.9.2 按约定映射Result230
3.9.3 Action链的约定233
3.9.4 自动重加载映射234
3.9.5 Convention插件的相关常量234
3.9.6 Convention插件相关Annotation235
3.10 使用Struts 2的国际化235
3.10.1 视图页面的国际化235
3.10.2 Action的国际化236
3.10.3 使用包范围的国际化资源238
3.10.4 使用全局国际化资源239
3.10.5 输出带占位符的国际化消息241
3.10.6 加载资源文件的顺序243
3.11 使用Struts 2的标签库243
3.11.1 Struts 2标签库概述243
3.11.2 使用Struts 2标签244
3.11.3 Struts 2的OGNL表达式语言245
3.11.4 OGNL中的集合操作247
3.11.5 访问静态成员248
3.11.6 Lambda()表达式248
3.11.7 控制标签249
3.11.8 数据标签259
3.11.9 主题和模板268
3.11.10 自定义主题270
3.11.11 表单标签271
3.11.12 非表单标签284
3.12 本章小结287
第4章 深入使用Struts
4.1 详解Struts 2的类型转换289
4.1.1 Struts 2内建的类型转换器290
4.1.2 基于OGNL的类型转换290
4.1.3 指定集合元素的类型292
4.1.4 自定义类型转换器294
4.1.5 注册类型转换器297
4.1.6 基于Struts 2的自定义类型转换器298
4.1.7 处理Set集合299
4.1.8 类型转换中的错误处理301
4.2 使用Struts 2的输入校验307
4.2.1 编写校验规则文件307
4.2.2 国际化提示信息310
4.2.3 使用客户端校验311
4.2.4 字段校验器配置风格312
4.2.5 非字段校验器配置风格313
4.2.6 短路校验器315
4.2.7 校验文件的搜索规则316
4.2.8 校验顺序和短路318
4.2.9 内建校验器318
4.2.10 基于注解的输入校验329
4.2.11 手动完成输入校验330
4.3 使用Struts 2控制文件上传334
4.3.1 Struts 2的文件上传334
4.3.2 实现文件上传的Action335
4.3.3 配置文件上传的Action337
4.3.4 手动实现文件过滤338
4.3.5 拦截器实现文件过滤340
4.3.6 输出错误提示341
4.3.7 文件上传的常量配置342
4.4 使用Struts 2控制文件下载343
4.4.1 实现文件下载的Action343
4.4.2 配置Action343
4.4.3 下载前的授权控制344
4.5 详解Struts 2的拦截器机制345
4.5.1 拦截器在Struts 2中的作用346
4.5.2 Struts 2内建的拦截器346
4.5.3 配置拦截器348
4.5.4 使用拦截器的配置语法349
4.5.5 配置默认拦截器350
4.5.6 实现拦截器类351
4.5.7 使用拦截器353
4.5.8 拦截方法的拦截器354
4.5.9 拦截器的执行顺序356
4.5.10 拦截结果的监听器358
4.5.11 覆盖拦截器栈里特定拦截器的参数359
4.5.12 使用拦截器完成权限控制360
4.6 使用Struts 2的Ajax支持362
4.6.1 使用stream类型的Result实现Ajax363
4.6.2 JSON的基本知识365
4.6.3 实现Action逻辑367
4.6.4 JSON插件与json类型的Result368
4.6.5 实现JSP页面370
4.7 本章小结371
第5章 Hibernate的基本用法
5.1 ORM和Hibernate373
5.1.1 对象/关系数据库映射(ORM)373
5.1.2 基本映射方式374
5.1.3 流行的ORM框架简介375
5.1.4 Hibernate概述376
5.2 Hibernate入门376
5.2.1 Hibernate下载和安装376
5.2.2 Hibernate的数据库操作377
5.2.3 在Eclipse中使用Hibernate381
5.3 Hibernate的体系结构386
5.4 深入Hibernate配置文件388
5.4.1 创建Configuration对象388
5.4.2 hibernate.properties文件与hibernate.cfg.xml文件390
5.4.3 JDBC连接属性390
5.4.4 数据库方言391
5.4.5 JNDI数据源的连接属性393
5.4.6 Hibernate事务属性393
5.4.7 二级缓存相关属性393
5.4.8 外连接抓取属性394
5.4.9 其他常用的配置属性394
5.5 深入理解持久化对象394
5.5.1 持久化类的要求395
5.5.2 持久化对象的状态396
5.5.3 改变持久化对象状态的方法397
5.6 深入Hibernate映射399
5.6.1 映射属性402
5.6.2 映射主键409
5.6.3 使用Hibernate的主键生成策略411
5.6.4 映射集合属性412
5.6.5 集合属性的性能分析419
5.6.6 有序集合映射420
5.6.7 映射数据库对象422
5.7 映射组件属性424
5.7.1 组件属性为集合426
5.7.2 集合属性的元素为组件427
5.7.3 组件作为Map的索引429
5.7.4 组件作为复合主键430
5.7.5 多列作为联合主键432
5.8 使用传统的映射文件433
5.8.1 增加XML映射文件433
5.8.2 注解,还是XML映射文件436
5.9 本章小结436
第6章 深入使用Hibernate
6.1 Hibernate的关联映射438
6.1.1 单向N—1关联438
6.1.2 单向1—1关联443
6.1.3 单向1—N关联444
6.1.4 单向N—N关联448
6.1.5 双向1—N关联449
6.1.6 双向N—N关联452
6.1.7 双向1—1关联454
6.1.8 组件属性包含的关联实体456
6.1.9 基于复合主键的关联关系458
6.1.10 复合主键的成员属性为关联实体460
6.1.11 持久化的传播性463
6.2 继承映射464
6.2.1 整个类层次对应一个表的映射策略466
6.2.2 连接子类的映射策略468
6.2.3 每个具体类对应一个表的映射策略471
6.3 Hibernate的批量处理473
6.3.1 批量插入473
6.3.2 批量更新474
6.3.3 DML风格的批量更新/删除475
6.4 使用HQL查询476
6.4.1 HQL查询476
6.4.2 HQL查询的from子句478
6.4.3 关联和连接479
6.4.4 HQL查询的select子句482
6.4.5 HQL查询的聚集函数482
6.4.6 多态查询483
6.4.7 HQL查询的where子句483
6.4.8 表达式484
6.4.9 order by子句486
6.4.10 group by子句486
6.4.11 子查询487
6.4.12 命名查询487
6.5 条件查询489
6.5.1 关联和动态关联491
6.5.2 投影、聚合和分组493
6.5.3 离线查询和子查询496
6.6 SQL查询497
6.6.1 标量查询497
6.6.2 实体查询499
6.6.3 处理关联和继承501
6.6.4 命名SQL查询502
6.6.5 调用存储过程504
6.6.6 使用定制SQL505
6.7 数据过滤507
6.8 事务控制510
6.8.1 事务的概念510
6.8.2 Session与事务511
6.8.3 上下文相关的Session513
6.9 二级缓存和查询缓存514
6.9.1 开启二级缓存514
6.9.2 管理缓存和统计缓存517
6.9.3 使用查询缓存518
6.10 事件机制520
6.10.1 拦截器521
6.10.2 事件系统523
6.11 本章小结525
第7章 Spring的基本用法
第8章 深入使用Spring
第9章 企业应用开发的思考和策略
第10章 简单工作流系统