实战Struts

实战Struts
作 者: 赫斯特 黄若波
出版社: 机械工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 高级程序语言设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  TedHusted,一位知名的Strus权威,Strus开发小组的一个活跃分子,JGuru中Strus论坛的管理员。作为一名咨询师,Ted曾在专业Strus开发小组中工作。Ted同时也负责帮助维护Apachejakarta项目,该项目包含了Strus框架结构。Ted和他的妻子、两个孩子、四台电脑和一个小猫一起住在纽约。

内容简介

本书是由Struts开发小组的核心成员编写的一本关于Struts开发的经典书籍。它一步步地由浅人深,将Struts分解成相对独立的部分进行了讲解。本书除了介绍Struts以外,同时还介绍了一些与Struts相关的组件,合理地使用这些组件可以帮助程序员开发出更加健壮、更加专业、更加容易维护的应用程序。对于刚刚接触Struts的新手而言,本书无异于是学习和掌握Struts的圣经。对于在Struts方面有不少经验的程序员而言,本书也提供了Struts底层内容,帮助读者更好地编写基于Struts的应用程序。Struts解决了许多Web应用程序开发中的常见问题。基于Struts应用程序框架构造的应用程序,除了可以复用业已证明可用的解决方案外,同时也可以使得开发人员更加关注应用程序的特性。Struts是由Apache软件基金会支持的开源软件。本书完整介绍了Struts框架结构,涵盖了设计、数据校验、数据库访问、动态页面生成、本地化、Struts配置以及其他一些重要的方面。书中还介绍了如何同时使用JSP标签和Velocity模板,并仔细介绍了Struts体系结构以及Struts控制流,同时也说明了如何扩展Struts框架结构。书中还明确指出了Struts 1.0和1.1版本间的区别,同时还通过实例说明了Struts 1.0应用程序向Struts 1.1应用程序转换的技术。本书还介绍了很多已得到证明的设计技术、模式和策略,而这些内容在其他书中是很难找到的。

图书目录

第一部分 Struts起步

第1章 概述1

11 本书的目的1

111 Struts的开发人员1

112 为什么说Struts是开源软件2

113 为什么被称为Struts2

12 应用程序框架的概念2

13 必备知识3

131 HTTP3

132 通用网关接口4

133 Java servlet5

134 JSP6

135 JSP标签7

136 JavaBean8

137 Model 29

14 Struts概述9

141 构造一个简单的应用程序11

142 准备工作11

143 如何完成整个练习12

144 回顾17

15 总结20

第2章 研究Struts体系结构21

21 言众人所言21

22 为什么使用Struts21

221 历史的回顾21

222 Struts介绍22

223 Struts控制层22

224 使用Struts开发Web应用程序26

23 为什么需要框架结构26

231 Web——麻烦的源头26

232 servlet解决方案27

233 Servlet框架结构28

234 黑盒和白盒系列29

24 Struts. Model 2和MVC29

241 MVC的演变29

242 Model 2的产生30

243 应用程序层——独立的视图层31

244 Struts如何实现Model 2. MVC和分层32

25 Struts控制流33

251 流程概述33

252 更微小的细节35

253 Struts的性能37

26 Struts的强项和弱点38

261 Struts的缺点38

262 Struts的优点40

27 总结41

第3章 构造一个简单的应用程序42

31 从基础了解Struts42

32 简述登录应用程序的流程43

321 起步43

322 将会使用的页面43

323 欢迎页面44

324 登录页面44

325 再次进入欢迎页面45

326 退出欢迎页面45

327 特性摘要45

33 解剖登录应用程序46

331 浏览器中欢迎页面的代码46

332 欢迎页面的JSP源代码47

333 欢迎页面的配置信息49

334 浏览器中登录页面的代码50

335 登录页面对应的配置部分52

336 LogonSubmit的源代码52

337 LogonForm的源代码53

338 LogonAction的源代码55

339 LogoffAction的源代码60

34 构造一个应用程序62

341 定义需求62

342 计划应用程序63

343 计划源代码树结构65

344 安装自己的开发工具65

345 建立buildxml文件66

346 建立webxml文件66

347 建立strutsconfigxml文件67

348 测试部署68

