目前,很多企業(yè)應(yīng)用中都會使用各種框架技術(shù),其中Struts2、Hibernate、Spring是三個(gè)常用的Java EE開源框架,掌握這些主流框架技術(shù)是很多企業(yè)對開發(fā)人員的基本要求。本書將這三大框架“一網(wǎng)打盡”,是一把開啟Java EE開源框架世界的鑰匙。本教材主要分為三個(gè)部分,每部分學(xué)習(xí)一個(gè)框架,而每部分卻不是孤立的,教材使用一個(gè)案例貫穿始終。在每個(gè)部分,都將結(jié)合學(xué)習(xí)到的新技能不斷修改完善案例,直到最終將三大框架都應(yīng)用到了案例當(dāng)中,能夠幫助讀者深入理解三大框架如何應(yīng)用在真實(shí)應(yīng)用中。
本書適合各層次的Java EE開發(fā)人員閱讀。
第一部分 Struts2框架
第1章 Struts2快速入門
1.1 Struts2概述
1.2 Struts2簡單實(shí)例
1.3 實(shí)例的運(yùn)行過程
1.4 Struts2的特點(diǎn)
1.5 教材案例準(zhǔn)備
1.6 本章小結(jié)
第2章 Struts2的控制器
2.1 過濾器
2.2 攔截器
2.3 Action
2.4 本章小結(jié)
第3章 自定義攔截器
3.1 編寫攔截器類 第一部分 Struts2框架
第1章 Struts2快速入門
1.1 Struts2概述
1.2 Struts2簡單實(shí)例
1.3 實(shí)例的運(yùn)行過程
1.4 Struts2的特點(diǎn)
1.5 教材案例準(zhǔn)備
1.6 本章小結(jié)
第2章 Struts2的控制器
2.1 過濾器
2.2 攔截器
2.3 Action
2.4 本章小結(jié)
第3章 自定義攔截器
3.1 編寫攔截器類
3.2 配置使用攔截器
3.3 本章小結(jié)
第4章 Struts2框架的Action
4.1 Action接口
4.2 Action類中的方法
4.3 將多個(gè)Action類“合并”
4.4 Action類的不同調(diào)用方式
4.5 本章小結(jié)
第5章 Action類與Servlet API
5.1 使用ActionContext
5.2 使用ServletActionContext
5.3 IoC方式
5.4 ActionContext使用實(shí)例
5.5 本章小結(jié)
第6章 Action類封裝請求參數(shù)
6.1 Field-Driven方式
6.2 Model-Driven方式
6.3 本章小結(jié)
第7章 Action類的屬性
7.1 Action是多實(shí)例的
7.2 Action屬性封裝請求參數(shù)
7.3 Action屬性傳遞對象
7.4 Action屬性封裝Action配置參數(shù)
7.5 JSP文件中如何獲得Action屬性
7.6 本章小結(jié)
第8章 值棧與OGNL
8.1 值棧
8.2 OGNL
8.3 本章小結(jié)
第9章 國際化
9.1 哪些內(nèi)容需要國際化
9.2 Struts2國際化資源文件
9.3 struts.properties文件
9.4 使用國際化資源文件
9.5 使用多個(gè)國際化資源文件
9.6 本章小結(jié)
第10章 輸入校驗(yàn)
10.1 ActionSupport類
10.2 JSP中顯示校驗(yàn)信息
10.3 input視圖
10.4 手工校驗(yàn)方式
10.5 Action中使用國際化資源文件
10.6 校驗(yàn)器校驗(yàn)
10.7 類型轉(zhuǎn)換
10.8 本章小結(jié)
第11章 Struts2標(biāo)簽
11.1 Struts2標(biāo)簽庫概述
11.2 表單UI標(biāo)簽
11.3 非表單UI標(biāo)簽
11.4 控制標(biāo)簽
11.5 數(shù)據(jù)標(biāo)簽
11.6 本章小結(jié)
第12章 Struts2異常處理
12.1 Model層拋出異常
12.2 Action中直接捕獲異常
12.3 在struts.xml中聲明異常映射
12.4 本章小結(jié)
第13章 Struts2的Ajax支持
13.1 Ajax簡介
13.2 Ajax簡單案例
13.3 struts2中對Ajax的支持
13.4 本章小結(jié)
第14章 配置文件總結(jié)
14.1 web.xml
14.2 struts.xml
14.3 struts.properties
14.4 本章小結(jié)
第二部分 Hibernate框架
第1章 Hibernate快速入門
1.1 Hibernate概述
1.2 常用API
1.3 Eclipse中開發(fā)Hibernate應(yīng)用
1.4 本章小結(jié)
第2章 Hibernate核心知識點(diǎn)
2.1 持久化類
2.2 對象狀態(tài)
2.3 Hibernate屬性配置
2.4 ORM映射基礎(chǔ)
2.5 HQL語言
2.6 本章小結(jié)
第3章 HQL語言詳解
3.1 from子句
3.2 select子句
3.3 聚集函數(shù)
3.4 where子句
3.5 order by子句
3.6 group by子句
3.7 子查詢
3.8 本章小結(jié)
第4章 粒度設(shè)計(jì)
4.1 基于設(shè)計(jì)的粒度設(shè)計(jì)
4.2 基于性能的粒度設(shè)計(jì)
4.3 本章小結(jié)
第5章 關(guān)聯(lián)關(guān)系映射
5.1 關(guān)聯(lián)的方向與數(shù)量
5.2 一對多/多對一
5.2.1 基于主外鍵的一對多/多對一關(guān)聯(lián)
5.2.2 基于連接表的一對多/多對一關(guān)聯(lián)
5.3 一對一關(guān)聯(lián)
5.3.1 基于主鍵的一對一關(guān)聯(lián)
5.3.2 基于唯一外鍵的一對一關(guān)聯(lián)
5.4 多對多關(guān)聯(lián)
5.5 關(guān)聯(lián)映射配置文件
5.6 連接查詢
5.7 本章小結(jié)
第6章 繼承關(guān)系映射
6.1 本章實(shí)例準(zhǔn)備
6.2 TPS(Table Per SubClass)
6.3 TPH(Table Per Class Hierarchy)
6.4 TPC(Table Per Concrete Class)
6.5 多態(tài)查詢
6.6 本章小結(jié)
第7章 Hibernate性能提升
7.1 批量操作
7.2 延遲加載
7.3 batch-size屬性
7.4 本章小結(jié)
第8章 整合Struts/Hibernate
第9章 Hibernate4快速入門
9.1 新特性概述
9.2 常用的Annotation
9.3 本章小結(jié)
第三部分 Spring框架
第1章 Spring概述
1.1 Spring框架的模塊
1.2 使用Eclipse開發(fā)Spring應(yīng)用
1.3 本章小結(jié)
第2章 IoC(控制反轉(zhuǎn))
2.1 什么是IoC
2.2 IoC的使用
2.3 需要使用IoC的對象
2.4 如何實(shí)例化bean
2.5 setter注入和構(gòu)造器注入
2.6 屬性值的配置方式
2.7 集合類型屬性配置
2.8 bean的作用域
2.9 bean的初始化和析構(gòu)
2.10 IoC的技術(shù)基礎(chǔ)
2.10.1 反射技術(shù)
2.10.2 JavaBean自省技術(shù)
2.11 IoC使用實(shí)例(教材案例)
2.12 本章小結(jié)
第3章 AOP(面向切面編程)
3.1 AOP中的術(shù)語
3.2 Spring AOP快速入門
3.3 不同類型的Advice
3.4 使用Advisor
3.5 Spring AOP的技術(shù)基礎(chǔ)
3.5.1 代理模式
3.5.2 動態(tài)代理
3.6 本章小結(jié)
第4章 Spring整合Struts2
4.1 導(dǎo)入必要的類庫
4.2 配置web.xml文件
4.3 修改Struts2框架的Action類
4.4 修改struts.properties文件
4.5 修改struts.xml文件
4.6 修改applicationContext.xml
4.7 本章小結(jié)
第5章 Spring整合JDBC
5.1 為什么要整合JDBC
5.2 Spring JDBC包結(jié)構(gòu)
5.3 JdbcTemplate類
5.4 獲得JdbcTemplate實(shí)例
5.5 JdbcTemplate使用實(shí)例
5.6 本章小結(jié)
第6章 Spring整合Hibernate
6.1 創(chuàng)建SessionFactory
6.2 HibernateTemplate類
6.3 Spring整合Hibernate的實(shí)例
6.4 本章小結(jié)
第7章 Spring中的事務(wù)管理
7.1 平臺事務(wù)管理器接口
7.2 編程式事務(wù)管理
7.3 聲明式事務(wù)管理
7.4 本章小結(jié)
第8章 SSH整合實(shí)例
第9章 Spring3快速入門
9.1 Spring表達(dá)式語言
9.2 Bean配置元數(shù)據(jù)
9.3 本章小結(jié)
附錄A 企業(yè)關(guān)注的技能
第一部分 Struts2框架
第二部分 Hibernate框架
第三部分 Spring框架
序
當(dāng)我翻閱了“中軟國際卓越人才培養(yǎng)系列叢書”后,不禁為這套叢書的立意與創(chuàng)新之處感到欣喜。教育部“卓越工程師教育培養(yǎng)計(jì)劃”有三個(gè)主要特征:一是行業(yè)企業(yè)深度參與培養(yǎng)過程;二是學(xué)校按通用標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn)培養(yǎng)工程人才;三是強(qiáng)化培養(yǎng)學(xué)生的工程能力和創(chuàng)新能力。這套叢書緊緊圍繞“卓越計(jì)劃”的要求展開,以企業(yè)人才需求為前提,同時(shí)又充分考慮了高校教育的特點(diǎn),能讓企業(yè)有效參與高校培養(yǎng)過程,是一套為“卓越計(jì)劃”量身打造的叢書。
叢書的設(shè)計(jì)理念緊扣中軟國際ETC的“5R”理念,即真實(shí)的企業(yè)環(huán)境、真實(shí)的項(xiàng)目經(jīng)理、真實(shí)的項(xiàng)目案例、真實(shí)的工作壓力、真實(shí)的就業(yè)機(jī)會,切實(shí)地將企業(yè)真實(shí)需求展現(xiàn)給讀者。叢書中的知識點(diǎn)力求精簡、準(zhǔn)確、實(shí)用,顯然是編著者經(jīng)過反復(fù)推敲并精心設(shè)計(jì)的成果。叢書中對企業(yè)用之甚少的知識點(diǎn),都進(jìn)行了弱化,用較少篇幅講解,而對于企業(yè)關(guān)注的知識點(diǎn),都使用非常詳盡的內(nèi)容進(jìn)行學(xué)習(xí)。這樣的設(shè)計(jì)對初學(xué)者尤其是在校學(xué)生非常必要,能夠節(jié)省很多學(xué)習(xí)時(shí)間,在有限的時(shí)間內(nèi)學(xué)習(xí)到企業(yè)關(guān)注的技能,而不是花費(fèi)很多精力去鉆研并不實(shí)用的內(nèi)容。
叢書非常強(qiáng)調(diào)“快速入門”這一法寶,能夠?qū)δ抽T技術(shù)“快速入門”永遠(yuǎn)是激發(fā)學(xué)習(xí)興趣的關(guān)鍵。叢書設(shè)計(jì)了很多“快速入門”章節(jié),使用詳盡豐富的圖示以及代碼示例,保證讀者只要根據(jù)叢書的指導(dǎo)進(jìn)行操作,就能夠盡快構(gòu)建出相關(guān)技術(shù)的實(shí)例。
叢書非常注重實(shí)際操作,很多知識點(diǎn)都是從提出問題引出,從而在解決這個(gè)問題的過程中講解相關(guān)的技能。叢書中沒有大篇幅的理論描述,盡力用最通俗、最簡練的語言講解每一個(gè)問題,而不是“故作高深”地使用很多新名詞。
非常值得一提的是,叢書配備了對應(yīng)的PPT講義,并將PPT講義顯示到了相應(yīng)章節(jié),這種形式令人耳目一新。首先能起到提綱挈領(lǐng)的作用,幫助讀者快速了解每個(gè)章節(jié)的主要內(nèi)容,掌握完整的知識體系。另外,這種方式非常適合在高校教學(xué)中使用,能夠完全與教材同步,方便學(xué)生課后復(fù)習(xí)及課前預(yù)習(xí),可以有效提高教學(xué)效果。
這套叢書是中軟國際多年行業(yè)經(jīng)驗(yàn)的積累和沉淀,也是眾多編者智慧與汗水的結(jié)晶,一定能在校企合作的道路上發(fā)揮積極長遠(yuǎn)的作用。
國家示范性軟件學(xué)院建設(shè)工作辦公室副主任
北京交通大學(xué)軟件學(xué)院院長
前言
“框架”一詞是很長一段時(shí)間來,在JavaEE開發(fā)領(lǐng)域炙手可熱的一個(gè)名詞。目前存在很多種框架技術(shù),能夠有效解決JavaEE應(yīng)用開發(fā)中很多通用的問題,其中Struts2、Hibernate以及Spring是目前使用較多的三個(gè)框架,每個(gè)框架專注于解決不同的問題,非常有代表性。本書將這三個(gè)框架“一網(wǎng)打盡”,提取每個(gè)框架中常用的內(nèi)容,旨在幫助讀者在有限時(shí)間內(nèi),能夠掌握這三個(gè)框架在企業(yè)應(yīng)用中最常用的功能,從而勝任Web應(yīng)用開發(fā)。
Struts2框架是一個(gè)MVC框架;Hibernate框架是一個(gè)ORM框架;而Spring框架是一個(gè)綜合性的框架,是一個(gè)輕量級的解決方案。這三個(gè)框架往往各司其職,在應(yīng)用中的不同層面發(fā)揮作用。本書分為三個(gè)部分,每個(gè)部分學(xué)習(xí)一個(gè)框架,而這三個(gè)部分并不是互相獨(dú)立的,而是設(shè)計(jì)了一個(gè)“教材案例”將這三部分聯(lián)系在一起。在教材的第一部分,設(shè)計(jì)了一個(gè)“教材案例”,這個(gè)案例沒有復(fù)雜的業(yè)務(wù)邏輯,主要作用是輔助學(xué)習(xí)相關(guān)知識點(diǎn)。第一部分結(jié)束,使用了Struts2框架以及JDBC技術(shù)實(shí)現(xiàn)了這個(gè)案例。第二部分學(xué)習(xí)Hibernate,使用Hibernate框架替代了JDBC編程,完善了“教材案例”。第三部分學(xué)習(xí)Spring,使用Spring框架整合了Struts2、Hibernate,使得最終的“教材案例”中使用了三個(gè)框架進(jìn)行實(shí)現(xiàn)。這樣的設(shè)計(jì)和編寫思路,能夠幫助讀者真正理解每個(gè)框架的作用,能夠正確選擇合適的框架解決問題。
編者認(rèn)為,“快速入門是提高興趣的捷徑”?蚣苁窍鄬Ρ容^復(fù)雜的技術(shù),如果能幫助讀者快速搭建其開發(fā)運(yùn)行環(huán)境,并順利部署運(yùn)行成功第一個(gè)應(yīng)用,那無疑會有效地提高讀者興趣。有了學(xué)習(xí)興趣,掌握相關(guān)技術(shù)將不再是一件難事。教材中處處圍繞這個(gè)思路展開,任何一個(gè)新的知識點(diǎn),都盡量避免過于冗長的理論鋪墊,而是先從簡單的實(shí)例開始。相關(guān)實(shí)踐步驟都配有詳細(xì)截圖和代碼說明,能夠幫助讀者從“使用”開始,保證較好的學(xué)習(xí)效果。
本書配套的PPT也顯示在對應(yīng)的章節(jié),這樣的設(shè)計(jì)能夠幫助讀者快速了解每個(gè)章節(jié)的主要內(nèi)容,起到提綱挈領(lǐng)的作用,也能夠幫助讀者建立一個(gè)完整的知識結(jié)構(gòu),而不僅僅是掌握了一些凌亂的知識點(diǎn)。另外,這樣的設(shè)計(jì)也使得本書非常適合作為高校中JavaEE主流框架相關(guān)課程的教材,能夠方便教師授課,保證授課思路及內(nèi)容與教材完全匹配、完全同步,從而達(dá)到較好的教學(xué)效果。另外,附錄部分提供了企業(yè)關(guān)注的技能點(diǎn),并從企業(yè)的角度給予了解析,能夠幫助讀者進(jìn)一步整理書中內(nèi)容,掌握企業(yè)需要的技能。
本書所有配套講義、源代碼及視頻均可到華信教育資源網(wǎng)(www.hxedu.com.cn)免費(fèi)下載。
“中軟國際卓越人才培養(yǎng)系列叢書”由中軟國際唐振明擔(dān)任叢書主編。本書由王曉華、修雅慧、徐志立、李沁蓉、萬安琪、高飛、程濤等編寫,由王曉華統(tǒng)編和定稿。
在編寫本書的過程中,得到了很多領(lǐng)導(dǎo)、同事以及朋友的幫助。感謝中軟國際的所有領(lǐng)導(dǎo)以及CTO辦公室的所有同事,是他們的幫助、鼓勵(lì)以及支持才有這本書的問世。感謝電子工業(yè)出版社的編輯們,如果沒有他們的辛苦工作以及真誠建議,這本書的出版將不會這么順利。
由于編者水平有限,也由于時(shí)間倉促,書中一定存在一些不盡如人意的地方,甚至?xí)幸恍╁e(cuò)誤。如果您發(fā)現(xiàn)了任何內(nèi)容方面的問題,煩請一定通知我們(wangxh@chinasofti.com),我們將爭取盡快勘誤。
編者