內容簡介
本書以較小的篇幅介紹了Struts 2、Hibernate 3和Spring2三個框架相關的基本知識和相關技術,目的是減少初學者的學習難度,使讀者能用最少的時間掌握三個框架的基本使用方法。Struts 2部分主要內容是Struts標籤庫、Action和Struts 2的配置檔案。Hibernate部分主要講解ORM的概念、HQL語言及Hibernate的基本套用。Spring2部分主要講解IOC和AOP的實現及Spring2的基本套用。
本書可作為計算機相關專業本科生的教材,還可作為有一定的JSP和Web開發基礎的計算機編程愛好者的參考書。
圖書目錄
第1章3個框架的概述1
1.1軟體開發中需要解決的問題1
1.2Struts 2、Hibernate和Spring框架2
第2章Struts 2的基礎知識5
2.1MVC模式5
2.2Struts 2的基本工作原理6
2.2.1Struts 2的框架結構6
2.2.2Struts 2的控制流程7
2.3Struts 2的工作環境8
2.3.1搭建Struts開發環境8
2.3.2創建一個簡單的Struts 2程式8
2.3.3Struts 2的配置13
2.4Action的創建和配置19
2.4.1Action的創建19
2.4.2Action的多方法調用22
2.4.3Result類型24
2.4.4在Action中調用Web對象26
實驗一創建一個簡單的Struts 2應用程式27
實驗二創建一個Action多方法調用的Struts 2應用程式27
第3章Struts 2標籤庫及使用29
3.1Struts 2標籤庫概述29
3.2OGNL表達式語言30
3.2.1OGNL基礎知識30
3.2.2OGNL的集合操作33
3.3Struts 2標籤37JavaEE輕量級框架Struts2+Spring+Hibernate整合開發3.3.1表單標籤37
3.3.2控制標籤51
3.3.3其他常用標籤59
3.4標籤綜合套用66
3.4.1綜合實例166
3.4.2綜合實例267
實驗三Struts 2標籤的套用70
第4章Struts 2的高級特性75
4.1攔截器75
4.1.1Struts 2中攔截器的工作過程75
4.1.2在Struts 2中內置攔截器76
4.1.3配置攔截器77
4.1.4攔截器的使用78
4.1.5自定義攔截器78
4.2Struts 2的國際化82
4.2.1在Struts 2中載入全局資源檔案82
4.2.2訪問國際化訊息82
4.3Struts 2校驗框架86
4.3.1編寫校驗規則檔案86
4.3.2Struts 2的內建校驗規則89
4.4Struts 2開發案例94
實驗四Struts 2校驗框架的套用97
第5章Hibernate的基礎知識99
5.1ORM基本概念99
5.1.1ORM框架簡介99
5.1.2ORM中的映射關係100
5.2Hibernate的體系結構100
5.3Hibernate API簡介102
5.4Hibernate的配置檔案103
5.5Hibernate中的持久化類105
5.6Hibernate的對象——關係映射檔案107
5.7通過Hibernate API操縱資料庫 109
5.8在MyEclipse中使用Hibernate114
5.9Session的快取119
實驗五完成表的查詢和刪除操作121
第6章Hibernate的關聯映射123
6.1一對多關聯123
6.1.1單向多對一關聯123
6.1.2雙向一對多關聯126
6.2多對多關聯130
實驗六完成一對多關聯操作135
第7章Hibernate查詢137
7.1Hibernate檢索策略137
7.1.1Hibernate檢索策略簡介137
7.1.2get()方法與load()方法的區別141
7.2Hibernate檢索方式142
7.3HQL查詢 142
7.3.1from子句144
7.3.2select子句144
7.3.3where子句145
7.3.4聚集函式145
7.4Criteria查詢146
實驗七完成表的查詢操作147
第8章Struts 2與Hibernate 3的集成開發案例——網上書店149
8.1資料庫的設計149
8.2創建項目工程151
8.3編寫資料庫操作類151
8.4編寫JSP檔案154
8.5編寫Action類156
8.6校驗框架160
8.7Struts配置檔案162
實驗八查詢某一用戶的所有訂單163
第9章Spring的基礎知識165
9.1Spring簡介165
9.2Spring 框架的系統架構167
9.3Spring 框架的主要技術特性169
9.4Spring開發環境 170
9.5Spring 程式示例174
實驗九Spring的IoC實現案例176
第10章Spring的基本用法181
10.1控制反轉的實現181
10.1.1什麼是IoC181
10.1.2IoC配置檔案示例183
10.1.3Spring 框架中的依賴注入技術184
10.1.4依賴注入的3種形式185
10.2BeanFactory和ApplicationContext的工作原理188
10.2.1BeanFactory介紹188
10.2.2ApplicationContext介紹190
10.2.3容器中Bean的生命周期190
10.2.4ApplicationContext中Bean的生命周期193
10.3面向切面編程198
10.3.1面向切面編程的概念199
10.3.2面向切面編程的實現200
10.4Spring與Struts 2的整合205
10.5Spring與Hibernate的整合207
10.6Struts 2+Hibernate+Spring的整合211
實驗十SSH開發案例223
2.2算法的空間複雜性分析23
2.3最優算法23
2.3.1問題的計算複雜性下界24
2.3.2平凡下界25
2.3.3判定樹模型25
閱讀材料——算法的實驗分析26
習題228
第二部分基本的算法設計技術
第3章蠻力法33
3.1概述33
3.1.1蠻力法的設計思想33
3.1.2一個簡單的例子——百元買百雞問題34
3.2查找問題中的蠻力法36
3.2.1順序查找36
3.2.2串匹配問題37
3.3排序問題中的蠻力法42
3.3.1選擇排序42
3.3.2起泡排序43
3.4組合問題中的蠻力法44
3.4.10/1背包問題44
3.4.2任務分配問題45
3.5圖問題中的蠻力法46
3.5.1哈密頓迴路問題46
3.5.2TSP問題47
3.6幾何問題中的蠻力法48
3.6.1最近對問題48
3.6.2凸包問題49
閱讀材料——KMP算法中next值的計算51
習題353第4章分治法55
4.1概述55
4.1.1分治法的設計思想55
4.1.2一個簡單的例子——數字旋轉方陣57
4.2排序問題中的分治法59
4.2.1歸併排序59
4.2.2快速排序61
4.3組合問題中的分治法64
4.3.1最大子段和問題64
4.3.2棋盤覆蓋問題65
4.4幾何問題中的分治法67
4.4.1最近對問題68
4.4.2凸包問題71
閱讀材料——遞歸函式的執行過程72
習題474第5章減治法77
5.1概述77
5.1.1減治法的設計思想77
5.1.2一個簡單的例子——兩個序列的中位數78
5.2查找問題中的減治法80
5.2.1折半查找80
5.2.2二叉查找樹82
5.2.3選擇問題84
5.3排序問題中的減治法86
5.3.1插入排序86
5.3.2堆排序88
5.4組合問題中的減治法90
5.4.1淘汰賽冠軍問題90
5.4.2假幣問題91
閱讀材料——假幣問題的複雜版本93
習題594第6章動態規劃法97
6.1概述97
6.1.1多階段決策過程98
6.1.2動態規劃法的設計思想99
6.1.3一個簡單的例子——數塔問題100
6.2圖問題中的動態規劃法102
6.2.1多段圖的最短路徑問題102
6.2.2多源點最短路徑問題106
6.2.3TSP問題107
6.3組合問題中的動態規劃法109
6.3.1最長遞增子序列問題109
6.3.2最長公共子序列問題111
6.3.30/1背包問題114
6.4查找問題中的動態規劃法116
6.4.1最優二叉查找樹116
6.4.2近似串匹配問題119
閱讀材料——人工神經網路121
習題6124第7章貪心法127
7.1概述127
7.1.1貪心法的設計思想127
7.1.2一個簡單的例子——埃及分數128
7.2圖問題中的貪心法129
7.2.1TSP問題129
7.2.2圖著色問題132
7.2.3最小生成樹問題134
7.3組合問題中的貪心法138
7.3.1背包問題138
7.3.2活動安排問題140
7.3.3多機調度問題142
閱讀材料——貪心法的正確性證明144
習題7146
第三部分基於搜尋的算法設計技術
第8章回溯法151
8.1概述151
8.1.1問題的解空間樹151
8.1.2回溯法的設計思想152
8.1.3回溯法的時間性能153
8.1.4一個簡單的例子——素數環問題154
8.2圖問題中的回溯法155
8.2.1圖著色問題155
8.2.2哈密頓迴路問題158
8.3組合問題中的回溯法160
8.3.1八皇后問題160
8.3.2批處理作業調度問題163
閱讀材料——遺傳算法166
習題8169第9章分支限界法171
9.1概述171
9.1.1分支限界法的設計思想171
9.1.2分支限界法的時間性能172
9.1.3一個簡單的例子——圓排列問題173
9.2圖問題中的分支限界法175
9.2.1TSP問題175
9.2.2多段圖的最短路徑問題178
9.3組合問題中的分支限界法180
9.3.10/1背包問題180
9.3.2任務分配問題182
9.3.3批處理作業調度問題184
閱讀材料——蟻群算法187
習題9189
第四部分計算的限制
第10章問題的複雜性193
10.1問題的複雜性分類193
10.1.1什麼是計算194
10.1.2可計算問題與不可計算問題195
10.1.3易解問題與難解問題197
10.2P類問題和NP類問題199
10.2.1判定問題199
10.2.2確定性算法與P類問題199
10.2.3非確定性算法與NP類問題200
10.3NP完全問題201
10.3.1問題變換201
10.3.2NP完全問題的定義202
10.3.3基本的NP完全問題202
10.3.4NP完全問題的計算機處理203
閱讀材料——Cook定理204
習題10207第11章近似算法209
11.1概述209
11.1.1近似算法的設計思想209
11.1.2一個簡單的例子——求π的近似值21011.2圖問題中的近似算法211
11.2.1頂點覆蓋問題211
11.2.2TSP問題212
11.3組合問題中的近似算法214
11.3.1裝箱問題214
11.3.2子集和問題216
閱讀材料——粒子群算法219
習題11221第12章機率算法223
12.1概述223
12.1.1機率算法的設計思想224
12.1.2隨機數發生器224
12.2舍伍德型機率算法225
12.2.1舍伍德型機率算法的設計思想225
12.2.2快速排序226
12.2.3二叉查找樹227
12.3拉斯維加斯型機率算法228
12.3.1拉斯維加斯型機率算法的設計思想228
12.3.2八皇后問題229
12.3.2整數因子劃分問題230
12.4蒙特卡羅型機率算法231
12.4.1蒙特卡羅型機率算法的設計思想231
12.4.2主元素問題232
12.4.3素數測試問題233
閱讀材料——模擬淬火算法234
習題12235
附錄A名詞索引237
參考文獻243