349 构造我们的欢迎页面69

3410构造登录页面70

3411构造常量类71

3412构造其他的类72

3413创建用户目录72

3414配置ActionErrors73

3415编译和测试登录页面73

3416修改欢迎页面74

3417Struts的Action:ForwardAction75

35 总结76

第4章 配置Struts组件77

41 三个XML文件和一个属性文件77

42 Web应用程序部署描述文件78

421 webxml文件78

422 ActionServlet的参数80

43 Struts配置81

431 细节82

432 管理修改83

433 原则:隐藏变化83

44 Struts配置元素84

441〈globalexceptions〉85

442〈formbeans〉86

443〈globalforwards〉87

444〈actionmappings〉88

445〈controller〉89

446〈messageresources〉90

447〈plugin〉90

448〈datasources〉91

449 编写自己的子类92

4410Struts配置文件的一个框架92

45 应用程序的资源文件94

46 Ant文件95

47 配置Struts的核心97

471 安装Java和Servlet容器97

472 安装一个开发环境98

473 安装Struts的核心文件98

48 配置Tiles框架结构98

49 配置Struts Validator99

410使用Struts空白应用程序100

411配置模块化的应用程序102

4111 分而治之102

4112 前缀化页面104

4113 更新配置文件104

412 共享Struts的JAR文件104

413 总结105

第二部 分提出自己的框架结构

第5章 处理ActionForm107

51 输入垃圾, 输出珠宝107

52 多面手ActionForm110

521 使用ActionForm来填充自己的域110

522 使用ActionForm作为数据缓存111

523 使用ActionForm作为数据校验器112

524 使用ActionForm作为类型转换器112

525 使用ActionForm作为数据传递对象112

526使用ActionForm作为防火墙113

53 ActionForm的设计结果114

531 ActionForm可能和业务逻辑层对象共享名字114

532 ActionForm可能减少定制的代码量114

533 ActionForm可以封装辅助函数115

534 ActionForm可以内含其他bean115

54 ActionForm的其他类型116

541 Mapbacked ActionForm116

542 DynaActionForm117

55 哪些情况下不使用ActionForm118

551 为什么ActionForm不是一个Map对象118

552 为什么ActionForm不是一个简单的JavaBean118

553 为什么ActionForm不是一个接口119

56 使用ActionForm119

561 实现业务层逻辑120

562 内含可改变的数据对象121

563 设置不可改变数据对象122

564 设置可改变的数据对象123

565 使用工厂方法123

566 传递一个Map对象124

567 通过反射传递数据126

568 使用接口类130

57 BaseForm131

571 SessionLocale131

572 Dispatch132

573 自动填充132

574 BaseMapForm132

58 总结133

第6章 使用ActionForward对象134

61 ActionForward的功能134

62 ActionForward如何工作135

63 本地转发和全局转发136

64 运行时刻参数137

641 在页面中增加参数137

642 在Action类中添加参数138

65 动态转发138

66 导航条内容不变的原因138

67 编写自己的ActionForward139

68 总结140

第7章 ActionMapping的设计141

71 了解ActionMapping141

711 ActionMapping bean142

712 ActionMapping目录142

72 ActionMapping属性143

721 path属性143

722 forward属性144

723 include属性144

724 type属性144

725 className属性144

726 name属性145

727 roles属性145

728 scope属性145

729 validate属性145

7210input属性145

7211parameter属性146

7212attribute属性147

7213prefix和suffix属性147

7214unknown属性147

73 内部组件148

731 本地转发148

732 本地异常148

74 编写自己的ActionMapping148

75 总结149

第8章 使用Action对象150

81 准备, 设定, 行动150

82 使用Action对象150

821 Action是什么151

822 何时调用Action152

823 Action可以做什么153

824 Action到底是什么157

83 标准的Action158

831 标准的桥接Action159

832 标准的基本Action161

84 级联Action165

85 Scaffold Action167

851 仅仅和转发相关的Action167

852 辅助Action172

86 基本的View Action174

87 辅助Action类使用的技术175

871 可选择的转发176

872 先调用177

873 捕获级联的异常177

874 灵活的错误信息转发179

875 提示成功消息180

