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