前言
为什么写本书
在基于Java的Web开发领域,Apache旗下的Struts无疑具有非常重要的地位。从历史上看,Struts是出现较早的Web层解决方案,它借助Apache的影响力积累了大量的客户群体。在之后的岁月中,Struts吸收合并了另外一个开源社区的精品Webwork2成为Struts2,借助Webwork2先进的设计理念和优雅的实现及原先Struts社区积累的人气,打造成新一代的Web开发解决方案。
无疑,Struts2赢得了众多开发者的认同,也赢得了市场。目前,Struts2已经成为Web开发解决方案的一股重要力量,并拥有庞大的开发者社群。
对开发者来说,随着Web开发技术的不断革新,往往都需要一个优秀的框架作为程序开发的骨架,并在这个基础上完成Web层所赋予的任务。而Struts2,向我们提供了一个完整的Web层设计和开发的思路,为我们展示了许多Web层设计和开发的最佳实践。可以说,使用Struts2作为解决方案,已经成为绝大多数Web开发者的首选。
Struts2的源码中,不仅包含了优秀的Web层设计理念,而且蕴含了许多编程技巧和设计模式。通过本书,读者可以加深对Web开发职责的理解,从而提高自己的开发水平,拓展自己的技术视野。除此之外,本书所介绍的一些哲学观点,相信也能成为读者重新思考Web开发的重要借鉴。
本书面向的读者
1.学习Java语言和Java EE技术的中高级读者
对这部分读者来说,Struts2和XWork的核心设计思想以及建立在此基础之上的源代码,是极佳的学习Java和Java EE技术的参考资料。
2.Struts2的研究和开发人员
对这部分读者来说,本书的内容能够帮助他们加深对Struts2和XWork设计原理的哲学理解,并成为他们定制和扩展Struts2框架的宝贵参考资料。
3.开源软件爱好者
在本书中,我们不仅提供了Struts2的学习方法,还向大家介绍了一整套完整的开源软件的学习方法,可以帮助这部分读者提高使用开源软件的效率和质量。
4.平台开发人员和架构师
Struts2蕴含的深刻的软件设计理念,可以提高这部分读者对软件架构的认识和设计能力。
本书的主要内容
本书主要分为三个部分:知识准备篇、核心技术篇和运行主线篇。
知识准备篇(第1章~第3章)。除了介绍和分析解读Struts2的基本环境之外,这一篇的重要任务是帮助读者梳理Web开发中的主要概念和知识体系。
核心技术篇(第4章~第8章)。将对Struts2所依赖的一些核心技术一一做出详细解读,包括Struts2中所用到的设计模式、XWork的容器实现、OGNL表达式引擎、XWork框架的控制流和数据流体系等等。
运行主线篇(第9章~第12章)。其中主要涉及对Struts2两大核心运行主线的研究以及对Struts2的扩展机制的分析。
本书的篇章安排有很强的逻辑性,章和章之间互相呼应、互相论证。读者在阅读时可以带着问题到后续章节中去寻找答案,而在每章的小结中,我们会为读者安排每章的概要性问题,大家可以在此做一个回顾并思考问题的答案,从而起到温故而知新的效果。
致谢
首先要感谢iteye,感谢iteye的站长robbin,是iteye给了我Web开发知识的启蒙教育。也是在iteye上,我第一次接触到了Struts2的前身Webwork 2。而iteye多年来在Web开发领域所掀起的各种讨论,也成为本书许多重要观点的产生源泉。
感谢robbin、Readonly、moxie,还有许多曾经活跃在iteye上的朋友,你们都是曾经为Struts2在国内的推广做出过杰出贡献的人。本书的所有成果,都只是“站在了巨人的肩膀之上”,集合了众家之言而形成的Web开发之道。
特别感谢ahuaxuan在本书创作过程中给予我的帮助。与你在许多编程哲学上的探讨,每次都能让我受益匪浅。在本书的众多观点中,有许多出自你的连珠妙语。
最后感谢本书的策划编辑杨福川和关敏,你们是我见过的脾气最好、业务能力最强的出版人。我从你们的身上看到了一种坚韧不拔的精神和精益求精的态度。这对我的一生都有帮助。