Struts 2实战

当前位置:首页 > 计算机网络 > 软件工程/开发项目管理 > Struts 2实战

出版社:人民邮电出版社
出版日期:2010-2
ISBN:9787115219336
作者:Donald Brown,Chad Michael Davis,Scott Stanli
页数:332页

章节摘录

  web应用程序必须要处理这个差异。  对于Web应用程序而言,需要跨越HTTP协议的两个障碍——无状态和基于文本。无状态的协议不记录收到的多个请求之间的关系。每一个请求都会被当做服务器接收到的唯一的请求处理。HTTP服务器没有保存用来追踪和逻辑上连接来源于一个给定客户的多个请求的记录。服务器有客户端的地址,但是这个地址只用来返回当前请求的文档。如果一个客户回来请求其他文档,服务器不知道这是同一个客户的重复访问。  但是如果我们想构造一个含有更复杂用例的复杂应用程序,这就行不通了。以最简单、最常见的安全的Web应用程序为例,一个安全的web应用程序需要对它的用户进行身份验证。要做到这点,客户发送用户名和密码的请求,必须能够通过某种方式与这个会话期间来源于该客户的其他请求关联起来。不能记录不同请求之间的关系,连现代Web立用程序的入门功能都不能实现。每一个现代Web应用程序都必须解决这个问题。  同样麻烦的是,HTTP还是基于文本的。将基于文本的技术与强类型的技术(例如Java)匹配起来引发了大量的数据绑定工作。在一个HTTP请求中,所有的数据都以文本方式表示。在处理过程的某个地方,这些编码的数据必须被映射到Java数据类型。而且,这个转换在请求处理过程的两端都要发生。输入请求参数必须被迁移到Java环境,发出的响应必须将数据从Java带回到基于文本的HTTP响应。虽然不是什么高深的技术,但它却为Web应用程序带来了成堆的烦琐工作,这些任务既容易出错又浪费时间。  2.Java Servlet API  Java ServletAPI帮助缓解了一些痛苦。这个重要的技术将HTTP公开给Java平台。这意味着JaVa开发人员可以依据HTTP客户/服务器通信以直观的面向对象的抽象方式编写HTTP服务器代码。ServletAPI中的核心对象是Servlet、请求(request)和响应(response)。Servlet是一个单例(singleton)的Java对象,它全部的用途是接收请求,以及在任意的后端处理之后返回响应。请求对象封装了各种各样的请求细节,包括通过表单字段提交的请求参与,以及查询字符串参数。响应对象包含如响应首部、生成响应文本的输出流等一些关键项目。总之,Servlet接受请求对象,检查其中的数据,执行适当的后台逻辑,之后向客户返回响应。基础你应该知道Sun公司和Servlet规范。如果你不熟悉Sun公司的做事方式,这里是一个简单知识的介绍。Sun公司提供技术规范,例·~wSeiMet API。这个规范是在社区中产生的,其中包括感兴趣的各方,Sun公司本身并不是很重要。规范详细描述了这个API必须遵守的职责和契约,真正的实现由第三方厂商提供。以Servlet规范为例,其实现是Servlet容器(Servletcontainer)。这些容器可以是独立的实现,例如非常流行的Apache Tomcat,也可以被集成到其他更大的应用程序服务器中。这些容器既有开源软件又有完全商业化的产品。如果你不熟悉Servlet规范,我们建议你阅读一下。它简明扼要,读起来也很流畅。

