第1篇 初涉Strus
第1章 Struts入门
1.1 必须了解的历史:J2EE与Model1. 2
1.1.1 企业级应用
1.1.2 J2EE API
1.1.3 MVC模型
1.1.4 MVC模型的示例
1.1.5 JSP讨论
1.1.6 Servlet讨论
1.1.7 Model1和Model2
1.2 Jakarta Apache与Struts
1.2.1 Jakarta Apache组织介绍
1.2.2 Struts的出生与成熟
1.3 选择Struts的理由
1.3.1 Struts与Model2的关系
1.3.2 Web应用中Struts所处MVC位置
1.4 Struts的环境与配置
1.4.1 下载Struts
1.4.2 下载JDK
1.4.3 下载J2EE SDK
1.4.4 Tomcat服务器
1.5 Hello World, 开启Struts的第一次
1.5.1 工作流程
1.5.2 第一步:struts-config.xml的配置
1.5.3 第二步:ActionForm对象
1.5.4 第三步:Action对象
1.5.5 第四步:JSP的实现
1.5.6 第五步:配置web.xml
1.5.7 配置和运行说明
1.6 本章回顾
第2章 Struts的基本组成(1)
2.1 一切尽在掌握的XML部署描述符
2.1.1 概述
2.1.2 struts-config.xml说明
2.1.3 配置数据库访问:data-sources元素
2.1.4 配置视图层和控制器层的接口:form-beans元素
2.1.5 配置全局异常处理:global-exceptions元素
2.1.6 声明全局转发关系:global-forwards元素
2.1.7 设置映射:action-mappings元素
2.1.8 配置控制器:controller元素
2.1.9 设定资源配置文件的路径:message-resources元素
2.1.10 配置插件:plug-in元素
2.2 View组件ActionForm
2.2.1 概述
2.2.2 应用ActionForm bean
2.2.3 对内容进行验证:validate( )方法
2.2.4 重载方法:reset()方法
2.2.5 配置ActionForm
2.3 Controller组件
2.3.1 概述
2.3.2 Action类
2.3.3 ActionServlet类
2.3.4 实现导航:ActionForward类
2.3.5 配置View与Control协同工作
2.3.6 两个以上的struts-config.xml配置文件
2.4 页面报错组件
2.4.1 概述
2.4.2 常见的两种处理流程
2.4.3 认识ActionErrors与ActionError
2.4.4 创建错误信息:ActionError类
2.4.5 保存ActionError类:ActionErrors类
2.4.6 在ActionForm中报错
2.4.7 报错的JSP页面
2.4.8 在struts-config.xml中配置报错的ActionForm
2.4.9 在Action中报错
2.4.10 报错的JSP页面
2.5 本章回顾
第3章 Struts的基本组成(2)
3.1 标签库的组成
3.2 Struts HTML标签库
3.2.1 描绘form表单的标签
3.2.2 描绘按钮的和标签
3.2.3 进行提交的和标签
3.2.4 文本输入的和标签
3.2.5 复选按钮和标签
3.2.6 描述文本的标签
3.2.7 描述隐藏控件的标签
3.2.8 描述密码的标签
3.2.9 描述单选按钮的标签
3.2.10 描述下拉框的标签
3.2.11 描述下拉选项的
3.2.12 显示报错信息的标签
3.3 Struts Bean标签库
3.3.1 定义变量的 标签
3.3.2 得到作用范围信息的标签
3.3.3 包含响应或页面的标签
3.3.4 显示资源配置文件信息的标签
3.3.5 读取资源配置文件的标签
3.3.6 读取集合大小的标签
3.3.7 输出显示的标签
3.4 Struts Logic标签库
3.4.1 逻辑判断标签组一
3.4.2 逻辑判断标签组二
3.4.3 逻辑判断标签组三
3.4.4 逻辑判断标签组四
3.4.5 循环功能的标签
3.4.6 转发功能的标签
3.4.7 重定向功能的标签
3.5 Struts Template标签库
3.5.1 插入动态模板的标签
3.5.2 插入动态模板资源的标签
3.5.3 得到动态模板资源的标签
3.6 Struts的完整示例
3.6.1 需求说明
3.6.2 ActionForm表单的说明
3.6.3 单击“添加”按钮的Action
3.6.4 单击“查找”按钮的Action
3.6.5 单击“删除”按钮的Action
3.6.6 进入首页时的Action
3.6.7 业务逻辑层的代码
3.6.8 层间通讯
3.6.9 进入主页面之前首页的JSP
3.6.10 主页面的JSP
3.6.11 资源配置文件
3.6.12 配置描述符文件struts-config.xml
3.6.13 完整的Web应用配置文件
3.6.14 配置说明
3.7 本章回顾
第2篇 步步深入Strus
第4章 struts-config.xml详解
4.1 概述
4.2 处理异常的exception和global-exceptions
4.2.1 异常
4.2.2 Struts框架对异常的支持
4.2.3 局部异常
4.2.4 全局异常
4.3 简单示例
4.3.1 自定义异常类
4.3.2 业务逻辑类
4.3.3 Action类
4.3.4 资源配置文件
4.3.5 JSP页面
4.3.6 配置struts-config.xml
4.3.7 显示结果
4.4 global-forwards标记与全局转发
4.4.1 什么是全局转发
4.4.2 global-forwards标记的配置
4.5 struts-config.xml中的转发
4.5.1 元素结合Action bean的局部转发
4.5.2 元素的简单局部转发
4.5.3 Action bean中的程序转发
4.5.4 的全局转发
4.6 Struts框架的控制器
4.6.1 Struts的Servlet:ActionServlet
4.6.2 控制器的具体工作类RequestProcessor
4.6.3 存储配置信息的ModuleConfig类
4.6.4 Action对象的工作原理
4.6.5 Action的转发动作:ActionForward
4.7 controller标记的配置
4.8 plug-in标记与额外的能力
4.8.1 PlugIn接口
4.8.2 PlugIn的实现类
4.8.3 PlugIn插件类如何被Struts实例化
4.8.4 plug-in标记
4.9 message-resources标记
4.10 动态ActionForm――DynaActionForm
4.10.1 DynaActionForm的配置
4.10.2 在Action中对DynaActionForm的操作
4.11 一个完整的struts-config.xml
4.12 本章回顾
第5章 国际化
5.1 概述
5.2 国际化和本地化
5.2.1 什么是国际化
5.2.2 什么是本地化
5.3 认识编码
5.3.1 在Struts中国际化的步骤
5.3.2 相关注意事项
5.4 Struts的国际化
5.4.1 Resource绑定
5.4.2 确定本地化环境后缀
5.4.3 Locale对象
5.5 简单的国际化示例
5.5.1 需求说明
5.5.2 提供一个Action
5.5.3 提供一个ActionForm
5.5.4 JSP页面
5.5.5 三个不同语言的资源配置文件
5.5.6 struts-config.xml的配置
5.5.7 web.xml的配置
5.5.8 配置说明
5.5.9 运行结果
5.6 本章回顾
第6章 Validator框架
6.1 概述
6.2 Validator框架介绍
6.2.1 Validator校验类
6.2.2 Validator配置文件
6.2.3 资源配置文件
6.2.4 JSP标签库
6.3 validator-rules.xml文件
6.3.1 一个简单的validator-rules.xml
6.3.2 validator-rules.xml的主要元素和属性说明
6.3.3 validator-rules.xml的补充元素和属性说明
6.4 validation.xml文件
6.4.1 结合validation.xml的ActionForm
6.4.2 配置validation.xml
6.4.3 validation.xml的主要元素和属性说明
6.5 完整示例
6.5.1 配置Validator框架到Struts
6.5.2 符合示例的validator-rules.xml
6.5.3 编写一个JSP页面
6.5.4 编写一个没有任何业务逻辑的Action
6.5.5 编写资源配置文件
6.6 配置和运行
6.7 正则表达式和Validator框架
6.7.1 什么是正则表达式?
6.7.2 正则表达式的特殊字符
6.7.3 Validator框架中“mask”校验规则的使用
6.8 Validator框架中自定义校验规则
6.8.1 自定义的校验方法说明
6.8.2 一个自定义校验类
6.8.3 在validator-rules.xml中声明新的校验类
6.8.4 在validation.xml中配置校验声明
6.9 JavaScript和Validator框架
6.9.1 validator-rules.xml中配置JavaScript校验
6.9.2 JSP中调用JavaScript校验
6.9.3 自动生成的JavaScript校验方法
6.10 本章回顾
第3篇 Strus整合应用
第7章 良好的大局观:J2EE设计模式
7.1 概述
7.2 表示层体系结构模式
7.2.1 前端控制器模式
7.2.2 MVC模型模式
7.2.3 装饰器模式
7.3 表示层高级体系结构模式
7.3.1 复合视图模式
7.3.2 视图助手模式
7.3.3 服务工作者模式
7.4 表示层伸缩性模式
7.4.1 异步页面模式
7.4.2 缓存过滤器模式
7.4.3 资源池模式
7.5 业务层模式
7.5.1 复合实体模式
7.5.2 域对象模式
7.6 数据传递模式
7.6.1 DTO模式
7.6.2 DTO散列模式
7.6.3 数据库行集合DTO模式
7.7 数据库模式
7.7.1 DAO模式
7.7.2 DAO工厂
7.8 J2EE设计模式与设计模式的区别
7.9 展望
7.10 本章回顾
第8章 复合式网页的支援:Tiles框架
8.1 概述
8.2 复合视图
8.2.1 复合视图
8.2.2 复合视图模型
8.2.3 一般JSP实现复合视图模型
8.3 Tiles组件的基本使用方法
8.3.1 Tiles组件的XML描述
8.3.2 Tiles组件的JSP模板
8.4 在Struts中使用Tiles组件
8.4.1 Tiles插件TilesPlugin配置
8.4.2 模板页面的实现和说明
8.4.3 完成复合视图(JSP方式)
8.4.4 完成复合视图(XML配置方式)
8.5 Struts框架的实现手法
8.5.1 完整的struts-config.xml.
8.5.2 Action模拟转发
8.5.3 web.xml中的配置
8.6 配置Tiles框架
8.7 Tiles组件的其他特性
8.7.1 覆盖和继承模板
8.7.2 国际化的支持
8.8 本章回顾
第9章 Struts与表现层技术的结合
9.1 概述
9.2 JSTL EL表达式语言
9.2.1 JSTL EL表达式语言简介
9.2.2 EL表达式的默认变量
9.2.3 EL表达式的操作符
9.2.3 JSTL标签库介绍
9.3 JSTL Core标签库
9.3.1 用于显示的标签
9.3.2 用于赋值的标签
9.3.3 用于删除的标签
9.3.4 用于异常捕获的标签
9.3.5 用于判断的标签
9.3.6 用于复杂判断的. . 标签
9.3.7 用于循环的标签
9.3.8 用于分隔字符的标签
9.3.9 用于包含页面的
9.3.10 用于得到URL地址的标签
9.3.11 用于页面重定向的标签
9.3.12 用于包含传递参数的标签
9.4 JSTL XML processing标签库
9.4.1 用于解析XML文件的标签
9.4.2 用于显示XML内容的标签
9.4.3 用于保存XML内容的标签
9.4.4 用于判断的标签
9.4.5 用于复杂判断的. . 标签
9.4.6 用于对XML元素循环的 标签
9.4.7 格式化XML显示数据的标签
9.4.8 用于参数传递的标签
9.5 I18N formatting标签库
9.5.1 用于设置本地化环境的标签
9.5.2 用于资源文件绑定的. 标签
9.5.3 用于显示资源配置文件信息的标签
9.5.4 用于参数传递的标签
9.5.6 用于为请求设置字符编码的标签
9.5.7 用于设定时区的. 标签
9.5.8 用于格式化数字的标签
9.5.9 用于解析数字的标签
9.5.10 用于格式化日期的标签
9.5.11 用于解析日期的标签
9.6 Database access标签库
9.6.1 用于设置数据源的标签
9.6.2 用于查询的标签
9.6.3 用于更新的标签
9.6.4 用于事务处理的标签
9.6.5 用于事务处理的. 标签
9.7 Functions标签库
9.7.1 长度函数fn:length函数
9.7.2 判断函数fn:contains函数
9.7.3 fn:containsIgnoreCase函数
9.7.4 词头判断函数fn:startsWith函数
9.7.5 词尾判断函数fn:endsWith函数
9.7.6 字符实体转换函数fn:escapeXml函数
9.7.8 字符匹配函数fn:indexOf函数
9.7.9 分隔符函数fn:join函数
9.7.10 替换函数fn:replace函数
9.7.11 分隔符转换数组函数fn:split函数
9.7.12 字符串截取函数fn:substring函数
9.7.13 定位到结束截取字符串函数fn:substringAfter函数
9.7.14 起始到定位截取字符串函数fn:substringBefore函数
9.7.15 小写转换函数fn:toLowerCase函数
9.7.16 大写转换函数fn:toUpperCase函数
9.7.17 空格删除函数fn:trim函数
9.8 Struts与JSTL
9.8.1 JSTL与Struts协同工作
9.8.2 JSTL VS Struts Bean标签库:
9.8.3 JSTL VS Struts Logic标签库
9.8.4 总结
9.9 完整示例
9.9.1 下载JSTL并配置
9.9.2 修改web.xml使其作为Servlet2.4的实现
9.9.3 JSP部分:和标签
9.9.4 JSP部分:和标签
9.9.5 完整的JSP
9.10 本章回顾
第10章 Struts与中间件技术的结合
10.1 概述
10.2 中间层技术介绍
10.3 EJB介绍
10.3.1 EJB技术回顾
10.3.2 EJB与JavaBean的区别
10.3.3 EJB的类型
10.3.4 EJB的组成和工作方式
10.3.5 一个简单的EJB
10.4 无状态会话EJB
10.4.1 无状态会话EJB的工作
10.4.2 无状态会话EJB的示例说明
10.4.3 无状态会话EJB的Remote接口
10.4.4 无状态会话EJB的Home接口
10.4.5 无状态会话EJB的EJB实例
10.4.6 无状态会话EJB的XML部署描述
10.4.7 J2EE服务器部署描述符
10.4.8 客户端调用类
10.4.9 部署和测试
10.5 有状态会话EJB
10.5.1 有状态会话EJB的工作
10.5.2 有状态会话EJB的示例说明
10.4.3 有状态会话EJB的Remote接口
10.5.4 有状态会话EJB的Home接口
10.5.5 有状态会话EJB的EJB实例
10.5.6 有状态会话EJB的XML部署描述
10.5.7 J2EE服务器部署描述符
10.5.8 客户端调用类
10.5.9 部署和测试
10.5.10 切换为无状态会话EJB
10.6 实体EJB
10.6.1 实体EJB的工作
10.6.2 两种实体EJB
10.7 BMP的实体EJB
10.7.1 BMP的实体EJB示例说明
10.7.2 BMP实体EJB的Remote接口
10.7.3 BMP实体EJB的Home接口
10.7.4 BMP实体EJB的EJB实例
10.7.5 BMP实体EJB的XML部署描述
10.7.6 J2EE服务器部署描述符
10.7.7 JDBC连接的配置
10.7.8 客户端调用类
10.7.9 部署和测试
10.8 CMP的实体EJB
10.8.1 BMP的实体EJB示例说明
10.8.2 CMP实体EJB的Remote接口
10.8.3 CMP实体EJB的Home接口
10.8.4 CMP实体EJB的EJB实例
10.8.5 CMP实体EJB的XML部署描述
10.8.6 J2EE服务器部署描述符
10.8.7 映射到表
10.8.8 部署和测试
10.9 选择EJB容器
10.9.1 业界常见J2EE服务器
10.9.2 JBoss服务器
10.9.3 安装JBoss服务器
10.9.4 使用JBoss服务器
10.10 EJB与Struts整合工作
10.10.1 Struts和EJB协同工作
10.10.2 整合的工作
10.10.3 完整示例的讨论
10.10.4 业务逻辑层的实现
10.10.5 Action的实现
10.10.6 web.xml的修改
10.10.7 JBoss-web.xml部署描述符的配置
10.10.8 部署到JBoss
10.10.9 企业级ear部署方式
10.11 Struts与EJB整合模式讨论
10.11.1 域模型层
10.11.2 业务逻辑层
10.12 本章回顾
第11章 Struts与Hibernate框架的结合
11.1 概述
11.2 持久层名词介绍
11.3 持久层框架介绍
11.4 Hibernate框架
11.4.1 Hibernate框架介绍
11.4.2 Hibernate的配置文件
11.4.3 PO(持久化对象). VO(值对象). POJO(简单Java对象)
11.4.4 Hibernate的映射文件
11.4.5 在PO(持久化对象)中描述对象间的关系
11.4.6 利用映射文件描述对象间的关系
11.4.7 客户端SessionFactory和Session
11.4.8 HSQL语言
11.4.9 创建Session类
11.4.10 实现持久化
11.4.11 做好使用Hibernate的准备
11.5 Hibernate与Struts整合工作
11.5.1 Hibernate与Struts协同工作
11.5.2 整合的工作
11.5.3 hibernate.cfg.xml的实现
11.5.4 Hibernate映射文件的实现
11.5.5 业务逻辑层的实现
11.5.6 Session关闭的讨论
11.5.7 Action的实现
11.5.8 部署到JBoss
11.6 总结和讨论
11.7 本章回顾
第12章 Struts与IBatis框架的结合
12.1 IBatis框架介绍
12.2 IBatis框架
12.2.1 IBatis框架的组成
12.2.2 IBatis框架的SQL Map配置文件
12.2.3 IBatis框架的SQL Map映射文件
12.2.4 其他重要特性
12.2.5 在VO中描述对象间的关系
12.2.6 利用映射文件描述对象间的关系
12.2.7 客户端SqlMapClient
12.2.8 创建SqlMapClient
12.2.9 显式的调用事务
12.2.10 执行对数据库的常规操作
12.2.11 实现持久化
12.2.12 批量处理非查询的SQL语句
12.2.13 做好使用Ibatis的准备
12.3 IBatis与Struts整合工作
12.3.1 IBatis与Struts协同工作
12.3.2 业务逻辑层再讨论
12.3.3 IBatis DAO框架
12.3.4 整合的工作
12.3.5 映射文件的实现
12.3.6 sql_map_config.xml的实现
12.3.7 dao_config.xml的实现
12.3.8 提供辅助类读取dao_config.xml
12.3.9 DAO接口
12.3.10 定义传入参数的辅助类
12.3.11 DAO实现类
12.3.12 业务逻辑类
12.3.13 Action的实现
12.3.14 部署到JBoss
12.3.15 示例总结
12.4 本章回顾
第13章 Struts与Spring的结合
13.1 为什么需要Spring
13.2 中间层J2EE框架和Spring框架
13.2.1 J2EE框架简介
13.2.2 Spring框架简介
13.3 Spring框架
13.3.1 解耦的工作
13.3.2 IOC容器和依赖注入
13.3.3 依赖注入的三种形态
13.3.4 Spring的配置文件
13.3.5 业务逻辑层
13.3.6 客户端调用
13.3.7 在Web应用中使用Spring
13.3.8 原始DAO模式和Spring对JDBC的封装
13.3.9 JdbcTemplate的模板模式
13.3.10 JdbcTemplate的工作
13.3.11 利用JdbcTemplate模拟IBatis
13.3.12 Spring对配置文件的读取与使用
13.3.13 Spring对事务处理的支持
13.3.14 Spring的其他额外支持
13.3.15 Spring使用前的准备
13.4 Spring与Struts整合工作
13.4.1 Spring与Struts协同工作
13.4.2 使用Spring的ActionSupport类
13.4.3 使用Spring的DelegatingRequestProcessor类
13.4.4 全权委托
13.4.5 选择合理的整合方式
13.4.6 整合的工作
13.4.7 struts-config.xml的实现
13.4.8 applicationContext.xml的实现
13.4.9 DAO接口的实现
13.4.10 JdbcTemplate的DAO实现类
13.4.11 Action的依赖注入
13.4.12 部署到JBoss
13.5 本章回顾
第14章 Struts与各层框架的整合
14.1 概述
14.2 Struts. Spring. Hibernate协同工作
14.2.1 完整构架的工作
14.2.1 各层的责任
14.3 完整示例
14.4 持久层部分
14.4.1 Hibernate映射文件
14.4.2 编写PO
14.5 服务器端业务逻辑层部分
14.5.1 编写DAO接口和实现类
14.5.2 编写业务逻辑接口和实现类
14.5.3 编写Spring配置文件
14.6 服务器端表示层部分
14.6.1 编写struts-config.xml
14.6.2 编写ActionForm
14.6.3 编写Action
14.6.4 编写JSP
14.6.5 编写web.xml
14.6.6 其他辅助文件
14.7 配置说明
14.8 整合模式讨论
14.8.1 在表现层使用Struts框架
14.8.2 在持久层使用Hibernate框架
14.8.3 在业务逻辑层使用Spring框架
14.8.4 框架的缺点
14.9 本章回顾
第4篇 Strus项目篇
第15章 项目剖析:用户邮件地址管理系统
15.1 项目介绍
15.2 开发环境
15.3 系统分析
15.3.1 对于欢迎界面的需求分析
15.3.2 对于登录界面的需求分析
15.3.3 对于新增用户界面的需求分析
15.3.4 对于“邮件地址”管理欢迎界面的需求分析
15.3.5 对于“邮件地址”管理界面的需求分析
15.3.6 对于“邮件地址”新增界面的需求分析
15.3.7 对于“邮件地址”修改界面的需求分析
15.4 系统设计
15.4.1 服务器端表示层
15.4.2 域模型层
15.4.3 服务器端业务逻辑层
15.4.4 持久层
15.5 系统实现:持久层
15.5.1 根据表间关系生成实体PO(VO)
15.5.2 为实体PO(VO)提供配置文件
15.5.3 总结
15.6 服务器端业务逻辑层:剥离业务逻辑
15.6.1 欢迎界面的业务逻辑
15.6.2 登录界面的业务逻辑
15.6.3 新增用户界面的业务逻辑
15.6.4 “邮件地址”管理欢迎界面的业务逻辑
15.6.5 “邮件地址”管理界面的上半部分业务逻辑
15.6.6 “邮件地址”管理界面的下半部分业务逻辑
15.6.7 新增“邮件地址”界面的业务逻辑
15.6.8 “邮件地址”修改界面的业务逻辑
15.7 服务器端业务逻辑层:业务逻辑接口和DAO接口
15.7.1 针对用户信息的业务逻辑接口UserInfoService.java
15.7.2 针对UserInfo实体的DAO接口UserInfoDAO.java
15.7.3 针对“邮件地址”信息的业务逻辑接口MailInfoService.java
15.7.4 针对MailInfo实体的DAO接口MailInfoDAO.java
15.8 服务器端业务逻辑层:实现DAO接口
15.8.1 实现UserInfoDAO接口的UserInfoDAOI类
15.8.2 实现MailInfoDAO接口的MailInfoDAOI类
15.9 服务器端业务逻辑层:实现业务逻辑接口
15.9.1 实现UserInfoService接口的UserInfoServiceI类
15.9.2 实现MailInfoService接口的MailInfoServiceI类
15.10 Spring框架配置业务逻辑层
15.10.1 配置LocalSessionFactoryBean
15.10.2 配置dataSource数据源
15.10.3 描述数据源的properties文件
15.10.4 产生DAO实例
15.10.5 对于事务管理的配置
15.10.6 对于业务逻辑接口实现类的配置
15.11 系统实现:服务器端表示层
15.11.1 规范页面流转
15.11.2 欢迎界面部分
15.11.3 新增用户界面部分
15.11.4 登录界面部分
15.11.5 “邮件地址”管理欢迎界面部分
15.11.6 “邮件地址”管理界面部分
15.11.7 “邮件地址”新增. 修改. 删除界面部分
15.12 Spring和Struts结合配置
15.12.1 配置Spring为Struts的插件
15.12.2 配置文件一:struts-config.xml
15.12.3 配置文件二:struts-config-registration.xml
15.12.4 Spring和Struts结合的applicationContext.xml
15.12.5 资源配置文件部分
15.12.6 Validate框架部分
15.12.7 web.xml部分
15.13 整体部署
15.13.1 持久层
15.13.2 服务器端业务逻辑层
15.13.3 服务器端表示层
15.14 项目总结
15.14.1 对于ActionForm和PO. VO的使用
15.14.2 对于Action与业务逻辑层的关系
15.14.3 对于Action的动作用例
15.14.4 对于业务逻辑层和DAO
15.14.5 对于持久层
15.14.6 对于Spring框架
15.14.7 对于标签库和JSTL
15.14.8 对于校验
15.15 本章回顾