876 可变换的视图180

877 使用反射技术来调用方法181

878 使用反射来调用类181

88 使用灵活转发182

89 总结186

第9章 扩展ActionServlet187

91 ActionServlet的地位187

92 RequestProcessor189

921 process方法190

922 processRoles190

93 ExceptionHandler192

94 插件193

95 总结193

第三部 分构造自己的页面

第10章 显示动态内容195

101 标签——就是你195

1011 JSP标签库——有什么优点195

1012 Struts和JSTL198

1013 Struts标签库和MVC199

102 使用扩展标签库200

1021 扩展标签是如何工作的200

1022 如何安装扩展标签202

1023 扩展标签库不是什么203

103 Struts标签库204

1031 Struts标签库的常用功能205

1032 bean标签206

1033 html标签208

1034 logic标签210

104 使用Struts标签213

1041 Struts的标签213

1042 基础213

1043 技术220

1044 可用的控件231

105 不同的视图232

1051 Struts和JSP232

1052 servlet上下文232

1053 除了JSP以外233

106 总结233

第11章 使用Tiles开发应用235

111 管理布局235

1111 用动态模板进行分层235

1112 运用模板的结果236

1113 使用模板236

1114 集成模板. Tiles和Struts237

112 创建一个layout模板238

1121 tile是什么240

1122 部署Tiles模板241

1123 添加样式表242

1124 模板和MVC243

113 Tiles Definition243

1131 声明Definition243

1132 JSP声明244

1133 配置文件声明247

1134 把Definition作为ActionForward249

114 Tile 属性250

1141 useAttribute250

1142 importAttribute251

1143 put251

1144 putList和add253

115 把一个应用程序转化为Tiles253

1151 设置Tiles框架253

1152 测试默认配置254

1153 浏览页面254

1154 使用〈tiles:insert〉重构页面256

1155 把〈tiles:insert〉标签析取到Definition中262

1156 模式化基础layout265

1157 把Definition精练为基础类和扩展类266

1158 形成例程267

1159 对移植的管理267

116 总结268

第12章 验证用户输入270

121 只有看见时我才知道270

1211 我们不能拒绝的输入270

1212 Web层的校验271

1213 使用校验器的结果272

122 Struts Validator简述273

123 基本校验器280

1231 required校验器281

1232 mask校验器281

1233 range校验器282

1234 maxLength校验器283

1235 minLength校验器283

1236 byte. short. integer. long. float和double校验器283

1237 date校验器283

1238 creditCard校验器284

1239 email校验器284

124 资源包284

1241 默认的资源包285

1242 默认校验器消息285

1243 定制化的校验器消息286

125 配置文件286

126 校验器的JSP标签287

127 ValidatorForm和ValidatorActionForm290

128 本地化的校验器291

129 可插入的校验器291

1210技术292

12101 多页面校验293

12102 取消按钮293

12103 定制化的消息293

12104 相关联域294

12105 联合使用校验器和validate方法295

1211移植应用程序到Struts Validator296

12111 安装配置Validator框架结构296

12112 测试默认的配置297

12113 回顾你的校验方法297

12114 扩展ValidatorForm或者Scaffold BaseForm298

12115 选择一个校验器来进行移植工作298

12116 添加formset. form和field元素299

12117 在ApplicationResources中添加新的选项300

12118 调用Struts校验器301

12119 测试和重复301

121110删除ActionForm子类302

1212总结303

第13章 内容本地化305

131 用另外一个名字305

1311 为什么进行本地化306

1312 Java的国际化功能306

132 Struts的国际化组件310

1321 Session中的Locale属性310

1322 MessageResources311

1323 默认的资源包311

1324 ActionErrors313

1325 ActionMessages313

1326 区域敏感的JSP标签314

133 本地化Struts应用程序318

1331 允许本地化318

1332 使用框架结构Locale对象319

1333 将标签和消息存放在属性文件中320

1334 创建语言相关的属性文件320

1335 在可以本地化模块中指定恰当的键值321

1336 其他模块使用〈bean:message〉321

134 本地化其他模块321

1341 本地化Struts Validator321

1342 本地化Tiles322

1343 本地化集合322

135 总结323