前言

  我从2002年开始接触Java。虽然Java是我选修的一门课程,但是当第一次看到Java简洁语法背后的强大功能时,我就被它深深地吸引了。而真正认识Java Web开发是在2003年。那年暑假,我找了一份不错的兼职工作,为国内某一大型企业开发后台管理系统。记得当时使用的是WebLogic Portal 7,主要的开发方式是前台JSP调用后台的EJB。正好有一个从美国工作回来的“大虾”负责带我,我从他那里第一次听说了Struts、Spring、Hibernate等一系列的开源技术,于是开始了对这些技术的研究。可惜的是,毕业之后我没有选择进入那家公司工作,也就失去了向那位“大虾”继续学习的机会,现在回想起来还蛮后悔的。  时间一晃到了2007年,我已经工作了3年,工作经验的丰富和对技术的热爱让我终于决定要写一本技术书,同时也为开源社区做一些贡献。在这3年中,我一直从Struts中受益,但是也饱受Struts的煎熬。清晰的MVC框架、JSP文件的逻辑命名、功能强大的JSP标签都让我备感轻松,同时FormBean与域对象的重复、烦琐的配置文件、机械的开发方式也让我吃够了苦头。当时正好WebWork与Struts结合的产物Struts 2也开始成熟起来,在我肤浅地研究这些内容之后,就决定开始写一本关于Struts 2的书,这也正是我的博客http://blog.csdn.net/struts2产生的直接原因。从2007年7月30日第一篇文章开始到现在,我的博客已经累计了几十篇文章,其中有些是从Struts 2官方网站直接翻译过来的内容,有些是自己工作经验的总结,但是每一篇文章都凝聚了我对Struts 2的热爱与推崇。  2008年6月11日,我收到了人民邮电出版社图灵公司编辑傅志红女士的一封来信,问我是否愿意翻译Manning出版社久负盛名的in Action系列的图书之一Struts 2 in Action。我高兴都来不及,怎么能不愿意呢?于是在简短的过程性事务之后,我就正式开始了本书的翻译,同时也放弃了自己写书的想法。这本书写得这么好,我为什么还要班门弄斧呢?能够翻译出来让喜欢Struts 2的读者一起分享,我已经很满足了。此后的无数个深夜,这个世界上就又多了一盏昏暗的灯和一颗澎湃的心。也正是经历了这本书的翻译历程,我才知道翻译一本书远比想象的要辛苦。但是毕竟我是第一次翻译技术书籍,英语基础又不是很好,所以其中肯定会有错误或者不合适的地方,还请大家多多谅解,多多指点。大家可以上我的博客直接评论。非常感谢大家能够阅读本书,相信本书一定能够让大家深入了解Struts 2。  本书的中文版本能够出版要非常感谢以下人员。  那位“大虾”,出于个人隐私的原因,我没有说明他是谁,但是如果“大虾”看到的话,他肯定会知道的。如果没有他带我迈进Java的门槛,或许我现在还在门外徘徊。  我可爱的媳妇儿,她通读了全书,找出了很多明显的错误和不合适的表述。  我所就职的公司以及各位领导和同事,是他们给了我学习和成长的机会。

媒体关注与评论

  “由于最近开始了一个Struts2项目,需要深入学习这个框架,我预定了这本书。它真的非常棒,没有令我失望……作者清楚地阐释了该框架背后的概念。且提供的示例可以即学即用。立竿见影。”  ——Amazon.com读者评论

内容概要

Donald Brown  Atlassian软件系统公司托管服务的首席软件工程师和Apache软件基金会成员,参与开发了Struts及多个Apache Commons项目,并且是JavaOne、ApacheCon和Java用户组的活跃分子。
Chad Michael Davis J2EE开发人员、软件顾问、作家,撰写过多篇计算机领域相关的学术著作。
Scott Stanlick 现在著名汽车租赁连锁企业Enterprise Rent-A-Car任软件架构师。

书籍目录

