本書使用新穎的進階式教學模式,讓學生拾階而上,攀登知識的高峰。同時采用項目驅動法、任務教學法和實例教學法完成對Java EE框架技術的講述,讓學生提前感知軟件開發人員的工作。
全書共分12個單元,每個單元包含若干個任務。兩個大項目貫穿全書,項目1是網上購物系統,項目2是圖書管理系統。第1~11單元按知識點展開項目1中的相應部分。項目2的相應部分在各單元后面的習題和實訓中講述。第12單元是網上購物系統的開發,詳細闡述使用Java EE四層模型開發項目1的全過程。
本書圖文并茂,深入淺出,語言流暢,富含大量實例和案例,各個知識點的展開符合認識規律,既可作為一般高等院校Java EE課程的教材,又可供軟件開發人員參考。
《Java EE框架技術進階式教程(第2版)》采用新穎的進階式教學模式,讓學生拾階而上,攀登知識的高峰。同時采用項目驅動法、任務教學法和實例教學法完成對Java EE框架技術的講述,讓學生提前感知軟件開發人員的工作。
共12個單元,每個單元包含若干個任務。全書貫穿兩個大項目,項目1是網上購物系統,項目2是圖書管理系統。第1~11單元按知識點展開項目1中的相應部分。項目2的相應部分在各單元后面的習題和實訓中講述。第12單元是網上購物系統的開發,詳細闡述了使用Java EE四層模型開發項目1的全過程。
圖文并茂,深入淺出,語言流暢,含大量實例和案例,知識點的展開符合認識規律。既可作為一般高等院校Java類課程的教材,也可供軟件開發人員參考。
前言ForewordJava EE是企業應用的一種軟件架構,該技術在逐步發展并日趨成熟,已成為當前Web開發以及大型軟件開發的首選方案,受到廣大Java愛好者和軟件公司的追捧。因此,越來越多的人開始關注并學習Java EE,希望使其成為職場生涯的必勝法寶。本書以網上購物系統和圖書管理系統案例為教學背景,采用新型的進階式教學模式,介紹Java EE框架技術和應用系統開發技術,將項目驅動法、任務式教學法和實例教學法融入課堂,讓學生提前感知軟件開發人員的工作。
本書以框架為主線,選擇最先進的版本,采用通俗的語言,循序漸進、由淺入深地講述MySQL數據庫技術、Struts 2框架、Hibernate框架、Spring框架,并詳細介紹Tomcat、MyEclipse的使用方法。
本書最大的特點就是采用了進階式教學模式。
在宏觀上,作者根據Java EE的技術規范和應用經驗,通過對Java EE知識點的分析,將教學內容分為基礎篇、框架篇和系統開發篇,分階段、分層次地實現了各單元間知識的進階。在微觀上,全書共分為12個單元,每個單元都包含一個引入性案例,即每個單元的主題,首先使用已有知識實現引入性案例;接著對該實現過程進行分析,提出有待解決的問題;然后學習新知識點,解決提出的問題;最后使用新學的知識重新實現引入性案例,也就是完成進階式案例,達到知識的進階。
這樣的學習過程,不僅可以讓學生知道學了什么,還能讓學生明白為什么學、學了之后怎么用。
下面詳述本書的其他特點,歡迎讀者批評指正、共同探討、提出寶貴意見和建議。
(1) 本書完全按照認識的規律逐步展開,由淺入深講述每一個知識點。
(2) 全書分為12個單元,每個單元又包含若干個任務。將各個知識點滲透到每個單元的任務中,概念清晰、明確,圖文并茂,易于理解。◆Java EE框架技術進階式教程(第2版)前言(3) 以項目驅動法進行教學,逐步拓展課程內容。兩個大項目貫穿全書,項目1是網上購物系統,項目2是圖書管理系統。各單元按知識點展開項目1的相應部分,進行針對性的技能訓練,同時加強老師的指導作用。項目2的相應部分在各單元后面的習題和實訓中講述,供學生練習,培養學生的探索和創新能力。
(4) 注重理論的可視化,可讀性強,便于學生自學。本書中的任何一個案例都由背景介紹、功能演示、實現步驟、代碼解釋四部分組成。同時,在改進引入性案例的過程中,學生可以對已經學過的內容舉一反三,將知識點貫穿于整個教學活動過程中,能夠溫故而知新。
(5) 通過大量的案例來引導、剖析、闡述各個知識點,每個案例都是最終項目的一部分。
建議用80個學時完成第1~11單元的課程,講解Java EE框架技術的相關知識點,實現網上購物系統的各個功能。第12單元為系統開發篇,建議放在實訓環節中講述,該單元采用Java EE四層開發模型,使用軟件工程的設計理念,以網上購物系統為例講述項目開發的過程,同時該單元也是前11個單元的綜合。
本書既可作為一般高等院校Java EE相關課程的教材,又可供軟件開發人員參考。
為了方便教學和讀者上機操作,作者提供本書配套的課程標準、教學大綱、教案、教學課件、系統的所有源代碼文件和系統所需的JAR包。讀者可以到清華大學出版社網站(http://www.tup.com.cn)查詢和下載,也可以將有關建議和要求直接發送到作者信箱(flingmonica@163.com)。
本書的第1~4單元由許常青老師編寫,第5~6單元由劉麗老師編寫,第7~12單元由趙彥老師編寫。
在本書的編寫過程中,承蒙江蘇信息職業技術學院物聯網工程學院顧曉燕院長的幫助。感謝我的同事許常青老師、劉麗老師、季云峰老師對該課程的幫助和支持。也由衷地感謝清華大學出版社的關心和幫助。我的每一分收獲都滲透了大家的關懷。
最后,我要感謝我的家人對我的理解和支持。感謝第1版的真誠讀者,以及所有朋友對我的幫助,是您的支持才有了今天的第2版。
趙彥2018年4月
第一篇基礎篇
第1單元Java EE概述31.1任務1Java EE發展歷史3
1.2任務2Java EE簡介4
1.2.1Java EE的概念4
1.2.2Java EE提出的背景4
1.2.3Java EE的優勢4
1.2.4Java EE的四層模型5
1.3任務3Java EE的13種核心技術6
單元總結8
習題8
實訓1Java EE概況8
第2單元Java EE運行及開發環境的搭建9
2.1任務1JDK的下載、安裝及配置9
2.1.1JDK的下載和安裝9
2.1.2JDK的環境變量的配置9
2.2任務2Eclipse的下載與安裝10
2.3任務3MyEclipse的下載與安裝11
2.3.1MyEclipse插件的下載11
2.3.2MyEclipse插件的安裝11
2.3.3啟動MyEclipse11
2.4任務4Tomcat服務器的下載、安裝及配置12
2.4.1Tomcat的下載和安裝13
2.4.2在MyEclipse中配置Tomcat13
2.5任務5進階式案例Hello World程序15
單元總結18習題18
實訓2搭建Java EE運行及開發環境19
目錄◆Java EE框架技術進階式教程(第2版)第3單元數據庫訪問技術20
3.1任務1引入性案例20
3.1.1案例分析20
3.1.2解決方案21
3.1.3具體實現21
3.2任務2MySQL數據庫21
3.2.1MySQL安裝與配置21
3.2.2MySQL的使用23
3.3任務3JDBC26
3.3.1JDBC概述26
3.3.2JDBC驅動程序26
3.3.3使用JDBC連接數據庫27
3.3.4常用數據庫的JDBC連接代碼28
3.3.5JDBC發送SQL語句29
3.3.6獲得SQL語句的執行結果30
3.4任務4進階式案例添加用戶功能的具體實現31
3.4.1功能概述32
3.4.2運行效果32
3.4.3具體實現32
單元總結38
習題39
實訓3實現圖書管理系統中添加圖書信息的功能39
第二篇框架篇
第4單元Struts 2框架技術入門434.1任務1引入性案例43
4.1.1解決方案44
4.1.2具體實現44
4.1.3分析不足之處50
4.2任務2Struts 2簡介51
4.2.1Struts 2的發展歷史51
4.2.2Struts 2與WebWork 2、Struts 1的關系51
4.3任務3Struts 2的體系結構53
4.3.1Struts 2的體系結構53
4.3.2Struts 2的工作機制53
4.4任務4Struts 2的配置54
4.4.1web.xml的配置55
4.4.2struts.properties的配置55
4.4.3struts.xml的配置56
4.4.4package的配置56
4.4.5命名空間的配置56
4.5任務5進階式案例第一個Struts 2程序57
4.5.1解決方案57
4.5.2具體實現57
單元總結60
習題60
實訓4使用Struts 2框架實現圖書管理系統的用戶登錄模塊61
第5單元Struts 2進階與提高62
5.1任務1引入性案例62
5.1.1案例分析62
5.1.2設計步驟64
5.1.3具體實現64
5.1.4Struts 2工作流程67
5.1.5分析不足之處68
5.2任務2Struts 2標簽庫69
5.2.1Struts 2標簽分類69
5.2.2表單標簽70
5.2.3非表單標簽73
5.2.4控制標簽73
5.2.5數據標簽74
5.3任務3Struts 2國際化74
5.3.1Struts 2中的全局資源文件74
5.3.2在Struts 2中訪問國際化信息75
5.3.3對引入性案例實現國際化75
5.4任務4數據類型轉換器76
5.4.1傳統的類型轉換76
5.4.2Struts 2內建的類型轉換器77
5.4.3其他轉換方式78
5.5任務5數據校驗82
5.5.1使用validate方法進行數據校驗82
5.5.2使用Validation框架進行數據校驗84
5.6任務6進階式案例用戶注冊模塊86
5.6.1設計步驟87
5.6.2運行效果88
單元總結89
習題89
實訓5圖書管理系統的用戶登錄模塊的優化89
第6單元Hibernate框架技術入門91
6.1任務1引入性案例91
6.1.1案例分析91
6.1.2設計步驟92
6.1.3具體實現92
6.1.4分析不足之處97
6.2任務2ORM簡介97
6.2.1為什么要使用ORM98
6.2.2具有代表性的ORM框架98
6.3任務3Hibernate簡介99
6.3.1Hibernate的發展歷史99
6.3.2Hibernate與EJB的關系99
6.3.3Hibernate框架結構100
6.3.4Hibernate的工作原理100
6.4任務4Hibernate的安裝與配置101
6.4.1Hibernate的安裝101
6.4.2Hibernate配置文件101
6.5任務5Hibernate的核心類103
6.5.1Configuration與SessionFactory103
6.5.2Session類104
6.6任務6對象關聯關系104
6.7任務7Hibernate映射104
6.7.1基本數據類型映射105
6.7.2持久化類和數據表映射106
6.8任務8進階式案例使用Hibernate框架技術添加商品信息107
6.8.1解決方案107
6.8.2具體實現107
6.8.3運行效果110
單元總結111
習題111
實訓6使用Hibernate框架實現圖書管理系統中添加圖書信息的功能111
第7單元Hibernate查詢113
7.1任務1引入性案例113
7.1.1案例分析113
7.1.2設計步驟114
7.1.3具體實現114
7.1.4分析不足之處117
7.2任務2Hibernate的關聯查詢117
7.2.1一對一關聯關系118
7.2.2一對多、多對一關聯關系119
7.2.3多對多關聯關系121
7.3任務3Hibernate的數據檢索策略122
7.3.1立即檢索122
7.3.2延遲檢索123
7.3.3預先檢索123
7.3.4批量檢索124
7.4任務4Hibernate的數據查詢策略124
7.4.1Hibernate查詢方式簡介125
7.4.2標準API方式125
7.4.3HQL方式126
7.4.4原生SQL方式127
7.5任務5Hibernate過濾128
7.5.1Session過濾128
7.5.2Filter過濾129
7.6任務6進階式案例使用Hibernate框架技術實現多表連接查詢129
7.6.1解決方案130
7.6.2具體實現130
7.6.3運行效果134
7.6.4案例解析134
單元總結136
習題137
實訓7使用Hibernate框架實現圖書管理系統中查詢圖書詳細信息的
功能137
第8單元Hibernate高級特性139
8.1任務1引入性案例139
8.1.1案例分析140
8.1.2設計步驟140
8.1.3具體實現141
8.1.4分析不足之處148
8.2任務2Hibernate的事務管理149
8.2.1事務的基本概念149
8.2.2基于JDBC的事務管理150
8.2.3基于JTA的事務管理151
8.3任務3Hibernate的并發控制152
8.3.1并發的基本概念152
8.3.2悲觀鎖153
8.3.3樂觀鎖154
8.4任務4Hibernate的緩存管理155
8.4.1緩存原理156
8.4.2一級緩存156
8.4.3二級緩存157
8.4.4查詢緩存158
8.5任務5進階式案例使用Hibernate的高級特性優化引入性案例161
8.5.1解決方案162
8.5.2具體實現162
8.5.3運行效果166
8.5.4案例解析166
單元總結167
習題167
實訓8使用Hibernate框架實現圖書管理系統中借閱、歸還圖書的功能168
第9單元Spring框架技術入門170
9.1任務1引入性案例170
9.1.1案例分析170
9.1.2設計步驟171
9.1.3具體實現171
9.1.4分析不足之處172
9.2任務2Spring簡介172
9.2.1Spring的發展歷史172
9.2.2Spring的主要特性173
9.2.3Spring框架的組成173
9.3任務3Spring的下載和配置174
9.3.1下載Spring框架175
9.3.2Spring發布包和軟件包175
9.3.3Spring的配置176
9.3.4Bean的配置176
9.4任務4理解Spring的核心模式IoC178
9.4.1反轉控制178
9.4.2依賴注入的3種方式180
9.5任務5BeanFactory與ApplicationContext181
9.5.1BeanFactory182
9.5.2ApplicationContext183
9.6任務6進階式案例使用Spring框架實現引入性案例183
9.6.1解決方案183
9.6.2具體實現184
9.6.3運行效果186
單元總結186
習題187
實訓9使用Spring框架實現本單元實例1中的情景187
第10單元Spring框架中的AOP技術188
10.1任務1引入性案例188
10.1.1案例分析188
10.1.2設計步驟189
10.1.3具體實現189
10.1.4分析不足之處190
10.2任務2AOP概述190
10.2.1OOP與AOP的關系191
10.2.2AOP的相關概念192
10.2.3Java動態代理與AOP192
10.3任務3Spring AOP中的通知195
10.3.1Spring AOP支持的通知類型195
10.3.2BeforeAdvice196
10.3.3AfterReturningAdvice198
10.3.4MethodInterceptor199
10.3.5ThrowAdvice200
10.4任務4Spring AOP的切入點202
10.4.1靜態切入點202
10.4.2動態切入點203
10.4.3靜態切入點測試實例203
10.5任務5AOP的代理模式205
10.5.1理解代理205
10.5.2ProxyFactory206
10.5.3ProxyFactoryBean207
10.5.4AOP代理模式測試實例207
10.6任務6進階式案例使用Spring框架中的AOP技術實現引入性
案例211
10.6.1解決方案211
10.6.2具體實現211
10.6.3運行效果213
單元總結214
習題214
實訓10使用Spring AOP技術模擬圖書管理系統中到期提醒信息的輸出215
第11單元Spring、Struts、Hibernate框架整合技術216
11.1任務1引入性案例216
11.2任務2Spring與Struts的整合217
11.2.1Spring與Struts 1的整合方式217
11.2.2Spring與Struts 2的整合技術218
11.3任務3Spring與Java EE持久化數據訪問技術220
11.3.1獲取DataSource的方法220
11.3.2Spring對JDBC的支持222
11.4任務4Spring與Hibernate的整合224
11.4.1Spring對Hibernate的支持224
11.4.2Spring對SessionFactory的管理225
11.4.3Hibernate的DAO實現226
11.4.4使用HibernateTemplate226
11.4.5管理Hibernate事務227
11.5任務5構建SSH整合框架體系229
11.6任務6進階式案例使用SSH框架體系實現購物車模塊的開發241
11.6.1解決方案241
11.6.2具體實現242
11.6.3運行效果251
單元總結251
習題252
實訓11使用SSH框架體系實現圖書管理系統中圖書添加和查閱模塊252
第三篇系統開發篇
第12單元網上購物系統25512.1步驟1網上購物系統需求分析255
12.2步驟2網上購物系統數據庫設計256
12.3步驟3網上購物系統框架搭建258
12.3.1工程目錄結構解析258
12.3.2創建ShoppingSystem工程259
12.4步驟4網上購物系統的代碼實現259
12.4.1數據持久層的實現259
12.4.2數據庫連接的實現260
12.4.3用戶管理模塊的實現261
12.4.4商品瀏覽模塊的實現266
12.4.5購物車管理模塊的實現271
12.4.6訂單管理模塊的實現278
12.4.7主界面的實現281
單元總結284
習題284
實訓12圖書管理系統285