第14章 使用数据服务功能325

141 起步325

1411 从层次的角度看JDBC325

1412 介绍数据服务326

142 研究业务层327

1421 Struts——使用自己的模式327

1422 定义业务对象327

1423 设计业务对象328

1424 设计结果329

1425 混合业务方法和Action(不推荐)329

1426 一个简单的例子330

143 在Struts中使用ProcessBeans和JDBC330

1431 介绍ProcessBean331

1432 作为数据传递对象的ProcessBean332

1433 填充ProcessBean333

1434 执行ProcessBean333

1435 访问数据服务334

1436 使用典型的流程335

1437 对业务行为进行编码336

1438 使用ProcessBean作为持久层338

1439 使用其他的持久层338

144 使用result对象339

145 使用辅助Action340

146 使用Lucene341

147 使用内容摘要345

1471 Digester和RSS346

1472 获取和生成数据346

1473 RSS摘要347

148 在Struts中使用EJB349

1481 Session Facade350

1482 数据传递对象350

1483 实现模式350

149 总结351

第四部 分以实例介绍Struts

第15章 Artimus:实例研究353

151 框架的框架353

152 Scaffold——工具的产生354

153 关于Artimus354

154 部署描述文件(webxml)356

1541 配置Artimus357

1542 应用程序的属性357

1543 连接适配器358

1544 启动属性358

1545 其他配置设定358

1546 安全设定358

1547 受保护的URL359

1548 授权用户359

1549 鉴证策略359

155 ArtimusServlet359

1551 子类361

1552 串标志符361

1553 扩展点361

156 应用程序与SQL属性文件362

157 indexjsp363

158 全局转发363

159 /find/Recent365

1591 扩展bean368

1592 superexecute368

1593 getArticles368

1594 AccessfindByLast与ResultList368

1595 ProcessResult369

1596 ProcessAction370

1510 tilesxml与Articlejsp371

15101 useAttribute373

15102 baseStyle373

15103 标题373

15104 Tiles373

1511 resultjsp375

15111 图例376

15112 isResult376

15113 RESULT377

1512 article actions380

1513 viewjsp382

15131 headline383

15132 content383

15133 contributor384

1514 formjsp385

15141 article content386

15142 contributed/contributor387

15143 article ID387

15144 validation387

1515 /do/Menu389

15151 logon390

15152 菜单391

15153 我们的控件392

15154 saveResult方法392

15155 我们的结果集392

1516 menujsp393

15161 /find/Hours394

15162 /menu/Find395

15163 /find/Last396

15164 /menu/Contributor396

15165 /menu/Manager397

1517 总结397

第16章 Redux:迁移到Struts 11398

161 下一步:Struts 11398

1611 Struts 11特征集399

1612 我们可使用的特征401

162 改变基础402

1621 Struts 11中的Tiles402

1622 Struts 11中的Validator405

1623 Struts 11中的ReloadAction406

1624 对webxml和strutsconfigxml的其他变更406

1625 messagejsp(版本11)406

1626 formjsp(版本11)407

1627 MenuCreate(版本11)409

1628 继续前进409

163 可自由选择的修改410

1631 DynaActionForm格式410

1632 基于Action的安全机制411

1633 修改Action路径413

1634 Struts 11中的应用程序资源414

164 总结414

第17章 Velocity:替换JSP416

171 转移到Velocity模板416

172 变化导致了应用程序框架结构的出现416

173 为什么需要Velocity416

1731 Velocity轻便. 快捷而且通用417

1732 Velocity可以很好地与其他软件协作417

1733 Velocity简单但是功能强大417

174 在Web应用程序中使用Velocity418

1741 将Velocity与servlet资源一起使用418

1742 联合使用Velocity和上下文属性419

1743 Velocity如何与Struts协同工作420

1744 VelocityStruts工具包420

1745 Struts View工具421

175 我们的登录模板421

176 建立VelocityViewServlet424

1761 安装VelocityViewServlet424

1762 部署Velocity servlet424

1763 工具箱配置文件425

177 设置strutsconfig426

178 总结427

附录

附录A 设计模式429

附录B Struts配置文件的API435

附录C 标签库快速参考446

术语表450

参考文献456