第一部分 Strut 2:一个全新的框架
第1章 Struts 2:现代Web框架 2
1.1 Web应用程序:快速学习 2
1.1.1 构建Web应用程序 2
1.1.2 基础技术简介 3
1.1.3 深入研究 6
1.2 Web应用程序框架 7
1.2.1 什么是框架 7
1.2.2 为什么使用框架 8
1.3 Struts 2框架 9
1.3.1 Struts 2简史 9
1.3.2 Struts 2概览:MVC模式 10
1.3.3 Struts 2的工作原理 12
1.4 小结 14
第2章 初识Struts 2 16
2.1 声明性架构 16
2.1.1 两种配置 16
2.1.2 声明架构的两种方式 17
2.1.3 智能默认值 20
2.2 简单的HelloWorld示例 20
2.2.1 部署示例应用程序 20
2.2.2 探索HelloWorld应用程序 24
2.3 使用注解的HelloWorld 31
2.4 小结 33
第二部分 核心概念:动作、拦截器和类型转换
第3章 使用Struts 2动作 36
3.1 Struts 2动作简介 36
3.2 打包动作 39
3.2.1 Struts 2公文包示例应用程序 39
3.2.2 组织你的包 39
3.2.3 使用struts-default包中的组件 41
3.3 实现动作 43
3.3.1 可选的Action接口 44
3.3.2 ActionSupport类 45
3.4 向对象传递数据 51
3.4.1 对象支持的JavaBean属性 52
3.4.2 ModelDriven动作 54
3.4.3 域对象用作数据转移的潜在危险 55
3.5 案例研究:文件上传 56
3.5.1 通过struts-default包获得内建的支持 56
3.5.2 fileUpload拦截器做什么 57
3.5.3 Struts 2公文包示例代码研究 58
3.6 小结 60
第4章 使用拦截器追加工作流 61
4.1 为什么要拦截请求 61
4.1.1 清理MVC 61
4.1.2 从拦截器受益 63
4.1.3 开发拦截器 64
4.2 拦截器的工作原理 64
4.2.1 总指挥ActionInvocation 64
4.2.2 如何触发拦截器 64
4.3 研究内建的Struts 2拦截器 67
4.3.1 工具拦截器 67
4.3.2 数据转移拦截器 67
4.3.3 工作流拦截器 69
4.3.4 其他拦截器 72
4.3.5 内建的拦截器栈 73
4.4 声明拦截器 74
4.4.1 声明独立的拦截器和拦截器栈 74
4.4.2 将拦截器映射到动作组件 76
4.4.3 设置、覆盖拦截器参数 77
4.5 构建自定义拦截器 78
4.5.1 实现Interceptor接口 78
4.5.2 构建AuthenticationInterceptor拦截器 79
4.6 小结 82
第5章 数据转移:OGNL和类型转换 84
5.1 数据转移和类型转换:Web应用程序领域的常见任务 85
5.2 OGNL和Struts 2 85
5.2.1 OGNL是什么 85
5.2.2 OGNL如何融入框架 87
5.3 内建的类型转换器 89
5.3.1 立即可用的类型转换器 89
5.3.2 使用OGNL表达式从表单字段名映射到属性 90
5.4 自定义类型转换 101
5.4.1 实现类型转换器 102
5.4.2 在String和Circle之间转换 102
5.4.3 配置框架使用自定义转换器 103
5.5 小结 106
第三部分 构建视图——标签和结果
第6章 构建视图——标签 108
6.1 入门 108
6.1.1 ActionContext和OGNL 109
6.1.2 虚拟对象ValueStack 111
6.2 Struts 2标签概要 113
6.2.1 Struts 2标签API语法 113
6.2.2 使用OGNL设置标签属性 115
6.3 数据标签 117
6.3.1 property标签 117
6.3.2 set标签 118
6.3.3 push标签 119
6.3.4 bean标签 120
6.3.5 action标签 122
6.4 控制标签 124
6.4.1 iterator标签 124
6.4.2 if和else标签 125
6.5 其他标签 126
6.5.1 include标签 126
6.5.2 URL标签 127
6.5.3 i18n和text标签 128
6.5.4 param标签 129
6.6 使用JSTL和其他本地标签 130
6.7 OGNL表达式语言的基础知识 130
6.7.1 什么是OGNL 130
6.7.2 Struts 2中常用的表达式语言特性 131
6.7.3 表达式语言的高级特性 135
6.8 小结 137
第7章 UI组件标签 139
7.1 为什么需要UI组件标签 139
7.2 标签、模板和主题 144
7.2.1 标签 146
7.2.2 模板 146
7.2.3 主题 146
7.3 UI组件标签 148
7.3.1 通用属性 148
7.3.2 简单组件 149
7.3.3 基于集合的组件 159
7.3.4 额外的组件 166
7.4 小结 168
第8章 结果 170
8.1 动作之后 170
8.1.1 页面上:如何使用自定义结果组件构建Struts 2 Ajax应用程序 171
8.1.2 实现JSON结果类型 173
8.2 常用的结果类型 180
8.2.1 RequestDispatcher,也叫做dispatcher 180
8.2.2 ServletRedirectResult,也叫做redirect 186
8.2.3 ServletActionRedirectResult,也叫做redirectAction 188
8.3 JSP替代品 189
8.3.1 VelocityResult,也叫做velocity 189
8.3.2 FreemarkerResult,也叫做freemarker 191
8.4 全局结果 192
8.5 小结 193
第四部分 完善应用程序
第9章 集成Spring和Hibernate/JPA 196
9.1 为什么在Struts 2中使用Spring 196
9.1.1 依赖注入能做些什么 197
9.1.2 Spring如何管理对象和注入依赖 199
9.1.3 使用接口隐藏实现 200
9.2 将Spring添加到Struts 2 202
9.2.1 让Spring管理动作、拦截器和结果的创建 203
9.2.2 使用自动连线将依赖注入到动作、拦截器和结果 205
9.3 为什么在Struts 2中使用JPA 207
9.3.1 使用JPA和Hibernate建立项目 208
9.3.2 基于Spring管理JPA编写代码 212
9.4 小结 216
第10章 探索验证框架 217
10.1 熟悉数据验证框架 217
10.1.1 验证框架的架构 218
10.1.2 Struts 2工作流中的验证框架 219
10.2 将动作关联到验证框架 222
10.2.1 使用ActionClass-validations.xml声明验证元数据 223
10.2.2 研究内建的验证器 226
10.3 编写自定义验证器 227
10.3.1 检查密码强度的自定义验证器 227
10.3.2 使用自定义数据验证器 229
10.4 验证框架的高级主题 230
10.4.1 在域对象级别验证 231
10.4.2 使用验证上下文优化验证 233
10.4.3 验证继承 235
10.4.4 验证短路效应 236
10.4.5 使用注解声明验证 237
10.5 小结 239
第11章 理解国际化 240
11.1 Struts 2框架和Java i18n 241
11.1.1 使用ResourceBundle和Locale取得本地化文本 241
11.1.2 Struts 2如何解决本地Java对i18n支持的问题 243
11.2 Struts 2 i18n示例 244
11.2.1 Struts 2 i18n快速展示 244
11.2.2 幕后一览 246
11.3 Struts 2 i18n详情 247
11.3.1 Struts 2默认的TextProvider Re-sourceBundle搜索算法 248
11.3.2 从包中取得消息文本 251
11.3.3 使用i18n标签指定包 254
11.3.4 参数化本地化文本 255
11.3.5 格式化日期和数字 256
11.4 覆盖框架默认的地域决定 257
11.4.1 让用户交互地设置地域 257
11.4.2 以编码的方式设置地域 259
11.5 小结 260
第五部分 高级主题和最佳实践
第12章 使用插件扩展Struts 2 264
12.1 插件概要 264
12.2 常用插件 265
12.2.1 SiteMesh 266
12.2.2 Tiles 267
12.2.3 JFreeChart 269
12.3 内部组件系统 271
12.3.1 Bean 271
12.3.2 常量 272
12.3.3 注入 272
12.3.4 Struts内部扩展点 273
12.4 编写浏览路径插件 274
12.5 小结 278
第13章 最佳实践 279
13.1 建立开发环境 279
13.1.1 建立IDE 280
13.1.2 重新加载资源 280
13.2 对动作进行单元测试 281
13.2.1 将IoC用于测试的优势 281
13.2.2 JUnit与测试 282
13.2.3 测试validation.xml文件 284
13.3 最大化重用 284
13.3.1 使用component标签组件化 285
13.3.2 重用模板化的标签 286
13.3.3 连接UI标签和对象 287
13.4 高级UI标签的使用 288
13.4.1 覆盖既有模板 288
13.4.2 编写自定义模板 288
13.4.3 编写自定义主题 289
13.5 小结 289
第14章 从经典Struts迁移 290
14.1 翻译经典Struts的知识 290
14.1.1 动作 290
14.1.2 ActionForm怎么了 292
14.1.3 切换标签库 293
14.1.4 拆分消息资源 294
14.2 逐步转换 296
14.2.1 逐步实现 296
14.2.2 动作映射 298
14.2.3 动作在哪里遇到表单 300
14.2.4 转换页面 301
14.2.5 不说英语 303
14.2.6 数据警察 304
14.2.7 两者能够和睦相处吗 306
14.3 小结 307
第15章 高级主题 308
15.1 高级动作的应用 308
15.2 动态方法调用 310
15.2.1 通配符方法的选择 310
15.2.2 动态工作流 312
15.3 使用令牌防止表单重复提交 313
15.3.1 使用s:token/表单标签 313
15.3.2 令牌拦截器规则的例外 314
15.4 自动显示等待页面 316
15.5 完成CRUD操作的一个动作 317
15.5.1 CRUD 317
15.5.2 拦截器和接口 318
15.5.3 连接各部分 323
15.6 Tiles和Struts 2 325
15.6.1 关注网站的界面外观 325
15.6.2 配置相互关系 326
15.6.3 使用声明性架构 329
15.6.4 使用Tiles控制器准备网页内容 331
15.7 小结 332

