SSH 開發實戰教程 (Spring + Struts 2 + Hibernate)
內容描述
本書詳細講解了當前JavaEE開發流行的SSH框架,涵蓋Hibernate、Struts2、Spring三大塊知識,以及它們之間的整合和實戰項目案例。
全書共18章,第1-4章是Hibernate部分,第5-11章為struts2部分,第12-16章為Spring框架部分,第17章為SSH三大框架整合,介紹了整合原理,整合流程,第18章為實戰項目。
目錄大綱
第1章Hibernate入門1
1.1 SSH概述1
1.2 Hibernate簡介1
1.3第一個Hibernate項目3
1.3.1創建項目並導入JAR包4
1.3.2創建數據庫及表4
1.3.3創建持久化類4
1.3.4創建映射文件5
1.3.5創建核心配置文件6
1.3.6創建測試類進行增刪改查操作6
1.4映射文件詳解10
1.5配置文件詳解12
1.5.1基本配置12
1.5.2配置c3p0連接池12
1.6 Hibernate持久化對象的狀態13
1.6.1持久化對象的狀態13
1.6.2持久化對象狀態轉換13
1.7 Hibernate的核心接口簡介15
1.7.1 Configuration接口15
1.7.2 SessionFactory接口15
1.7.3 Session接口16
1.7 .4 Transaction接口18
上機練習18
思考題19
第2章HQL與Criteria查詢20
2.1 HQL查詢概述20
2.1.1 HQL基本語法20
2.1.2 HQL語句的執行21
2.1.3 HQL查詢條件中使用參數22
2.1.4 HQL給參數賦值的其他方法24
2.1.5 HQL模糊查詢與動態查詢26
2.1.6 HQL投影查詢27
2.1.7 HQL分頁查詢28
2.1.8 HQL聚合函數29
2.1.9 HQL分組查詢30
2.1.10使用別名30
2.2 Criteria查詢31
2.2.1 Criteria簡單查詢31
2.2.2 Criteria多條件查詢32
2.2.3 Criteria分頁查詢33
上機練習34
思考題34
第3章Hibernate關聯映射35
3.1實體對象的三種關聯關係35
3.1.1單向關聯與雙向關聯35
3.1.2一對多關聯映射35
3.1.3多對多關聯關係映射40
3.2關聯關係中的反轉與級聯44
3.2.1反轉操作44
3.2.2級聯操作45
3.3延遲加載50
3.3.1類級別的查詢策略51
3.3.2一對多及多對多的查詢策略53
3.3.3多對一關聯的查詢策略55
上機練習56
思考題56
第4章HQL連接查詢與緩存57
4.1 HQL連接查詢57
4.1.1內連接57
4.1.2隱式內連接59
4.1.3外連接60
4.2 HQL子查詢62
4.3 HQL操作集合的函數或屬性63
4.4一級緩存65
4.4.1一級緩存的原理65
4.4.2 Hibernate快照67
4.4.3一級緩存的常用操作68
4.5二級緩存70
4.5.1二級緩存的原理71
4.5.2二級緩存的配置和使用71
上機練習73
思考題73
第5章Struts 2入門74
5.1 Struts2簡介74
5.1.1 MVC設計模式74
5.1.2 Struts2的優點75
5.1.3 Struts2的開發環境搭建75
5.2第一個Struts2項目77
5.3 Struts2實現登錄80
5.4 Struts2的執行流程82
上機練習83
思考題83
第6章Struts2配置文件84
6.1配置文件簡介84
6.1.1認識struts.xml文件結構84
6.1.2配置常量85
6.1.3 include的配置86
6.2配置Action 86
6.2.1創建Action類86
6.2.2配置Action類87
6.2.3 Action訪問Servlet API對象88
6.2.4動態方法調用94
6.2.5使用通配符簡化配置97
6.2.6配置默認的Action 99
6.4 Action獲取請求參數99
6.4.1屬性驅動99
6.4.2模型驅動103
6.5 Result的配置104
6.5.1 Result元素結構104
6.5.2常用結果類型104
6.5.3動態結果105
6.5.4全局結果107
6.6各種配置項的順序107
上機練習108
思考題108
第7章Struts2攔截器109
7.1攔截器原理109
7.1 .1攔截器基本知識109
7.1.2攔截器的工作方式109
7.2攔截器的配置110
7.2.1配置攔截器110
7.2.2攔截器的返回值112
7.3攔截器的種類112
7.4自定義攔截器112
7.4.1自定義攔截器的實現112
7.4.2權限攔截器113
上機練習116
思考題116
第8章Struts2標籤庫117
8.1 Struts2標籤庫簡介117
8.1 .1 Struts2標籤庫的分類117
8.1.2 Struts2標籤庫的導入117
8.2 Struts2控制標籤118
8.2.1標籤118
8.2.2標籤118
8.3 Struts2數據標籤121
8.3.1標籤121
8.3.2日期標籤121
8.4 Struts2的主題122
8.5 Struts2的表單標籤122
8.5.1和標籤123
8.5.2和標籤123
8.5.3標籤123
8.5.4標籤123
8.5.5標籤125
8.5.6標籤126
8.5.7標籤127
8.5.8標籤127
8.5.9標籤128
8.5.10標籤129
8.5.11標籤129
8.5.12標籤數據來自後台130
8.6 Struts2的非表單標籤的132
上機練習133
思考題133
第9章OGNL表達式與值棧134
9.1 OGNL表達式134
9.1.1 OGNL的概念134
9.1.2使用OGNL訪問對象方法138
9.1.3 OGNL訪問集合對象140
9.1.4訪問ActionContext中的數據142
9.2值棧143
9.2.1值棧的概念143
9.2.2值棧的應用143
上機練習143
思考題143
第10章Struts2關鍵技術144
10.1數據類型轉換144
10.1.1默認類型轉換144
10.1.2自定義類型轉換器146
10.1.3多種日期格式的轉換149
10.1.4保存原來的日期格式150
10.1.5類型轉換異常提示信息改為中文151
10.2數據驗證152
10.2.1使用validate方法驗證Action中的所有方法152
10.2.2對Action中指定方法執行前的驗證154
10.2.3 Struts2驗證框架157
10.3文件上傳162
10.3.1文件上傳概述162
10.3.2單個文件上傳實例163
10.3.3限製文件的大小和類型166
10.3.4多文件上傳168
10.4文件下載170
10.4.1文件下載的概述170
10.4. 2文件下載案例171
10.4.3文件名為中文的下載172
上機練習173
思考題173
第11章Struts2與Ajax 174
11.1使用Stream類型的結果映射174
11.2使用JSON類型的結果映射176
11.3 Ajax綜合案例179
上機練習182
第12章Spring入門183
12.1 Spring概述183
12.1.1 Spring體系結構183
12.1.2 Spring的開發環境184
12.2第一個Spring程序185
上機練習188
思考題188
第13章Spring控制反轉189
13.1依賴注入189
13.2 Spring配置文件中Bean的配置192
13.3 Bean的作用域192
13.4基於xml的依賴注入194
13.4.1設值注入194
13.4.2構造注入196
13.4.3使用p命名空間實現屬性值注入197
13.4.4注入各種數據類型的屬性值197
13.4.5內部Bean注入202
13.4.5抽象Bean注入203
13.5自動裝配205
13.5.1 byName方式自動注入205
13.5.2 byType方式自動注入206
13.6 Spring配置文件的拆分207
13.6.1拆分為若干個平等關係的配置文件208
13.6.2拆分為父子關係的若干個配置文件208
13.7基於註解的依賴注入208
13.7.1使用註解@Component定義Bean 209
13.7.2 Bean的作用域@Scope 210
13.7.3基本類型屬性注入@Value 210
13.7.4按類型注入域屬性@Autowired 211
13.7.5按名稱注入域屬性@Autowired與@Qualifier 212
13.7.6域屬性註解@Resource 213
13.7.7 xml配置方式與註解方式的比較214
上機練習215
思考題215
第14章Spring面向切面編程216
14.1傳統的編程模式弊端216
14.2 AOP初試身手219
14.3 AspectJ實現AOP 222
14.3.1異常拋出增強223
14.3.2環繞增強224
14.4使用註解實現通知226
14.5使用xml配置定義切面227
14.5.1切面不獲取切點參數228
14.5.2切面獲取切點參數與返回值229
上機練習232
思考題232
第15章Spring操作數據庫233
15.1使用JdbcTemplate模板操作數據庫233
15.2數據源的配置239
15.2.1 DBCP數據源BasicDataSource的使用239
15.2.2 C3P0數據源ComboPooledDataSource的使用240
15.2.3使用屬性文件讀取數據庫連接信息241
上機練習243
思考題243
第16章Spring事務管理244
16.1 Spring事務管理接口244
16.1.1事務管理器接口PlatformTransactionManager 244
16.1.2事務定義接口TransactionDefinition 244
16.2 Spring事務管理的實現245
16.2.1沒有事務管理的情況分析245
16.2.2利用xml配置實現事務管理248
16.2.3利用@Transactional註解實現事務管理251
16.2.4在業務層實現事務管理253
上機練習255
思考題255
第17章SSH三大框架整合256
17.1 SSH框架整合原理256
17.2 Spring整合Hibernate 256
17.3 Spring整合Struts2 265
上機練習269
思考題269
第18章SSH項目實戰270
18.1項目需求分析270
18.2數據庫設計270
18.3搭建SSH框架272
18.4首頁與用戶登錄模塊275
18.5商品查詢與分頁模塊288
18.6商品詳情模塊298
18.7購物車模塊304
18.8訂單處理與模擬結算模塊315
上機練習325
思考題325
作者介紹
華南農業大學數學與信息學院計算機系計算機網絡教研室高級工程師。
主講《Java程序設計》《信息安全數學基礎》等本科及研究生課程。
主持、參與十餘項國家、省部級項目。