《实战STRUTS》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Ted Husted等著;黄若波,程峰,程繁科译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2005
  • ISBN:7111162811
  • 页数:464 页
图书介绍:本书是由Struts开发小组的核心成员编写的一本关于Struts开发的经典书籍。它一步步地由浅入深,将Struts分解成相对独立的部分进行了讲解。本书除了介绍Struts以外,同时还介绍了一些与Struts相关的组件,合理地使用这些组件可以帮助程序员开发出更加健壮、更加专业、更加容易维护的应用程序。对于刚刚接触Struts的新手而言,本书无异于是学习和掌握Struts的圣经。对于在Struts方面有不少经验的程序员而言,本书也提供了Struts底层内容,帮助读者更好地编写基于Struts的应用程序。

目录 1

序言 1

前言 1

关于本书 1

第一部分 Struts起步 1

第1章 概述 1

1.1 本书的目的 1

1.1.1 Struts的开发人员 1

1.1.2 为什么说Struts是开源软件 2

1.1.3 为什么被称为Struts 2

1.2 应用程序框架的概念 2

1.3 必备知识 3

1.3.1 HTTP 3

1.3.2 通用网关接口 4

1.3.3 Java servlet 5

1.3.4 JSP 6

1.3.5 JSP标签 7

1.3.6 JavaBean 8

1.3.7 Model 2 9

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 为什么使用Struts 21

2.2.1 历史的回顾 21

2.2.3 Struts控制层 22

2.2.2 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和MVC 29

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 从基础了解Struts 42

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.1 浏览器中欢迎页面的代码 46

3.3 解剖登录应用程序 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.6 建立web.xml文件 66

3 4 5 建立build 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 配置ActionErrors 73

3.4.15 编译和测试登录页面 73

3.4.16 修改欢迎页面 74

3.4.17 Struts的Action:Forward-Action 75

3.5 总结 76

第4章 配置Struts组件 77

4.1 三个XML文件和一个属性文件 77

4.2.1 web.xml文件 78

4.2 Web应用程序部署描述文件 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.10 Struts配置文件的一个框架 92

4.4.9 编写自己的子类 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 Validator 99

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

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

第5章 处理ActionForm 107

5.1 输入垃圾,输出珠宝 107

5.2 多面手ActionForm 110

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

其他bean 115

5.3.4 ActionForm可以内含 115

5.3.3 ActionForm可以封装辅助函数 115

5.4 ActionForm的其他类型 116

5.4.1 Map-backed ActionForm 116

5.4.2 DynaActtinForm 117

5.5 哪些情况下不使用ActionForm 118

5.5.1 为什么ActionForm不是一个Map对象 118

5.5.2 为什么ActionForm不是一个简单的JavaBcan 118

5.5.3 为什么ActionForm不是一个接口 119

5.6 使用ActionForm 119

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 BaseForm 131

5.7.1 SessionLocale 131

5.7.2 Dispatch 132

5.7.3 自动填充 132

5.7.4 BaseMapForm 132

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.6 导航条内容不变的原因 138

6.5 动态转发 138

6.4.2 在Action类中添加参数 138

6.7 编写自己的ActionForward 139

6.8 总结 140

第7章 ActionMapping的设计 141

7.1 了解ActionMapping 141

7.1.1 ActionMapping bean 142

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.10 input属性 145

7.2.9 validate属性 145

7.2.8 scope属性 145

7.2.7 roles属性 145

7.2.6 name属性 145

7.2.11 parameter属性 146

7.2.12 attribute属性 147

7.2.13 prefix和suffix属性 147

7.2.14 unknown属性 147

7.3 内部组件 148

7.3.1 本地转发 148

7.3.2 本地异常 148

7.4 编写自己的ActionMapping 148

7.5 总结 149

第8章 使用Action对象 150

8.1 准备,设定,行动 150

8.2 使用Action对象 150

8.2.1 Action是什么 151

8.2.2 何时调用Action 152

8.2.3 Action可以做什么 153

8.2.4 Action到底是什么 157

8.3 标准的Action 158

8.3.1 标准的桥接Action 159

8.3.2 标准的基本Action 161

8.4 级联Action 165

8.5 Scaffold Action 167

8.5.1 仅仅和转发相关的Action 167

8.5.2 辅助Action 172

8.6 基本的View Action 174

8.7 辅助Action类使用的技术 175

8.7.1 可选择的转发 176

8.7.2 先调用 177

8.7.3 捕获级联的异常 177

8.7.4 灵活的错误信息转发 179

8.7.6 可变换的视图 180

8.7.5 提示成功消息 180

8.7.7 使用反射技术来调用方法 181

8.7.8 使用反射来调用类 181

8.8 使用灵活转发 182

8.9 总结 186

第9章 扩展ActionServlet 187

9 1 ActionServlet的地位 187

9.2 RequestProcessor 189

9.2.1 process方法 190

9.2.2 processRoles 190

9.3 ExceptionHandler 192

9.4 插件 193

9.5 总结 193

10.1 标签——就是你 195

10.1.1 JSP标签库——有什么优点 195

第三部分 构造自己的页面 195

第10章 显示动态内容 195

10.1.2 Struts和JSTL 198

10.1.3 Struts标签库和MVC 199

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.2 基础 213

10.4 使用Struts标签 213

10.4.1 Struts的标签 213

10.4.3 技术 220

10.4.4 可用的控件 231

10.5 不同的视图 232

10.5.1 Struts和JSP 232

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和Struts 237

11.2 创建一个layout模板 238

11.2.1 tile是什么 240

11.2.2 部署Tiles模板 241

11.2.3 添加样式表 242