编辑推荐

  Amazon全五星图书,备受赞誉  资深开发人员深入剖析Struts2核心概念和组件  学习Struts不可不读

作者简介

《Struts 2实战》结合实例介绍了Struts 2框架,主要内容包括Action、Result、Interceptor等框架组件,基于注解的配置选项等新特征,Struts 2插件 FreeMarker,如何从Struts 1和WebWork 2迁移到Struts 2,Ajax标签、Spring框架集成等新特性。《Struts 2实战》适合各层次Java开发人员阅读和参考。

图书封面


 Struts 2实战下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计5条)

  •     读完之后感觉对struts的内部构造讲得比较详细,并非介绍如何搭建Strut 2环境。结合Struts网站上的教程来看效果更好。翻译水平一般,整本中文书的语句还算通畅,但感觉译者并没有什么技术底子。读完之后感觉对struts的内部构造讲得比较详细,并非介绍如何搭建Strut 2环境。结合Struts网站上的教程来看效果更好。翻译水平一般,整本中文书的语句还算通畅,但感觉译者并没有什么技术底子。读完之后感觉对struts的内部构造讲得比较详细,并非介绍如何搭建Strut 2环境。结合Struts网站上的教程来看效果更好。翻译水平一般,整本中文书的语句还算通畅,但感觉译者并没有什么技术底子。读完之后感觉对struts的内部构造讲得比较详细,并非介绍如何搭建Strut 2环境。结合Struts网站上的教程来看效果更好。翻译水平一般,整本中文书的语句还算通畅,但感觉译者并没有什么技术底子。读完之后感觉对struts的内部构造讲得比较详细,并非介绍如何搭建Strut 2环境。结合Struts网站上的教程来看效果更好。翻译水平一般,整本中文书的语句还算通畅,但感觉译者并没有什么技术底子。
  •     这本书里面最失败的一点就是:译者居然把Action翻译成“动作”。。。。就举一个例子,P64,“框架通过调用invoke方法,开始动作的执行”。请问,有多少人能够第一时间读出这个“动作”两个字是Action的意思。。。。。这书的原作者也有很大的问题,看了传智播客的视频,发现一大堆的概念点都没讲到。比如如何在action里面获取servlet api,如此重要的概念都是隐藏在一些小概念里面轻轻带过。反正一遍读下来,发现:光看这一本书绝对不行!如果你只想买一本struts2放在书架上作为参考资料备用。千万别买这本。
  •     内容是相当可以的,不赘述struts2的一些基础的配置,更多的是从原理入手,解释各种struts2的技术,拦截器,类型转换等

