书籍详情
精通Struts:基于MVC的Java Web设计与开发
作者:孙卫琴编著
出版社:电子工业出版社
出版时间:2004-08-01
ISBN:9787121000522
定价:¥49.00
购买这本书可以去
内容简介
Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。第8章到第9章介绍了开发Struts应用的一些实用技术,如Struts框架的扩展点、Struts应用的国际化,Validator验证框架和异常处理机制等。第12章到第16章结合具体的Struts应用实例,详细介绍了Struts的标签库以及Tiles框架的使用方法。第17章和第18章介绍如何采用EJB和Web服务来实现Struts框架的模型。第19章到第21章介绍了如何采用第三方软件,如Apache Common Logging API、Log4J、ANT和StrutsTestCase,来控制Struts应用的输出日志、管理以及测试Struts应用项目。 书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用实例,并提供了详细的开发和部署步骤。随书附赠光盘内容为本书所有范例源程序,以及本书涉及的所有软件的最新版本的安装程序。 本书内容循序渐进,语言深入浅出。无论对于Java Web开发的新手还是行家来说,本书都是精通Struts技术和开发Java Web应用的必备的实用手册。
作者简介
孙卫琴,1997年毕业于上海交通大学,随后一直从事基于Java的软件开发工作,还从事过J2EE培训和咨询。目前在美国肯特大学作为访问学者,研究课题包括基于Java和XML的电子商务系统、J2EE软件架构、Web服务和网络安全等。代表著作有:《精通Struts:基于MVC的JavaWeb设计与开发》2004《Tomcat与JavaWeb开发技术详解》2004《Java2认证考试指南与试题解析》2002
目录
第1章 Struts与Java Web应用简介 1
1.1 Java Web应用概述 1
1.1.1 Servlet组件 2
1.1.2 JSP组件 3
1.1.3 共享数据在Web应用中的范围 3
1.1.4 JavaBean组件及其在Web应用中的范围 5
1.1.5 客户化JSP标签 5
1.1.6 EJB组件 6
1.1.7 XML语言 6
1.1.8 Web服务器和应用服务器 7
1.2 Web组件的三种关联关系 7
1.2.1 请求转发 7
1.2.2 请求重定向 8
1.2.3 包含 9
1.3 MVC概述 9
1.3.1 MVC设计模式 10
1.3.2 JSP Model1和JSP Model2 11
1.4 Struts概述 13
1.4.1 Struts实现MVC的机制 13
1.4.2 Struts的工作流程 15
1.5 小结 17
第2章 Struts应用:helloapp应用 19
2.1 分析helloapp应用的需求 19
2.2 运用Struts框架 19
2.3 创建视图组件 20
2.3.1 创建JSP文件 20
2.3.2 创建消息资源文件 23
2.3.3 创建ActionForm Bean 23
2.3.4 数据验证 25
2.4 创建控制器组件 26
2.4.1 Action类的工作机制 28
2.4.2 访问封装在MessageResources中的本地化文本 28
2.4.3 业务逻辑验证 28
2.4.4 访问模型组件 29
2.4.5 向视图组件传递数据 30
2.4.6 把HTTP请求转发给合适的视图组件 30
2.5 创建模型组件 30
2.6 创建存放常量的Java文件 31
2.7 创建配置文件 32
2.7.1 创建Web应用的配置文件 32
2.7.2 创建Struts框架的配置文件 33
2.8 发布和运行helloapp应用 35
2.8.1 服务器端装载hello.jsp的流程 37
2.8.2 表单验证的流程 37
2.8.3 逻辑验证失败的流程 39
2.8.4 逻辑验证成功的流程 40
2.9 小结 41
第3章 Struts应用的需求分析与设计 43
3.1 收集和分析应用需求 43
3.2 设计数据库 44
3.3 设计应用的业务逻辑 45
3.3.1 访问XML格式的用户信息 45
3.3.2 访问数据库 47
3.4 设计用户界面 49
3.4.1 界面风格 50
3.4.2 使用客户化标签 52
3.5 设计ActionForm 53
3.6 设计Action和Action映射 55
3.6.1 设计LogonAction 58
3.6.2 设计LogoffAction 60
3.6.3 设计InsertAction 61
3.6.4 设计SearchAction 62
3.6.5 设计DisplayAllAction 63
3.7 设计客户化标签 64
3.7.1 设计ValidateSessionTag标签 64
3.7.2 设计DisplayTag标签 66
3.7.3 创建客户化app标签库的TLD文件 67
3.8 小结 68
第4章 配置Struts应用 71
4.1 Web应用的发布描述文件 71
4.1.1 Web应用发布描述文件的文档类型定义(DTD) 71
4.2 为Struts应用配置web.xml文件 72
4.2.1 配置Struts的ActionServlet 72
4.2.2 声明ActionServlet的初始化参数 73
4.2.3 配置欢迎文件清单 74
4.2.4 配置错误处理 75
4.2.5 配置Struts标签库 76
4.3 Struts 配置文件 77
4.3.1 org.apache.struts.config包 77
4.3.2 <struts-config>元素 79
4.3.3 <data-sources>元素 80
4.3.4 <form-beans>元素 82
4.3.5 <global-exceptions>元素 83
4.3.6 <global-forwards>元素 84
4.3.7 <action-mappings>元素 85
4.3.8 <controller>元素 87
4.3.9 <message-resources>元素 87
4.3.10 <plug-in>元素 88
4.3.11 配置多应用模块 89
4.4 Digester 组件 91
4.5 Struts 控制面板工具 91
4.6 重新载入配置文件 93
4.7 小结 94
第5章 Struts控制器组件 95
5.1 控制器组件的控制机制 95
5.1.1 ActionServlet类 96
5.1.2 RequestProcessor类 99
5.1.3 Action类 105
5.2 使用内置的Struts Action类 112
5.2.1 org.apache.struts.actions.ForwardAction类 112
5.2.2 org.apache.struts.actions.IncludeAction类 114
5.2.3 org.apache.struts.actions.DispatchAction类 115
5.2.4 org.apache.struts.actions.LookupDispatchAction类 118
5.2.5 org.apache.struts.actions.SwitchAction类 121
5.3 利用Token解决重复提交 121
5.4 实用类 125
5.4.1 RequestUtils类 125
5.4.2 TagUtils类 125
5.4.3 ModuleUtils类 126
5.4.4 Globals类 126
5.5 小结 127
第6章 Struts模型组件 129
6.1 模型在MVC中的地位 129
6.2 模型的概念和类型 130
6.2.1 概念模型 130
6.2.2 设计模型 131
6.3 业务对象(BO) 133
6.3.1 业务对象的特征和类型 133
6.3.2 业务对象的重要性 134
6.4 业务对象的持久化 134
6.4.1 对业务对象进行持久化的作用 135
6.4.2 数据访问对象(DAO)设计模式 135
6.4.3 常用的ORM软件 136
6.5 创建netstore应用的模型 137
6.5.1 为netstore应用创建模型的步骤 137
6.5.2 创建netstore应用的业务对象 138
6.5.3 创建netstore应用的数据库 142
6.5.4 netstore应用的ORM框架 145
6.5.5 联合使用业务代理和DAO模式 155
6.6 小结 167
第7章 Struts视图组件 169
7.1 视图概述 169
7.2 在视图中使用JavaBean 170
7.2.1 DTO数据传输对象 170
7.2.2 Struts框架提供的DTO:ActionForm Bean 171
7.3 使用ActionForm 172
7.3.1 ActionForm的生命周期 172
7.3.2 创建ActionForm 174
7.3.3 配置ActionForm 176
7.3.4 访问ActionForm 177
7.3.5 处理表单跨页 178
7.4 使用动态ActionForm 184
7.4.1 配置动态ActionForm 185
7.4.2 动态ActionForm的reset()方法 186
7.4.3 访问动态ActionForm 187
7.4.4 动态ActionForm的表单验证 187
7.4.5 在netstore应用中使用动态ActionForm 187
7.5 小结 189
第8章 扩展Struts框架 191
8.1 Struts插件(PlugIn) 191
8.2 扩展Struts的配置类 194
8.3 控制器扩展点 195
8.3.1 扩展ActionServlet类 195
8.3.2 扩展RequestProcessor类 196
8.3.3 扩展Action类 198
8.4 扩展视图组件 200
8.5 扩展模型组件 200
8.6 小结 204
第9章 Struts应用的国际化 205
9.1 本地化与国际化的概念 205
9.2 Web应用的中文本地化 206
9.2.1 处理HTTP请求数据编码 207
9.2.2 处理数据库数据编码 207
9.2.3 处理XML配置文件编码 207
9.2.4 处理响应结果的编码 208
9.3 Java对I18N的支持 208
9.3.1 Locale类 208
9.3.2 ResourceBundle类 214
9.3.3 MessageFormat类和复合消息 214
9.4 Struts框架对国际化的支持 216
9.4.1 创建Struts的Resource Bundle 216
9.4.2 访问Resource Bundle 217
9.5 对helloapp应用实现国际化 220
9.5.1 对JSP文件的文本、图片和按钮进行国际化 220
9.5.2 创建临时中文资源文件 221
9.5.3 对临时资源文件进行编码转换 222
9.5.4 创建英文资源文件 223
9.5.5 采用Servlet过滤器设置请求数据的字符编码 223
9.5.6 运行国际化的helloapp应用 225
9.6 异常处理的国际化 226
9.7 小结 226
第10章 Validator验证框架 229
10.1 安装和配置Validator框架 229
10.1.1 validator-rules.xml文件 229
10.1.2 validation.xml文件 233
10.1.3 Validator插件 237
10.2 Validator框架和ActionForm 238
10.3 Validator框架和Struts客户化标签 240
10.4 在netstore应用中使用Validator框架 241
10.5 创建自定义的验证规则 245
10.6 在Validator框架中使用JavaScript 247
10.7 Validator框架的国际化 250
10.8 小结 251
第11章 异常处理 253
11.1 Java异常处理 253
11.1.1 Java异常 253
11.1.2 JVM的方法调用堆栈 254
11.1.3 异常处理对性能的影响 255
11.1.4 系统异常和应用异常 256
11.1.5 使用异常链 256
11.1.6 处理多样化异常 258
11.2 Struts框架异常处理机制概述 260
11.3 Struts框架异常处理机制的细节 261
11.3.1 Java Web容器处理异常的机制 261
11.3.2 ActionServlet类处理异常的机制 261
11.3.3 RequestProcessor类处理异常的机制 262
11.3.4 ExceptionHandler类处理异常的机制 263
11.4 在Struts应用中处理异常的各种方式 266
11.4.1 创建异常类 266
11.4.2 由Java Web容器捕获异常 269
11.4.3 以配置方式处理异常 271
11.4.4 以编程方式处理异常 277
11.5 小结 282
第12章 Struts HTML标签库 283
12.1 用于生成基本的HTML元素的标签 283
12.1.1 <html:html>标签 288
12.1.2 <html:base>标签 288
12.1.3 <html:link>和<html:rewrite>标签 289
12.1.4 <html:img>标签 292
12.2 基本的表单标签 293
12.2.1 <html:form>标签 296
12.2.2 <html:text>标签 296
12.2.3 <html:cancel>标签 297
12.2.4 <html:reset>标签 298
12.2.5 <html:submit>标签 298
12.2.6 <html:hidden>标签 299
12.3 检查框和单选按钮标签 299
12.3.1 <html:checkbox>标签 304
12.3.2 <html:multibox>标签 305
12.3.3 <html:radio>标签 306
12.4 下拉列表和多选列表标签 307
12.4.1 <html:select>标签 311
12.4.2 <html:option>标签 312
12.4.3 <html:options>标签 313
12.4.4 <html:optionsCollection>标签 314
12.5 在表单中上传文件标签 315
12.5.1 <html:file>标签 319
12.5.2 在ActionForm Bean中设定FormFile属性 319
12.5.3 在Action类中处理文件上传 319
12.6 <html:errors>标签 320
12.6.1 错误消息的来源 324
12.6.2 格式化地显示错误消息 326
12.6.3 <html:errors>标签的用法 326
12.7 <html:messages>标签 328
12.8 小结 330
第13章 Struts Bean标签库 331
13.1 访问HTTP请求信息或JSP隐含对象 331
13.1.1 <bean:header>标签 334
13.1.2 <bean:parameter>标签 334
13.1.3 <bean:cookie>标签 335
13.1.4 <bean:page>标签 336
13.2 访问Web应用资源 337
13.2.1 <bean:message>标签 339
13.2.2 <bean:resource>标签 341
13.2.3 <bean:struts>标签 341
13.2.4 <bean:include>标签 342
13.3 定义或输出JavaBean 342
13.3.1 <bean:define>标签 344
13.3.2 <bean:size>标签 345
13.3.3 <bean:write>标签 346
13.4 小结 347
第14章 Struts Logic标签库 349
14.1 进行比较运算的Logic标签 349
14.2 进行字符串匹配的Logic标签 354
14.3 判断指定内容是否存在的Logic标签 356
14.3.1 <logic:empty>和<logic:notEmpty>标签 359
14.3.2 <logic:present>和<logic:notPresent>标签 360
14.3.3 <logic:messagesPresent>和<logic:messagesNotPresent>标签 361
14.4 进行循环遍历的Logic标签 363
14.4.1 遍历集合 366
14.4.2 遍历Map 367
14.4.3 设定被遍历的变量 369
14.5 进行请求转发或重定向的Logic标签 369
14.5.1 <logic:forward>标签 369
14.5.2 <logic:redirect>标签 370
14.6 小结 370
第15章 Struts Nested标签库 373
15.1 <nested:nest>和<nested:writeNesting>标签 373
15.2 <nested:root>标签 379
15.3 和其他标签库中的标签功能相同的Nested标签 381
15.4 小结 382
第16章 Tiles框架 383
16.1 采用基本的JSP语句创建复合式网页 383
16.2 采用JSP的include指令创建复合式网页 387
16.3 采用<tiles:insert>标签创建复合式网页 391
16.4 采用Tiles模板创建复合式网页 394
16.5 采用Tiles模板和Tiles组件创建复合式网页 396
16.5.1 Tiles组件的基本使用方法 397
16.5.2 通过Struts Action来调用Tiles组件 399
16.5.3 Tiles组件的组合 399
16.5.4 Tiles组件的扩展 402
16.6 小结 403
第17章 Struts与EJB组件 405
17.1 J2EE体系结构简介 405
17.2 创建EJB组件 406
17.2.1 编写Remote接口 407
17.2.2 编写Home接口 408
17.2.3 编写Enterprise Java Bean类 408
17.3 在Struts应用中访问EJB组件 413
17.3.1 创建业务代理实现类NetstoreEJBDelegate 413
17.3.2 运用EJBHomeFactory模式 416
17.4 发布J2EE应用 419
17.4.1 在Jboss-Tomcat上部署EJB组件 419
17.4.2 在Jboss-Tomcat上部署Web应用 421
17.4.3 在Jboss-Tomcat上部署J2EE应用 422
17.5 小结 424
第18章 Struts与SOAP Web服务 425
18.1 SOAP简介 425
18.2 建立Apache AXIS环境 427
18.3 创建和发布SOAP服务 428
18.3.1 创建实现SOAP服务的Java类 428
18.3.2 创建Web服务发布描述文件 429
18.3.3 发布SOAP服务 432
18.4 在Struts应用中访问SOAP服务 432
18.5 小结 438
第19章 Struts与Apache通用日志包 439
19.1 Apache通用日志包概述 439
19.1.1 Log接口 439
19.1.2 LogFactory接口 441
19.2 常用的日志实现 441
19.2.1 NoOpLog日志器 441
19.2.2 SimpleLog日志器 442
19.2.3 Log4J日志器 442
19.3 配置通用日志接口 443
19.3.1 准备JAR文件 443
19.3.2 指定日志器 443
19.3.3 设置日志器的属性 444
19.4 配置Log4J 444
19.4.1 配置Log4J的一般步骤 444
19.4.2 Log4J的配置样例 446
19.4.3 Log4J对应用性能的影响 447
19.5 在Struts应用中访问通用日志接口 447
19.5.1 在Action类中访问通用日志接口 448
19.5.2 在JSP中访问通用日志接口 450
19.6 小结 454
第20章 用ANT工具管理Struts应用 455
20.1 Web应用常用的开发目录结构 455
20.2 安装配置ANT 455
20.3 创建build.xml文件 456
20.3.1 设置公共属性 462
20.3.2 设置classpath 463
20.3.3 定义help target 463
20.3.4 定义clean-all target 463
20.3.5 定义prepare target 464
20.3.6 定义compile target 464
20.3.7 定义build target 465
20.3.8 定义deploy target 466
20.3.9 定义javadoc target 466
20.4 运行ANT 466
20.4.1 运行help target 466
20.4.2 运行deploy target 467
20.4.3 运行javadoc target 468
20.5 小结 468
第21章 用StrutsTestCase测试Struts应用 469
21.1 StrutsTestCase简介 469
21.2 制订单元测试用例 469
21.3 创建StrutsTestCase测试类 470
21.4 用ANT工具运行测试程序 471
21.4.1 准备必要的JAR文件 471
21.4.2 在build.xml文件中定义test target 471
21.4.3 运行测试程序 472
21.5 创建包含多个单元测试用例的测试类 473
21.6 小结 475
附录A Struts1.1的UML类框图 476
附录B Struts资源 477
B.1 Struts邮件列表 477
B.2 Struts资源Web站点 477
B.3 Tiles标签库站点 477
B.4 Nested 标签库站点 478
B.5 Struts GUI工具 478
B.6 Easy Struts 工程 478
附录C 发布和运行addressbook应用 479
C.1 发布addressbook应用 479
C.2 运行addressbook应用 479
附录D 发布和运行netstore应用 482
D.1 运行netstore所需的软件 482
D.2 netstore应用的目录结构 483
D.3 安装netstore数据库 484
D.4 发布netstore应用 484
D.4.1 在工作模式1下发布netstore应用 484
D.4.2 在工作模式2下发布netstore应用 485
D.4.3 在工作模式3下发布netstore应用 485
D.4.4 在工作模式4下发布netstore应用 486
D.4.5 在工作模式5下发布netstore应用 486
D.5 运行netstore应用 487
附录E 编译本书的Java Web样例 491
附录F Struts 1.2 API的新特征 492
1.1 Java Web应用概述 1
1.1.1 Servlet组件 2
1.1.2 JSP组件 3
1.1.3 共享数据在Web应用中的范围 3
1.1.4 JavaBean组件及其在Web应用中的范围 5
1.1.5 客户化JSP标签 5
1.1.6 EJB组件 6
1.1.7 XML语言 6
1.1.8 Web服务器和应用服务器 7
1.2 Web组件的三种关联关系 7
1.2.1 请求转发 7
1.2.2 请求重定向 8
1.2.3 包含 9
1.3 MVC概述 9
1.3.1 MVC设计模式 10
1.3.2 JSP Model1和JSP Model2 11
1.4 Struts概述 13
1.4.1 Struts实现MVC的机制 13
1.4.2 Struts的工作流程 15
1.5 小结 17
第2章 Struts应用:helloapp应用 19
2.1 分析helloapp应用的需求 19
2.2 运用Struts框架 19
2.3 创建视图组件 20
2.3.1 创建JSP文件 20
2.3.2 创建消息资源文件 23
2.3.3 创建ActionForm Bean 23
2.3.4 数据验证 25
2.4 创建控制器组件 26
2.4.1 Action类的工作机制 28
2.4.2 访问封装在MessageResources中的本地化文本 28
2.4.3 业务逻辑验证 28
2.4.4 访问模型组件 29
2.4.5 向视图组件传递数据 30
2.4.6 把HTTP请求转发给合适的视图组件 30
2.5 创建模型组件 30
2.6 创建存放常量的Java文件 31
2.7 创建配置文件 32
2.7.1 创建Web应用的配置文件 32
2.7.2 创建Struts框架的配置文件 33
2.8 发布和运行helloapp应用 35
2.8.1 服务器端装载hello.jsp的流程 37
2.8.2 表单验证的流程 37
2.8.3 逻辑验证失败的流程 39
2.8.4 逻辑验证成功的流程 40
2.9 小结 41
第3章 Struts应用的需求分析与设计 43
3.1 收集和分析应用需求 43
3.2 设计数据库 44
3.3 设计应用的业务逻辑 45
3.3.1 访问XML格式的用户信息 45
3.3.2 访问数据库 47
3.4 设计用户界面 49
3.4.1 界面风格 50
3.4.2 使用客户化标签 52
3.5 设计ActionForm 53
3.6 设计Action和Action映射 55
3.6.1 设计LogonAction 58
3.6.2 设计LogoffAction 60
3.6.3 设计InsertAction 61
3.6.4 设计SearchAction 62
3.6.5 设计DisplayAllAction 63
3.7 设计客户化标签 64
3.7.1 设计ValidateSessionTag标签 64
3.7.2 设计DisplayTag标签 66
3.7.3 创建客户化app标签库的TLD文件 67
3.8 小结 68
第4章 配置Struts应用 71
4.1 Web应用的发布描述文件 71
4.1.1 Web应用发布描述文件的文档类型定义(DTD) 71
4.2 为Struts应用配置web.xml文件 72
4.2.1 配置Struts的ActionServlet 72
4.2.2 声明ActionServlet的初始化参数 73
4.2.3 配置欢迎文件清单 74
4.2.4 配置错误处理 75
4.2.5 配置Struts标签库 76
4.3 Struts 配置文件 77
4.3.1 org.apache.struts.config包 77
4.3.2 <struts-config>元素 79
4.3.3 <data-sources>元素 80
4.3.4 <form-beans>元素 82
4.3.5 <global-exceptions>元素 83
4.3.6 <global-forwards>元素 84
4.3.7 <action-mappings>元素 85
4.3.8 <controller>元素 87
4.3.9 <message-resources>元素 87
4.3.10 <plug-in>元素 88
4.3.11 配置多应用模块 89
4.4 Digester 组件 91
4.5 Struts 控制面板工具 91
4.6 重新载入配置文件 93
4.7 小结 94
第5章 Struts控制器组件 95
5.1 控制器组件的控制机制 95
5.1.1 ActionServlet类 96
5.1.2 RequestProcessor类 99
5.1.3 Action类 105
5.2 使用内置的Struts Action类 112
5.2.1 org.apache.struts.actions.ForwardAction类 112
5.2.2 org.apache.struts.actions.IncludeAction类 114
5.2.3 org.apache.struts.actions.DispatchAction类 115
5.2.4 org.apache.struts.actions.LookupDispatchAction类 118
5.2.5 org.apache.struts.actions.SwitchAction类 121
5.3 利用Token解决重复提交 121
5.4 实用类 125
5.4.1 RequestUtils类 125
5.4.2 TagUtils类 125
5.4.3 ModuleUtils类 126
5.4.4 Globals类 126
5.5 小结 127
第6章 Struts模型组件 129
6.1 模型在MVC中的地位 129
6.2 模型的概念和类型 130
6.2.1 概念模型 130
6.2.2 设计模型 131
6.3 业务对象(BO) 133
6.3.1 业务对象的特征和类型 133
6.3.2 业务对象的重要性 134
6.4 业务对象的持久化 134
6.4.1 对业务对象进行持久化的作用 135
6.4.2 数据访问对象(DAO)设计模式 135
6.4.3 常用的ORM软件 136
6.5 创建netstore应用的模型 137
6.5.1 为netstore应用创建模型的步骤 137
6.5.2 创建netstore应用的业务对象 138
6.5.3 创建netstore应用的数据库 142
6.5.4 netstore应用的ORM框架 145
6.5.5 联合使用业务代理和DAO模式 155
6.6 小结 167
第7章 Struts视图组件 169
7.1 视图概述 169
7.2 在视图中使用JavaBean 170
7.2.1 DTO数据传输对象 170
7.2.2 Struts框架提供的DTO:ActionForm Bean 171
7.3 使用ActionForm 172
7.3.1 ActionForm的生命周期 172
7.3.2 创建ActionForm 174
7.3.3 配置ActionForm 176
7.3.4 访问ActionForm 177
7.3.5 处理表单跨页 178
7.4 使用动态ActionForm 184
7.4.1 配置动态ActionForm 185
7.4.2 动态ActionForm的reset()方法 186
7.4.3 访问动态ActionForm 187
7.4.4 动态ActionForm的表单验证 187
7.4.5 在netstore应用中使用动态ActionForm 187
7.5 小结 189
第8章 扩展Struts框架 191
8.1 Struts插件(PlugIn) 191
8.2 扩展Struts的配置类 194
8.3 控制器扩展点 195
8.3.1 扩展ActionServlet类 195
8.3.2 扩展RequestProcessor类 196
8.3.3 扩展Action类 198
8.4 扩展视图组件 200
8.5 扩展模型组件 200
8.6 小结 204
第9章 Struts应用的国际化 205
9.1 本地化与国际化的概念 205
9.2 Web应用的中文本地化 206
9.2.1 处理HTTP请求数据编码 207
9.2.2 处理数据库数据编码 207
9.2.3 处理XML配置文件编码 207
9.2.4 处理响应结果的编码 208
9.3 Java对I18N的支持 208
9.3.1 Locale类 208
9.3.2 ResourceBundle类 214
9.3.3 MessageFormat类和复合消息 214
9.4 Struts框架对国际化的支持 216
9.4.1 创建Struts的Resource Bundle 216
9.4.2 访问Resource Bundle 217
9.5 对helloapp应用实现国际化 220
9.5.1 对JSP文件的文本、图片和按钮进行国际化 220
9.5.2 创建临时中文资源文件 221
9.5.3 对临时资源文件进行编码转换 222
9.5.4 创建英文资源文件 223
9.5.5 采用Servlet过滤器设置请求数据的字符编码 223
9.5.6 运行国际化的helloapp应用 225
9.6 异常处理的国际化 226
9.7 小结 226
第10章 Validator验证框架 229
10.1 安装和配置Validator框架 229
10.1.1 validator-rules.xml文件 229
10.1.2 validation.xml文件 233
10.1.3 Validator插件 237
10.2 Validator框架和ActionForm 238
10.3 Validator框架和Struts客户化标签 240
10.4 在netstore应用中使用Validator框架 241
10.5 创建自定义的验证规则 245
10.6 在Validator框架中使用JavaScript 247
10.7 Validator框架的国际化 250
10.8 小结 251
第11章 异常处理 253
11.1 Java异常处理 253
11.1.1 Java异常 253
11.1.2 JVM的方法调用堆栈 254
11.1.3 异常处理对性能的影响 255
11.1.4 系统异常和应用异常 256
11.1.5 使用异常链 256
11.1.6 处理多样化异常 258
11.2 Struts框架异常处理机制概述 260
11.3 Struts框架异常处理机制的细节 261
11.3.1 Java Web容器处理异常的机制 261
11.3.2 ActionServlet类处理异常的机制 261
11.3.3 RequestProcessor类处理异常的机制 262
11.3.4 ExceptionHandler类处理异常的机制 263
11.4 在Struts应用中处理异常的各种方式 266
11.4.1 创建异常类 266
11.4.2 由Java Web容器捕获异常 269
11.4.3 以配置方式处理异常 271
11.4.4 以编程方式处理异常 277
11.5 小结 282
第12章 Struts HTML标签库 283
12.1 用于生成基本的HTML元素的标签 283
12.1.1 <html:html>标签 288
12.1.2 <html:base>标签 288
12.1.3 <html:link>和<html:rewrite>标签 289
12.1.4 <html:img>标签 292
12.2 基本的表单标签 293
12.2.1 <html:form>标签 296
12.2.2 <html:text>标签 296
12.2.3 <html:cancel>标签 297
12.2.4 <html:reset>标签 298
12.2.5 <html:submit>标签 298
12.2.6 <html:hidden>标签 299
12.3 检查框和单选按钮标签 299
12.3.1 <html:checkbox>标签 304
12.3.2 <html:multibox>标签 305
12.3.3 <html:radio>标签 306
12.4 下拉列表和多选列表标签 307
12.4.1 <html:select>标签 311
12.4.2 <html:option>标签 312
12.4.3 <html:options>标签 313
12.4.4 <html:optionsCollection>标签 314
12.5 在表单中上传文件标签 315
12.5.1 <html:file>标签 319
12.5.2 在ActionForm Bean中设定FormFile属性 319
12.5.3 在Action类中处理文件上传 319
12.6 <html:errors>标签 320
12.6.1 错误消息的来源 324
12.6.2 格式化地显示错误消息 326
12.6.3 <html:errors>标签的用法 326
12.7 <html:messages>标签 328
12.8 小结 330
第13章 Struts Bean标签库 331
13.1 访问HTTP请求信息或JSP隐含对象 331
13.1.1 <bean:header>标签 334
13.1.2 <bean:parameter>标签 334
13.1.3 <bean:cookie>标签 335
13.1.4 <bean:page>标签 336
13.2 访问Web应用资源 337
13.2.1 <bean:message>标签 339
13.2.2 <bean:resource>标签 341
13.2.3 <bean:struts>标签 341
13.2.4 <bean:include>标签 342
13.3 定义或输出JavaBean 342
13.3.1 <bean:define>标签 344
13.3.2 <bean:size>标签 345
13.3.3 <bean:write>标签 346
13.4 小结 347
第14章 Struts Logic标签库 349
14.1 进行比较运算的Logic标签 349
14.2 进行字符串匹配的Logic标签 354
14.3 判断指定内容是否存在的Logic标签 356
14.3.1 <logic:empty>和<logic:notEmpty>标签 359
14.3.2 <logic:present>和<logic:notPresent>标签 360
14.3.3 <logic:messagesPresent>和<logic:messagesNotPresent>标签 361
14.4 进行循环遍历的Logic标签 363
14.4.1 遍历集合 366
14.4.2 遍历Map 367
14.4.3 设定被遍历的变量 369
14.5 进行请求转发或重定向的Logic标签 369
14.5.1 <logic:forward>标签 369
14.5.2 <logic:redirect>标签 370
14.6 小结 370
第15章 Struts Nested标签库 373
15.1 <nested:nest>和<nested:writeNesting>标签 373
15.2 <nested:root>标签 379
15.3 和其他标签库中的标签功能相同的Nested标签 381
15.4 小结 382
第16章 Tiles框架 383
16.1 采用基本的JSP语句创建复合式网页 383
16.2 采用JSP的include指令创建复合式网页 387
16.3 采用<tiles:insert>标签创建复合式网页 391
16.4 采用Tiles模板创建复合式网页 394
16.5 采用Tiles模板和Tiles组件创建复合式网页 396
16.5.1 Tiles组件的基本使用方法 397
16.5.2 通过Struts Action来调用Tiles组件 399
16.5.3 Tiles组件的组合 399
16.5.4 Tiles组件的扩展 402
16.6 小结 403
第17章 Struts与EJB组件 405
17.1 J2EE体系结构简介 405
17.2 创建EJB组件 406
17.2.1 编写Remote接口 407
17.2.2 编写Home接口 408
17.2.3 编写Enterprise Java Bean类 408
17.3 在Struts应用中访问EJB组件 413
17.3.1 创建业务代理实现类NetstoreEJBDelegate 413
17.3.2 运用EJBHomeFactory模式 416
17.4 发布J2EE应用 419
17.4.1 在Jboss-Tomcat上部署EJB组件 419
17.4.2 在Jboss-Tomcat上部署Web应用 421
17.4.3 在Jboss-Tomcat上部署J2EE应用 422
17.5 小结 424
第18章 Struts与SOAP Web服务 425
18.1 SOAP简介 425
18.2 建立Apache AXIS环境 427
18.3 创建和发布SOAP服务 428
18.3.1 创建实现SOAP服务的Java类 428
18.3.2 创建Web服务发布描述文件 429
18.3.3 发布SOAP服务 432
18.4 在Struts应用中访问SOAP服务 432
18.5 小结 438
第19章 Struts与Apache通用日志包 439
19.1 Apache通用日志包概述 439
19.1.1 Log接口 439
19.1.2 LogFactory接口 441
19.2 常用的日志实现 441
19.2.1 NoOpLog日志器 441
19.2.2 SimpleLog日志器 442
19.2.3 Log4J日志器 442
19.3 配置通用日志接口 443
19.3.1 准备JAR文件 443
19.3.2 指定日志器 443
19.3.3 设置日志器的属性 444
19.4 配置Log4J 444
19.4.1 配置Log4J的一般步骤 444
19.4.2 Log4J的配置样例 446
19.4.3 Log4J对应用性能的影响 447
19.5 在Struts应用中访问通用日志接口 447
19.5.1 在Action类中访问通用日志接口 448
19.5.2 在JSP中访问通用日志接口 450
19.6 小结 454
第20章 用ANT工具管理Struts应用 455
20.1 Web应用常用的开发目录结构 455
20.2 安装配置ANT 455
20.3 创建build.xml文件 456
20.3.1 设置公共属性 462
20.3.2 设置classpath 463
20.3.3 定义help target 463
20.3.4 定义clean-all target 463
20.3.5 定义prepare target 464
20.3.6 定义compile target 464
20.3.7 定义build target 465
20.3.8 定义deploy target 466
20.3.9 定义javadoc target 466
20.4 运行ANT 466
20.4.1 运行help target 466
20.4.2 运行deploy target 467
20.4.3 运行javadoc target 468
20.5 小结 468
第21章 用StrutsTestCase测试Struts应用 469
21.1 StrutsTestCase简介 469
21.2 制订单元测试用例 469
21.3 创建StrutsTestCase测试类 470
21.4 用ANT工具运行测试程序 471
21.4.1 准备必要的JAR文件 471
21.4.2 在build.xml文件中定义test target 471
21.4.3 运行测试程序 472
21.5 创建包含多个单元测试用例的测试类 473
21.6 小结 475
附录A Struts1.1的UML类框图 476
附录B Struts资源 477
B.1 Struts邮件列表 477
B.2 Struts资源Web站点 477
B.3 Tiles标签库站点 477
B.4 Nested 标签库站点 478
B.5 Struts GUI工具 478
B.6 Easy Struts 工程 478
附录C 发布和运行addressbook应用 479
C.1 发布addressbook应用 479
C.2 运行addressbook应用 479
附录D 发布和运行netstore应用 482
D.1 运行netstore所需的软件 482
D.2 netstore应用的目录结构 483
D.3 安装netstore数据库 484
D.4 发布netstore应用 484
D.4.1 在工作模式1下发布netstore应用 484
D.4.2 在工作模式2下发布netstore应用 485
D.4.3 在工作模式3下发布netstore应用 485
D.4.4 在工作模式4下发布netstore应用 486
D.4.5 在工作模式5下发布netstore应用 486
D.5 运行netstore应用 487
附录E 编译本书的Java Web样例 491
附录F Struts 1.2 API的新特征 492
猜您喜欢