11.2.4 模板和MVC 243

11.3 Tiles Definition 243

11.3.1 声明Definition 243

11.3.2 JSP声明 244

11.3.3 配置文件声明 247

11.3.4 把Definition作为ActionForward 249

11.4 Tile属性 250

11.4.1 useAttribute 250

11.4.2 importAttribute 251

11.4.3 put 251

11.5.1 设置Tiles框架 253

11.5 把一个应用程序转化为Tiles 253

11.4.4 putList和add 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 模式化基础layout 265

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.5 配置文件 286

12.4.3 定制化的校验器消息 286

12.6 校验器的JSP标签 287

12.7 ValidatorForm和Validator ActionForm 290

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 Validator 296

12.11.1 安装配置Validator框架结构 296

12.11.3 回顾你的校验方法 297

12.11.2 测试默认的配置 297

12.11.4 扩展ValidatorForm或者Scaffold BaseForm 298

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.3 默认的资源包 311

13.2.2 MessageResources 311

13.2.4 ActionErrors 313

13.2.5 ActionMessages 313

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 Validator 321

13.4.2 本地化Tiles 322

13.4.3 本地化集合 322

13.5 总结 323

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

14.1 起步 325

14.1.1 从层次的角度看JDBC 325

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和JDBC 330

14.3.1 介绍ProcessBean 331

14.3.2 作为数据传递对象的ProcessBean 332

14.3.3 填充ProcessBean 333

14 3.4 执行ProcessBean 333

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 使用辅助Action 340

14.6 使用Lucene 341

14.7 使用内容摘要 345

14.7.1 Digester和RSS 346

14.7.2 获取和生成数据 346

14.7.3 RSS摘要 347

14.8 在Struts中使用EJB 349

14.8.2 数据传递对象 350

14.8.3 实现模式 350

14.8.1 Session Facade 350

14.9 总结 351

第四部分 以实例介绍Struts 353

第15章 Artimus:实例研究 353

15.1 框架的框架 353

15.2 Scaffold——工具的产生 354

15.3 关于Artimus 354

15.4 部署描述文件(web.xml) 356

15.4.1 配置Artimus 357

15.4.2 应用程序的属性 357

15.4.3 连接适配器 358

15.4.4 启动属性 358

15.4.5 其他配置设定 358

15.4.6 安全设定 358

15.5 ArtimusServlet 359

15 4.9 鉴证策略 359

15.4.8 授权用户 359

15.4.7 受保护的URL 359

15 5.1 子类 361

15 5.2 串标志符 361

15.5.3 扩展点 361

15.6 应用程序与SQL属性文件 362

15.7 index.jsp 363

15.8 全局转发 363

15.9 /find/Recent 365

15.9.1 扩展bean 368

15.9.2 super.execute 368

15 9 3 getArticles 368

15.9.4 Access.findByLast与ResultList 368

15.9.5 ProcessResult 369

15.9.6 ProcessAction 370

15.10 tiles.xml与Article,jsp 371

15.10.1 useAttribute 373

15.10.2 baseStyle 373

15.10.3 标题 373

15.10.4 Tiles 373

15.11 result.jsp 375

15.11.1 图例 376

15.11.2 isResult 376

15.11.3 RESULT 377

15.12 article actions 380

15.13 view.jsp 382

15.13.1 headline 383

15.13.2 content 383

15.13.3 contributor 384

15.14 form.jsp 385

15.14.1 article content 386

15.14.3 article ID 387

15.14.4 validation 387

15.14.2 contributed/contributor 387

15.15 /do/Menu 389

15.15.1 logon 390

15.15.2 菜单 391

15.15.3 我们的控件 392

15.15.4 saveResult方法 392

15.15.5 我们的结果集 392

15.16 menu.jsp 393

15.16.1 /find/Hours 394

15.16.2 /menu/Find 395

15.16.3 /find/Last 396

15.16 4 /menu/Contributor 396

15.17 总结 397

15.16.5 /menu/Manager 397

第16章 Redux:迁移到Struts 1.1 398

16.1 下一步:Struts 1.1 398

16.1.1 Struts 1.1特征集 399

16.1.2 我们可使用的特征 401

16.2 改变基础 402

16.2.1 Struts 1.1中的Tiles 402

16.2.2 Struts 1.1中的Validator 405

16.2.3 Struts 1.1中的ReloadAction 406

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.1 DynaActionForm格式 410

16.3 可自由选择的修改 410

16.3.2 基于Action的安全机制 411

16.3.3 修改Action路径 413

16.3.4 Struts 1.1中的应用程序资源 414

16.4 总结 414

第17章 Velocity:替换JSP 416

17.1 转移到Velocity模板 416

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

17.3 为什么需要Velocity 416

17.3.1 Velocity轻便、快捷而且通用 417

17.3.2 Velocity可以很好地与其他软件协作 417

17.3.3 Velocity简单但是功能强大 417

17.4 在Web应用程序中使用Velocity 418

17.4.1 将Velocity与servlet资源一起使用 418

17.4.2 联合使用Velocity和上下文属性 419

17.4.4 VelocityStruts工具包 420

17.4.3 Velocity如何与Struts协同工作 420

17.4.5 Struts View工具 421

17.5 我们的登录模板 421

17.6 建立VelocityViewServlet 424

17.6.1 安装VelocityViewServlet 424

17.6.2 部署Velocity servlet 424

17.6.3 工具箱配置文件 425

17.7 设置struts-config 426

17.8 总结 427

附录 429

附录A 设计模式 429

附录B Struts配置文件的API 435

附录C 标签库快速参考 446

术语表 450

参考文献 456