精彩短评 (总计31条)

  •     咋说呢,内容是很好,很久没有这么冲动得想读完一本技术书。下面的评论说翻译得差,这个好像是翻译这类书都有的问题。
  •     翻译的好生硬,只看了前几章
  •     53
  •     这本书比较适合有s***ts2基础的人看的。

    感觉这书是教你:应该怎样用Struts2
    《Struts2权威指南》是教你:可以怎样用Struts2
    两本书的层次不一样。

    看了该书的原文,就会发觉:翻译实在是有点烂!我看英文都没那么吃力,看翻译真的有点惨不忍睹...

    总体是本不错的书,建议看原著。
  •     作为入门级的书还可以
  •     拿到书之后迫不及待的看了以来 读了一个句子,感觉怎么也读不通,心想我不是那么差劲吧。
    在仔细一看,书的页数顺序错了 还缺页,太令我失望了。我一直对图灵的书有好感,可这人民邮电出版社也太不敬业了吧,另外发现翻译的质量不是很好,有的地方很拗口,还有凭自己的猜测应该是什么意思,感觉看不是很爽。如果你英文还可以的话,建议读原版书籍
  •     写的蛮好的,一部分是因为Struts本身比较简单。一部分是因为这本书讲出了Struts这个框架的好处。在浅浅的理解原理之后,充分理解了Struts这个框架的设计灵活性。
  •     这本书总体不错,浅显易懂。不过翻译版,有些图片错误。。

    就此书的技术水平,我只能说,适合入门。。很多内容讲的不够细。。
  •     用一个例子将struts 2的所有部分如何工作讲了一遍,很深入不知道为什么有那么多2B不认真读一下就评价,国人做事让我觉得很搞笑。
  •     * in action系列的书一直都很不错 但是没想到这本翻译的这么烂 还不如直接对着英文版看 不建议给大家看 如果英语还可以 直接读原版吧 给2颗星也是给原书的 我的struts2虽然学的不好 但是翻译绝对比他好多了 他纯粹是英语差的要命来翻译来了
  •     真是一本好书,来的也快
  •     写的很好~~
  •     刚看了两章,内容很好、有深度。翻译的还可以,暂时还没碰到有碍理解的地方。很满意!
  •     被Spring实战给比下来的
  •     struts学习比较好的一本入门教材
  •     2010年12月。找工作那段时间拼命的借技术的书来看,In Action系列的书,如struts、spring还有后来的ibatis,都是很好的书
  •     翻译糟糕,语言不连贯,根本不是计算机人士翻译的。
  •     看了看前面介绍Struts2的几章,介绍的比较细致,入门可以了,但是想深入了解Struts2还是不够,后面几章没有看,用到的时候可以当手册来查查。
  •     阅读是一件多么美好的事情,读一本经典的书能解答你的很多疑问
  •     开始学习struts 2
  •     书不错,没有发现有少页,缺页的。物流速度也可以。
  •     
  •     翻译一般
  •     这书是翻译软件翻的吗?狗屁不通
  •     翻译不好啊,特殊词汇其实不用翻译的。action就action呗,翻译什么动作啊。result就result呗,不一定要翻译成结果啊。把特殊词汇搞普通了。
  •     很好非常不错的一本书
  •     真心赞~ 估计还要多翻几遍
  •     这翻译的人是害人的,原著写的很好被翻译成这了,唉,跟百度翻译的一个档次,太坑了!!!
  •     部分内容过时了,仍然是了解Struts2的好书,翻译很生硬,对照英文的来看
  •     感觉还很好,action , interceptor等概念讲得比较清楚
  •     比经典的一本书。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024