本书以Struts框架为基础,介绍了J2EE模型中各层流行技术与Struts框架的整合,符合当今业界流行的软件开发趋势。全书共分15章,内容涵盖Struts框架的组成、J2EE架构方式、Struts框架与表示层技术整合、Struts框架与中间件技术整合、Struts框架与持久层框架整合、Struts框架与中间层框架整合以及表示层、业务逻辑层、持久层3层框架的整合。本书的特色在于经典成熟的表示层框架Struts结合现今各开发社区最热门和最前沿的技术,更完整地实现了J2EE模型,本书每一章的示例都有很强的针对性,力求让读者通过亲手操作而掌握基本的使用方法,学习尽可能多的知识。\r\n 本书适合于初、中级Java开发者阅读,同时也可用作高校相关专业师生和社会培训班的教材。
第1篇 初涉Struts\r\n 第1章 Struts入门\r\n 1.1 必须了解的历史:J2EE与Modell、2\r\n 1.2 Jakarta Apache与Struts\r\n 1.3 选择Struts的理由\r\n 1.4 Struts的环境与配置\r\n 1.5 Hello World,开启Struts的第一次\r\n 1.6 本章回顾\r\n 第2章 Struts的基本组成(1)\r\n 2.1 一切尽在掌握的XML部署描述符\r\n 2.2 View组件ActionForm\r\n 2.3 Controller组件\r\n 2.4 页面报错组件\r\n 2.5 本章回顾\r\n 第3章 Struts的基本组成(2)\r\n 3.1 标签库的组成\r\n 3.2 Struts HTML标签库\r\n 3.3 Struts Bean 标签库\r\n 3.4 Struts Logic标签库\r\n 3.5 Struts Template标签库\r\n 3.6 Struts的完整示例\r\n 3.7 本章回顾\r\n第2篇 步步深入Struts\r\n 第4章 Struts-config.xml详解\r\n 4.1 概述\r\n 4.2 处理异常的exception和global-exceptions\r\n 4.3 简单示例\r\n 4.4 global-forwards标记与全局转发\r\n 4.5 Struts-config.xml中国转发\r\n 4.6 Struts框架的控制器\r\n 4.7 Controller标记的配置\r\n 4.8 Plup-in标记与额外能力\r\n 4.9 message-resources标记\r\n 4.10 动态Action Form\r\n 4.11 一个完整的Struts-config.xml\r\n 4.12 本章回顾\r\n 第5章 国际化\r\n 5.1 概述\r\n 5.2 国际化和本地化\r\n 5.3 认识编码\r\n 5.4 Struts的国际化\r\n 5.5 简单的国际化示例\r\n 5.6 本章回顾\r\n 第6章 Validator框架\r\n第3篇 Struts整合应用\r\n 第7章 良好的大局观:J2EE设计模式\r\n 第8章 复合式网页的支援:Tiles框架\r\n 第9章 Struts与表现层技术的结合\r\n 第10章 Struts与中间件技术的结合\r\n 第11章 Struts与Hibernate框架的结合\r\n 第12章 Struts与IBatis框架的结合\r\n 第13章 Struts与Spring的结合\r\n 第14章 Struts与各层框架的整合\r\n第4篇 Struts项篇目\r\n 第15章 项目剖析:用户邮件地址管理系统
前 言
Struts框架从出现发展到现在已经成为了服务器端表示层的经典MVC框架,它以清晰的架构,简单的使用,完备的文档成为了表示层解决方案的首选。
然而,遗憾的是仅仅依靠Struts无法很好的解决复杂应用的架构问题,因为专注于表示层的Struts框架对于J2EE模型来说只是一层的实现,以一层的实现来应对整个J2EE模型显然是不合理的。幸好,在J2EE模型其它各层中陆续出现了许多相当有用的技术,它们有的是官方提出的规范,有的是开源社区发布的优秀框架,这些技术的出现为J2EE其它各层的实现带来了无法言喻的好处。更令人欣喜的是,这些技术可以和Struts很好的整合在一起,共同协作,共同互补,使得Struts框架能够在原有的基础上提供更进一步的强大功能。
本书以J2EE模型的服务器端表示层、服务器端业务逻辑层、域模型层、持久层为主要关注点,为各层的实现提供了业界最流行的解决方案,并以Struts框架为主与其它各层技术进行了优雅的整合。本书的示例有极强的针对性,对于Struts框架的各种应用都提供了一个完整实现,示例的选择尽量以简单易懂为主,以帮助读者尽快入门。
笔者工作于软件开发的前沿,因此对于读者需要什么样的技术,怎样才能提升自身能力的需求非常清楚,所以本书在编著时对于整书的构架相当讲究,介绍内容时由浅入深,示例演示时举一反三,从单独介绍Struts框架到各层框架单独介绍再到各层框架与Struts框架的结合可以说是步步为营,对于读者可能混淆的重点概念也进行了反复说明,同时对于难懂的概念避免了冗长的复杂语句,以相对简单清晰的语句加上示例来进行说明,这对于读者的理解和吸收有很大帮助。
为什么选择本书
1.框架整合,概念清晰
现在的Struts书籍在世面上有很多,这些书籍关注Struts框架的部分很多也很全,但往往会忽略一个重要的问题,那就是:与其他框架整合的问题。Struts框架并不是一个万能框架,它仅作为J2EE模型的一部分,它需要和其他层技术进行结合来实现应用。过分的依靠Struts框架来实现J2EE是一个“反模式”。本书对于这一点有明确的说明,以避免读者在打基础的阶段就步入概念混乱的深渊。
2.优劣分明,改良缺失
许多书籍在介绍Struts框架时都一直在褒奖它,并没有对该框架潜在的问题进行说明,容易让读者觉得Struts框架是一切都可实现的“银弹”。本书分析了Struts框架中出现的问题,并提供了解决方案来改良,让读者对Struts框架有进一步的认识。
3.基础扎实,培养能力
本书在介绍每一层的技术时并不是如“帮助文档”一样一成不变的介绍,而是取其经典的部分进行演示和说明,让读者能从中对整个技术有一个清晰的概念,为今后的自学打下良好的基础。此外,为了提升读者的能力,本书还不断的为读者展示“为什么这么做”的原因并引入了高层设计模式的知识。掌握这部分的内容,读者可以更快的从“入门到精通”。
4.避虚就实,主次分明
本书对于所有Struts框架的功能及其整合运用都通过完整的示例来进行说明,这样做避免了夸夸其谈,做到了避虚就实。在对示例讲解时也并不是一味的专注于该示例所达到的功能,而是通过对示例中重点代码进行更深刻的讲解,让读者能一眼就看到在示例中哪些是需要重点掌握的,哪些是可以自行改良的。
5.从书中培养独自设计和应用的能力
综观现今大多介绍Struts的书籍,都只从其应用和内容进行深入的介绍,读完书后读者大都只知Struts有某些功能、某些能力,却不知在自身的项目中如何可以运用到最好,需要读者自行进行摸索。本书除了对Struts进行深入介绍以外,培养读者步步从软件开发到软件设计的能力。
6.技术经典、覆盖面广
本书的所有与Struts框架整合的技术都取自当今业界最前卫和最有活力的技术。比如本书中对持久层部分的讲解集合了Hibernate和IBatis两大框架,并比较了这两大框架的差别,以帮助读者能更好的选择。本书的所有技术在各大热门开源论坛的讨论都如火如荼的进行着,可以说本书所讲解的内容代表了当今业界的流行趋势。
7.项目经典、分析透彻
本书的最后一章为读者演示了一个完整项目,从需求分析到系统设计再到系统实现,整个项目分析得十分透彻。读者可以自行动手感受整个软件开发的全部阶段。
本书内容
第1章是基础入门章,在这一章中,笔者通过介绍J2EE引出Strtus框架,并以一个示例为读者演示了为什么需要Struts,最后还通过一个入门示例让读者对Struts有一个整体概览,快速入门。
第2章和第3章是对Struts框架的组成介绍,包含了Struts框架的绝大部分知识,在第2章中,笔者介绍了Struts的核心配置描述符、Struts与页面交互、Struts作为控制器、Struts页面报错等方面的内容。
第3章衔接第2章,对Struts框架的组成进一步介绍,主要内容是Struts框架对页面逻辑处理所提供的标签库部分知识。在本章的最后,结合第2、3章的所有知识演示了一个完整示例。
第4章是对Struts框架的配置文件进行深入研讨,并以此引出Struts框架的工作原理,这一章也是对Struts框架知识要点的补充。
第5章是Struts支援国际化的部分,在这一章中,告诉了读者“为什么要国际化”以及编码问题的解决,并通过一个完整示例让读者清晰得看到使用Struts来实现国际化是多么简单。
第6章详细讨论了使用Validator框架来作校验的工作,包括Validator框架的基本功能以及Validator框架与Struts框架的整合运用,还通过一个示例来让读者对此有深入的了解。此外在本章中特别分出一节来介绍“正则表达式”,这是在实际项目中使用十分广泛的一项技术。
第7章是承上启下的一章,介绍了J2EE设计模式的知识,包括在J2EE模型各层中的主要实现模式:表示层体系结构模式、表示层高级体系结构模式、表示层伸缩性模式、业务层模式、数据传递模式、数据库模式等。这一章十分重要,它特别的告诉了读者“为什么要这么做”的理由,对于后续章节的出现作了铺垫。这一章对读者自身设计能力的提高有很大帮助,尤其是对立志于架构师的读者。
第8章介绍了支援复合式网页的Tiles框架,该框架被整合在Struts中一起给出,它实现了J2EE设计模式中的复合视图模式。本章也给出了一个实际示例来展示Tiles框架和Struts框架的整合使用。
第9章介绍了Struts与JSTL标签库的整合使用,作为Sun公司提出的标签库规范,JSTL的出现为Struts在表示层的工作带来了帮助,本章详细的介绍了JSTL,并以Struts的标签库和JSTL的标签库进行了同层次的对比,告诉了读者Struts标签库的优缺点,并怎样以JSTL标签库来改良。本章同样通过一个完整示例来演示了Struts与JSTL标签库的整合。
第10章介绍了Struts与中间件技术的整合,尤其以EJB作为本章的重点,介绍了三种形态的EJB:无状态会话EJB、有状态会话EJB、实体EJB,并以Struts框架与其整合使用向读者展示了一个示例。读者可以从这一章中学到许多中间件技术的知识,这对了解J2EE企业级应用有很大帮助。
第11章介绍了Struts与Hibernate框架的结合,Hibernate框架是活跃于开源社区的持久层技术,它曾一度被视为持久层理念的规范。它的出现为Struts框架在与数据库交互方面提供了支持。本章介绍了持久层的概念和Hibernate框架的组成,最后通过一个示例为读者演示了Struts与Hibernate框架的整合使用。
第12章介绍了Struts与IBatis框架的结合,IBatis框架活跃于开源社区的持久层技术,它的实现手法和Hibernate框架有所区别,但仍然不失为一套经典持久层框架。本章介绍的内容包括IBatis框架的组成、IBatis框架DAO模式的实现、Struts与IBatis的整合,最后通过一个示例为读者作了演示了。
第13章介绍了Struts与J2EE框架的整合,以当今最流行的Spring框架为范例。以Struts框架作为表示层MVC模型的实现,以Spring框架作为业务逻辑层解耦的实现是本章的重点。在本章中还告诉了读者Struts框架在模型层实现时不足的缺点,并以Spring框架的支持作为解决方案。同样的,本章最后给出了一个完整示例。
第14章介绍了Struts与各层框架、技术的整合使用。这一章是对前面所有技术整合章的总结,以一个完整示例展示了Struts和之前所有知识的整合使用。
第15章是一个项目章,通过一个项目为读者演示了完整实现。
本书具有知识全面、实例精彩、指导性强的特点,力求以全面的知识性及丰富的实例来指导读者透彻学习Struts及其整合技术。本书可以作为初级程序员的入门读物,也为中高级程序员带来启示。
本书约定
1.在本书中,对重点说明的问题都使用了加粗的字体,请读者特别注意这样的文字段和说明,因为它可能是整个问题的核心。
2.在本书中,代码部分有些作了标识如“例1.1”,有些则没有标识,这里约定带标识的示例基本上是两种情况:
(1)该示例需要详细说明,是该段技术的核心。
(2)该示例可以独立成一个文件。
3.本书中,对于代码段的说明主要是在注释部分,然后有些个别的复杂代码则会进行分层说明,请读者阅读时不要忽略分层描述的文字。
感谢的话
本书得以出版,需要感谢人民邮电出版社的同仁们,是他们的辛勤工作,才得以保证本书的问世;其次要感谢我的父母和我的女友陶颖颖小姐,是他们对我的鼓励,才让我能在碰到巨大困难时勇
无封面