高洪巖 著
本書宗旨
提高讀者學(xué)習(xí) Java EE 的效率,增強(qiáng)其項(xiàng)目實(shí)戰(zhàn)能力。本書摒棄了軟件公司中不常用或不實(shí)用的技術(shù),而是采用近200個(gè)開發(fā)案例,為讀者講解了開發(fā)商業(yè)軟件的知識(shí),幫助讀者進(jìn)行“精要”式的學(xué)習(xí),汲取 Java EE 的思想,正確地進(jìn)行項(xiàng)目實(shí)戰(zhàn)。
本書特色
《Java EE核心框架實(shí)戰(zhàn)(第2版)》的宗旨是提高讀者學(xué)習(xí)Java EE的效率,增強(qiáng)其項(xiàng)目實(shí)戰(zhàn)能力。為此,本書摒棄了軟件公司中不常用或不實(shí)用的技術(shù),而是采用近200個(gè)開發(fā)案例,為讀者講解了開發(fā)商業(yè)軟件的知識(shí),幫助讀者進(jìn)行“精要”式的學(xué)習(xí),汲取Java EE的思想,正確地進(jìn)行項(xiàng)目實(shí)戰(zhàn)。
《Java EE核心框架實(shí)戰(zhàn)(第2版)》涵蓋了MyBatis 3、Struts 2、Ajax、JSON、jQuery、Spring 4 MVC、Hibernate 5、Spring 4等主流Java EE框架的核心開發(fā)技術(shù),介紹了MVC框架的原理實(shí)現(xiàn)、上傳、下載、數(shù)據(jù)驗(yàn)證、國(guó)際化、多模塊分組開發(fā)、轉(zhuǎn)發(fā)/重定向、JSON的解析;將Ajax及JSON和MVC框架進(jìn)行整合開發(fā);ORM框架的CURD操作以及MyBatis和Hibernate中的映射文件使用。本書還使用大量篇幅介紹了Spring 4中的核心技術(shù)DI與AOP,以及企業(yè)中常用框架的整合開發(fā),框架包含Struts 2、Spring 4 MVC、MyBatis 3、Hibernate 5、Spring 4整合開發(fā)等內(nèi)容。
《Java EE核心框架實(shí)戰(zhàn)(第2版)》語(yǔ)言簡(jiǎn)潔,示例豐富,可幫助讀者迅速掌握使用主流開源Java EE框架進(jìn)行開發(fā)所需的各種技能。本書適合具有一定Java編程基礎(chǔ)的讀者,以及使用Java進(jìn)行軟件開發(fā)、測(cè)試的從業(yè)人員閱讀。
高洪巖,畢業(yè)于東北電力大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),獲得軟件工程碩士學(xué)位。曾任職
于大連東軟軟件公司、北京中軟、中國(guó)海洋石油集團(tuán)、中國(guó)石化,現(xiàn)工作于教育與技術(shù)
之間,喜歡分享,快樂學(xué)習(xí)。
第1章 MyBatis 3操作數(shù)據(jù)庫(kù) 1
1.1 MyBatis介紹 1
1.2 MyBatis基本使用 4
1.2.1 使用XML配置文件創(chuàng)建SqlSessionFactory對(duì)象 5
1.2.2 SqlSessionFactoryBuilder和SqlSessionFactory類信息 7
1.2.3 使用MyBatis Generator工具逆向操作Oracle數(shù)據(jù)庫(kù) 7
1.2.4 使用MyBatis Generator工具逆向操作MySQL數(shù)據(jù)庫(kù) 14
1.3 使用MyBatis實(shí)現(xiàn)CURD-2種數(shù)據(jù)庫(kù)(Oracle-MySQL) 16
1.3.1 針對(duì)Oracle的CURD 17
1.3.2 針對(duì)MySQL的CURD 23
1.3.3 SQL映射文件中namespace命名空間的作用 24
1.4 MyBatis核心對(duì)象的生命周期與封裝 26
1.4.1 創(chuàng)建GetSqlSessionFactory.java類 27
1.4.2 創(chuàng)建GetSqlSession.java類 28
1.4.3 創(chuàng)建DBOperate.java類 29
1.4.4 創(chuàng)建userinfoMapping.xml映射文件 29
1.4.5 創(chuàng)建連接數(shù)據(jù)庫(kù)mybatis-config.xml配置文件 30
1.4.6 創(chuàng)建名稱為test的Servlet對(duì)象 30
1.4.7 添加記錄及異常回滾的測(cè)試 31
1.4.8 刪除記錄 33
1.4.9 更改記錄 34
1.4.10 查詢單條記錄 35
1.4.11 查詢多條記錄 36
第2章 MyBatis 3必備開發(fā)技能 37
2.1 使用getMapper()面向接口編程 37
2.1.1 接口-SQL映射的對(duì)應(yīng)關(guān)系 37
2.1.2 創(chuàng)建Userinfo.java實(shí)體類 38
2.1.3 創(chuàng)建UserinfoMapper.java接口 38
2.1.4 創(chuàng)建SQL映射文件UserinfoMapper.xml 39
2.1.5 增加記錄insert的操作代碼 39
2.1.6 查詢?nèi)縮electAll的操作代碼 41
2.1.7 查詢單條記錄selectById的操作代碼 41
2.1.8 修改記錄updateById的操作代碼 42
2.1.9 刪除記錄deleteById的操作代碼 43
2.2 使用typeAliases配置別名 43
2.2.1 使用typeAlias單獨(dú)配置別名 44
2.2.2 使用package批量配置別名 44
2.3 使用properties文件保存數(shù)據(jù)庫(kù)信息 46
2.3.1 在mybatis-config.xml配置文件中讀取properties文件中的參數(shù) 46
2.3.2 將數(shù)據(jù)庫(kù)信息封裝進(jìn)properties屬性文件中 47
2.4 與數(shù)據(jù)源DataSource有關(guān)的操作 49
2.4.1 配置多個(gè)environment環(huán)境 49
2.4.2 什么是JNDI以及如何從JNDI獲得數(shù)據(jù)源DataSource 50
2.4.3 如何在MyBatis中使用數(shù)據(jù)源DataSource 54
2.4.4 在MyBatis中使用HikariCP連接池 57
2.5 多數(shù)據(jù)庫(kù)執(zhí)行不同SQL語(yǔ)句的支持 60
2.6 多種獲取Mapper的方式 61
2.7 MyBatis3的SQL映射文件與動(dòng)態(tài)SQL 62
2.7.1 標(biāo)簽 62
2.7.2 標(biāo)簽 64
2.7.3 使用${}拼接SQL語(yǔ)句 65
2.7.4 插入null值時(shí)的處理第1種方法jdbcType 67
2.7.5 插入null值時(shí)的處理第2種方法 68
2.7.6 標(biāo)簽 69
2.7.7 標(biāo)簽的使用 71
2.7.8 標(biāo)簽的使用 72
2.7.9 標(biāo)簽的使用 73
2.7.10 使用標(biāo)簽對(duì)like語(yǔ)句進(jìn)行適配 77
2.8 插入超大的字符串String文本內(nèi)容 81
2.9 對(duì)查詢的數(shù)據(jù)進(jìn)行分頁(yè) 84
2.10 批處理SQL語(yǔ)句 86
第3章 Struts 2必備開發(fā)技能 88
3.1 使用Struts 2進(jìn)行登錄功能的開發(fā) 88
3.1.1 為什么要使用MVC 89
3.1.2 準(zhǔn)備jar文件 94
3.1.3 創(chuàng)建Web項(xiàng)目、添加jar文件及配置web.xml文件 96
3.1.4 創(chuàng)建控制層Controller文件-Login.java 96
3.1.5 創(chuàng)建業(yè)務(wù)邏輯層Model文件-UserinfoService.java 97
3.1.6 創(chuàng)建視圖層View文件-login.jsp 98
3.1.7 添加核心配置文件struts.xml及解釋 98
3.1.8 添加ok.jsp和no.jsp登錄結(jié)果文件 99
3.1.9 運(yùn)行項(xiàng)目 99
3.1.10 Struts 2的攔截器 101
3.1.11 Struts 2的數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換 106
3.2 MVC框架的開發(fā)模型 112
3.2.1 基礎(chǔ)知識(shí)準(zhǔn)備1——XML文件的CURD 113
3.2.2 基礎(chǔ)知識(shí)準(zhǔn)備2——Java的反射 120
3.2.3 實(shí)現(xiàn)MVC模型——自定義配置文件 122
3.2.4 實(shí)現(xiàn)MVC模型——ActionMapping.java封裝信息 123
3.2.5 實(shí)現(xiàn)MVC模型——ResultMapping.java封裝信息 124
3.2.6 實(shí)現(xiàn)MVC模型——管理映射信息的ActionMappingManager.java對(duì)象 124
3.2.7 實(shí)現(xiàn)MVC模型——?jiǎng)?chuàng)建反射Action的ActionManager.java對(duì)象 126
3.2.8 實(shí)現(xiàn)MVC模型——?jiǎng)?chuàng)建核心控制器ActionServlet.java 127
3.2.9 實(shí)現(xiàn)MVC模型——?jiǎng)?chuàng)建Action接口及控制層Controller實(shí)現(xiàn)類 129
3.2.10 實(shí)現(xiàn)MVC模型——?jiǎng)?chuàng)建視圖層V對(duì)應(yīng)的JSP文件 130
3.2.11 實(shí)現(xiàn)MVC模型——在web.xml中配置核心控制器 131
3.2.12 實(shí)現(xiàn)MVC模型——運(yùn)行效果 131
3.3 Struts 2的刷新驗(yàn)證功能 131
3.3.1 Action接口 132
3.3.2 Validateable和ValidationAware接口 133
3.3.3 TextProvider和LocaleProvider接口 134
3.3.4 使用ActionSupport實(shí)現(xiàn)有刷新的驗(yàn)證 134
3.4 對(duì)Struts 2有刷新驗(yàn)證的示例進(jìn)行升級(jí) 137
3.4.1 加入xml配置來(lái)屏蔽自動(dòng)生成的table/tr/td代碼 137
3.4.2 解決“出錯(cuò)信息不能自動(dòng)顯示”的問題 139
3.5 用標(biāo)簽顯示全部出錯(cuò)信息 142
3.6 出錯(cuò)信息進(jìn)行傳參及國(guó)際化 144
3.6.1 創(chuàng)建info_en_US.properties和info_zh_CN.properties屬性文件 144
3.6.2 在JSP文件中顯示國(guó)際化的靜態(tài)文本 147
3.6.3 在JSP文件中顯示國(guó)際化的靜態(tài)文本時(shí)傳遞參數(shù) 149
3.6.4 在Action中使用國(guó)際化功能 149
3.7 用實(shí)體類封裝URL中的參數(shù)——登錄功能的URL封裝 151
3.8 Struts 2中的轉(zhuǎn)發(fā)操作 153
3.8.1 Servlet中的轉(zhuǎn)發(fā)操作 153
3.8.2 Struts 2中的轉(zhuǎn)發(fā)操作 154
3.9 由Action重定向到Action——無(wú)參數(shù) 157
3.9.1 什么樣的情況下使用重定向 157
3.9.2 新建起始控制層Login.java 157
3.9.3 新建目的控制層List.java 157
3.9.4 在struts.xml文件中配置重定向的重點(diǎn) 158
3.9.5 新建顯示列表的JSP文件 159
3.10 由Action重定向到Action——有參數(shù) 159
3.10.1 什么樣的情況下需要重定向傳遞參數(shù) 159
3.10.2 新建起始控制層Login.java文件 159
3.10.3 更改struts.xml配置文件 160
3.10.4 新建目的控制層List.java文件 161
3.10.5 用JSTL和EL在JSP文件中打印數(shù)據(jù) 162
3.11 讓Struts 2支持多模塊多配置文件開發(fā) 164
3.11.1 新建4個(gè)模塊的控制層 164
3.11.2 新建3個(gè)模塊的配置文件 165
3.11.3 使用include標(biāo)記導(dǎo)入多個(gè)配置文件 167
3.11.4 創(chuàng)建各模塊使用的JSP文件 167
3.11.5 運(yùn)行各模塊的效果 168
3.12 在Action中有多個(gè)業(yè)務(wù)方法時(shí)的處理 169
3.13 自定義全局result 171
3.13.1 新建全局result實(shí)例和控制層代碼 171
3.13.2 聲明全局的result對(duì)象 172
3.13.3 部屬項(xiàng)目并運(yùn)行 172
3.14 在Action中使用servlet的API(緊耦版) 173
3.14.1 將數(shù)據(jù)放到不同的作用域中 173
3.14.2 從不同作用域中取值 174
3.15 在Action中使用Servlet的API(松耦版) 175
3.15.1 新建控制層 175
3.15.2 新建JSP視圖 176
第4章 Struts 2文件的上傳與下載 178
4.1 使用Struts 2進(jìn)行單文件上傳 178
4.1.1 Struts 2上傳功能的底層依賴 178
4.1.2 新建上傳文件的JSP文件 178
4.1.3 新建上傳文件的控制層Register.java文件 179
4.1.4 Action中File實(shí)例的命名規(guī)則 180
4.1.5 設(shè)置上傳文件的大小 180
4.1.6 設(shè)計(jì)struts.xml配置文件 180
4.1.7 成功上傳單個(gè)文件 181
4.2 使用Struts 2進(jìn)行多文件上傳 181
4.2.1 新建上傳多個(gè)文件的JSP 182
4.2.2 設(shè)計(jì)上傳的控制層代碼 182
4.2.3 成功上傳多個(gè)文件 184
4.3 使用屬性驅(qū)動(dòng)形式的文件上傳 185
4.3.1 創(chuàng)建上傳多個(gè)文件的JSP 185
4.3.2 設(shè)計(jì)上傳文件的控制層 186
4.3.3 新建上傳文件的封裝類 187
4.3.4 將JSP文件中s:file標(biāo)簽的name屬性進(jìn)行更改 188
4.3.5 以屬性驅(qū)動(dòng)方式成功上傳多個(gè)文件 189
4.4 用Struts 2實(shí)現(xiàn)下載文件的功能(支持中文文件名與IE和FireFix兼容) 190
4.4.1 新建下載文件的JSP文件 190
4.4.2 新建下載文件的控制層文件 191
4.4.3 更改struts.xml配置文件 192
4.4.4 成功下載中文文件名的文件 192
第5章 JSON、Ajax和jQuery與Struts 2聯(lián)合使用 193
5.1 JSON介紹 193
5.2 用JSON創(chuàng)建對(duì)象 194
5.2.1 JSON創(chuàng)建對(duì)象的語(yǔ)法格式 194
5.2.2 在JSP中用JSON創(chuàng)建一個(gè)對(duì)象 194
5.2.3 運(yùn)行效果 194
5.3 用JSON創(chuàng)建字符串的限制 195
5.3.1 需要轉(zhuǎn)義的特殊字符 195
5.3.2 在JSP中對(duì)JSON特殊字符進(jìn)行轉(zhuǎn)義 195
5.3.3 運(yùn)行效果 196
5.4 用JSON創(chuàng)建數(shù)字類型語(yǔ)法格式 196
5.4.1 在JSP中用JSON創(chuàng)建數(shù)字類型 196
5.4.2 運(yùn)行效果 197
5.5 用JSON創(chuàng)建數(shù)組對(duì)象的語(yǔ)法格式 197
5.5.1 JSON創(chuàng)建一個(gè)數(shù)組對(duì)象 198
5.5.2 運(yùn)行效果 198
5.6 用JSON創(chuàng)建嵌套的對(duì)象類型 198
5.7 將對(duì)象轉(zhuǎn)成JSON字符串 200
5.7.1 什么情況下需要將對(duì)象轉(zhuǎn)成JSON字符串 200
5.7.2 使用stringify方法將對(duì)象轉(zhuǎn)成JSON字符串 200
5.8 將對(duì)象轉(zhuǎn)成JSON字符串提交到Action并解析(以post方式提交) 201
5.8.1 在JSP中創(chuàng)建JSON和Ajax對(duì)象 201
5.8.2 用Action控制層接收通過Ajax傳遞過來(lái)的JSON字符串 202
5.8.3 運(yùn)行效果 203
5.8.4 在控制臺(tái)輸出的數(shù)據(jù) 204
5.9 將對(duì)象轉(zhuǎn)成JSON字符串提交到Action并解析(get方式提交) 204
5.9.1 新建創(chuàng)建JSON字符串的JSP文件 204
5.9.2 新建接收J(rèn)SON字符串的Action控制層 205
5.9.3 運(yùn)行結(jié)果 206
5.9.4 在控制臺(tái)輸出的數(shù)據(jù) 206
5.10 將數(shù)組轉(zhuǎn)成JSON字符串提交到Action并解析(get和post方式提交) 207
5.10.1 在服務(wù)器端用get方法解析JSON字符串 208
5.10.2 在服務(wù)器端用post方法解析JSON字符串 209
5.10.3 運(yùn)行結(jié)果 210
5.10.4 在控制臺(tái)輸出的數(shù)據(jù) 210
5.11 使用Ajax調(diào)用Action并生成JSON再傳遞到客戶端(get和post方式
提交) 210
5.11.1 新建具有Ajax提交功能的JSP 211
5.11.2 在Action控制層創(chuàng)建List中存String 213
5.11.3 在Action控制層創(chuàng)建List中存Bean 214
5.11.4 在Action控制層創(chuàng)建Map中存放的String 215
5.11.5 在Action控制層創(chuàng)建Map中存放的Bean 216
5.11.6 單擊不同的button按鈕調(diào)用不同的Action 217
5.12 jQuery、JSON和Struts 2 218
5.12.1 jQuery框架的Ajax功能介紹 218
5.12.2 用jQuery的Ajax功能調(diào)用遠(yuǎn)程action(無(wú)返回結(jié)果) 219
5.12.3 jQuery的Ajax方法結(jié)構(gòu) 220
5.12.4 用jQuery的Ajax功能調(diào)用遠(yuǎn)程action(有返回結(jié)果) 221
5.12.5 用jQuery的Ajax功能調(diào)用遠(yuǎn)程action并且傳遞JSON格式參數(shù)(有返回值) 223
5.12.6 用jQuery解析從action返回List中存String的JSON字符串 226
5.13 在服務(wù)器端解析復(fù)雜結(jié)構(gòu)的JSON對(duì)象 228
第6章 用Hibernate 5操作數(shù)據(jù)庫(kù) 230
6.1 Hibernate概述與優(yōu)勢(shì) 230
6.2 持久層、持久化與ORM 231
6.3 用MyEclipse開發(fā)第一個(gè)Hibernate示例 233
6.3.1 在MyEclipse中創(chuàng)建MyEclipse Database Explorer數(shù)據(jù)庫(kù)連接 233
6.3.2 創(chuàng)建Web項(xiàng)目并添加Hibernate框架 235
6.3.3 開始Hibernate逆向 239
6.3.4 數(shù)據(jù)訪問層DAO與實(shí)體類entity的代碼分析 241
6.3.5 使用Hibernate進(jìn)行持久化 242
6.3.6 映射文件Userinfo.hbm.xml的代碼分析 243
6.3.7 查詢—修改—?jiǎng)h除的操作代碼 245
6.3.8 其他類解釋 247
第7章 Hibernate 5核心技能 248
7.1 工廠類HibernateSessionFactory.java中的靜態(tài)代碼塊 248
7.2 SessionFactory介紹 249
7.3 Session介紹 249
7.4 使用Session實(shí)現(xiàn)CURD功能 250
7.4.1 數(shù)據(jù)表userinfo結(jié)構(gòu)與映射文件 250
7.4.2 創(chuàng)建SessionFactory工廠類 251
7.4.3 添加記錄 251
7.4.4 查詢單條記錄 252
7.4.5 更改記錄 253
7.4.6 刪除記錄 253
7.5 Hibernate使用JNDI技術(shù) 254
7.5.1 備份Tomcat/conf路徑下的配置文件 254
7.5.2 更改配置文件context.xml 254
7.5.3 更改配置文件web.xml 254
7.5.4 添加Hibernate框架配置的關(guān)鍵步驟 255
7.5.5 逆向工程 255
7.5.6 支持JNDI的hibernate.cfg.xml配置文件內(nèi)容 255
7.5.7 創(chuàng)建查詢數(shù)據(jù)的Servlet 256
7.5.8 部屬項(xiàng)目驗(yàn)證結(jié)果 256
7.6 緩存與實(shí)體狀態(tài) 256
7.6.1 Hibernate的OID與緩存 256
7.6.2 Hibernate中的對(duì)象狀態(tài):瞬時(shí)狀態(tài)、持久化狀態(tài)和游離狀態(tài) 258
7.7 雙向一對(duì)多在MyEclipse中的實(shí)現(xiàn) 258
7.7.1 添加主表記錄 261
7.7.2 添加子表記錄 262
7.7.3 更改主表數(shù)據(jù) 262
7.7.4 更改子表數(shù)據(jù) 262
7.7.5 刪除子表數(shù)據(jù) 263
7.7.6 刪除主表main數(shù)據(jù) 263
7.7.7 通過主表獲取子表數(shù)據(jù) 264
7.8 Hibernate備忘知識(shí)點(diǎn) 265
7.9 對(duì)主從表結(jié)構(gòu)中的HashSet進(jìn)行排序 267
7.10 延遲加載與load()和get()的區(qū)別 267
7.10.1 主從表表結(jié)構(gòu)的設(shè)計(jì) 267
7.10.2 對(duì)省表和市表內(nèi)容的添充 268
7.10.3 更改映射文件 268
7.10.4 新建測(cè)試用的Servlet對(duì)象 268
7.10.5 更改映射文件Sheng.hbm.xml 269
7.11 Hibernate對(duì)Oracle中CLOB字段類型的讀處理 270
7.12 Hibernate中的inverse與cascade的測(cè)試 270
第8章 Hibernate 5使用HQL語(yǔ)言進(jìn)行檢索 275
8.1 Hibernate的檢索方式 275
8.1.1 HQL表別名 276
8.1.2 HQL對(duì)結(jié)果進(jìn)行排序與list()和iterator()方法的區(qū)別 278
8.1.3 HQL索引參數(shù)綁定 281
8.1.4 HQL命名參數(shù)綁定與安全性 282
8.1.5 HQL方法鏈的使用 284
8.1.6 HQL中的uniqueResult方法的使用 284
8.1.7 HQL中的where子句與查詢條件 285
8.1.8 查詢?nèi)掌凇址袷健?87
8.1.9 查詢?nèi)掌凇獢?shù)字格式 288
8.1.10 分頁(yè)的處理 289
8.1.11 HQL中的聚集函數(shù):distinct-count-min-max-sum-avg 290
8.1.12 HQL中的分組查詢 292
第9章 JPA核心技能 294
9.1 什么是JPA以及為什么要使用JPA 294
9.2 搭建JPA開發(fā)環(huán)境與逆向 295
9.3 分析逆向出來(lái)的Java類 300
9.4 使用IUserinfoDAO.java接口中的方法 301
9.4.1 方法public void save(Userinfo entity)的使用 302
9.4.2 方法public Userinfo findById(Long id)的使用 303
9.4.3 方法public List findByProperty(String propertyName, final Object value, final int... rowStartIdxAndCount)的使用 304
9.4.4 方法public List findByUsername(Object username, int... rowStartIdxAndCount)的使用 304
9.4.5 方法public List findByPassword(Object password, int... rowStartIdxAndCount)的使用 304
9.4.6 方法public List findByAge(Object age, int... rowStartIdxAndCount)的使用 305
9.4.7 方法public List findAll(final int... rowStartIdxAndCount)的使用 305
9.4.8 方法public Userinfo update(Userinfo entity)的使用 305
9.4.9 方法public void delete(Userinfo entity)的使用 306
9.5 JPA核心接口介紹 306
9.5.1 類Persistence 306
9.5.2 JPA中的事務(wù)類型 307
9.5.3 接口EntityManagerFactory 308
9.5.4 接口EntityManager 308
9.6 實(shí)體類的狀態(tài) 308
9.7 使用原生JPA的API實(shí)現(xiàn)1個(gè)添加記錄的操作 309
9.8 從零開始搭建JPA開發(fā)環(huán)境 309
9.9 EntityManager核心方法的使用 311
9.9.1 方法void persist(Object entity)保存一條記錄 311
9.9.2 T merge(T entity)方法和 T find(Class entityClass, Object primaryKey)方法 311
9.9.3 方法void remove(Object entity) 312
9.9.4 getReference(Class, Object)方法 312
9.9.5 createNativeQuery(string)方法 315
9.9.6 clear()和contains(Object)方法 317
9.9.7 createQuery(String)方法 319
9.10 雙向一對(duì)多的CURD實(shí)驗(yàn) 319
9.10.1 逆向Main.java和Sub.java實(shí)體類 319
9.10.2 創(chuàng)建Main 322
9.10.3 創(chuàng)建Sub 322
9.10.4 更新Main 323
9.10.5 更新Sub 323
9.10.6 刪除Main時(shí)默認(rèn)將Sub也一同刪除 324
9.10.7 從Main加載Sub時(shí)默認(rèn)為延遲加載 324
9.11 JPQL語(yǔ)言的使用 325
9.11.1 參數(shù)索引式查詢 325
9.11.2 命名式參數(shù)查詢 326
9.11.3 JPQL支持的運(yùn)算符與聚合函數(shù)與排序 326
9.11.4 is null為空運(yùn)算符的使用 327
9.11.5 查詢指定字段的示例 327
9.11.6 JPQL語(yǔ)言對(duì)日期的判斷 329
9.11.7 JPQL語(yǔ)言中的分頁(yè)功能 331
第10章 Spring 4的DI與AOP 332
10.1 Spring介紹 332
10.2 依賴注入 333
10.3 DI容器 333
10.4 AOP的介紹 334
10.5 Spring的架構(gòu) 334
10.6 一個(gè)使用傳統(tǒng)方式保存數(shù)據(jù)功能的測(cè)試 335
10.7 在Spring中創(chuàng)建JavaBean 336
10.7.1 使用xml聲明法創(chuàng)建對(duì)象 337
10.7.2 使用Annotation注解法創(chuàng)建對(duì)象 340
10.8 DI的使用 350
10.8.1 使用xml聲明法注入對(duì)象 350
10.8.2 使用注解聲明法注入對(duì)象 352
10.8.3 多實(shí)現(xiàn)類的歧義性 353
10.8.4 使用@Autowired注解向構(gòu)造方法參數(shù)注入 356
10.8.5 在set方法中使用@Autowired注解 357
10.8.6 使用@Bean向工廠方法的參數(shù)傳參 358
10.8.7 使用@Autowired(required = false)的寫法 358
10.8.8 使用@Bean注入多個(gè)相同類型的對(duì)象時(shí)出現(xiàn)異?!?60
10.8.9 使用@Bean對(duì)JavaBean的id重命名 361
10.8.10 對(duì)構(gòu)造方法進(jìn)行注入 362
10.8.11 使用p命名空間對(duì)屬性進(jìn)行注入 368
10.8.12 Spring上下文環(huán)境的相關(guān)知識(shí) 370
10.8.13 使用Spring的DI方式保存數(shù)據(jù)功能的測(cè)試 375
10.8.14 BeanFactory與ApplicationContext 377
10.8.15 注入null類型 377
10.8.16 注入Properties類型 378
10.8.17 在DI容器中創(chuàng)建Singleton單例和Prototype多例的JavaBean對(duì)象 379
10.8.18 Spring中注入外部屬性文件的屬性值 381
10.9 面向切面編程AOP的使用 383
10.9.1 AOP的原理之代理設(shè)計(jì)模式 384
10.9.2 與AOP相關(guān)的必備概念 391
10.9.3 面向切面編程AOP核心案例 395
10.9.4 Strust 2、Spring 4整合及應(yīng)用AOP切面 432
第11章 Struts 2+Hibernate 5+Spring 4整合 436
11.1 目的 436
11.2 創(chuàng)建數(shù)據(jù)庫(kù)環(huán)境 436
11.2.1 新建數(shù)據(jù)表userinfo 436
11.2.2 創(chuàng)建序列對(duì)象 437
11.3 新建整合用的Web項(xiàng)目 437
11.4 添加Struts 2框架支持 437
11.4.1 添加Struts 2框架 437
11.4.2 在web.xml文件中注冊(cè)Struts 2的過濾器 438
11.4.3 在項(xiàng)目的src目錄下創(chuàng)建struts.xml配置文件 438
11.5 添加Hibernate 5框架支持 439
11.6 添加Spring 4框架支持 440
11.7 創(chuàng)建spring-dao.xml文件 440
11.8 創(chuàng)建spring-service.xml文件 440
11.9 創(chuàng)建spring-controller.xml文件 441
11.10 創(chuàng)建applicationContext.xml文件 441
11.11 在web.xml文件中注冊(cè)Spring監(jiān)聽器 442
11.12 加Spring 4框架后的Web項(xiàng)目結(jié)構(gòu) 443
11.13 創(chuàng)建Hibernate中的實(shí)體類與映射文件 444
11.14 創(chuàng)建Hibernate 5的DAO類 445
11.15 創(chuàng)建UserinfoService.java服務(wù)對(duì)象 445
11.16 新建一個(gè)操作userinfo表數(shù)據(jù)的Controller控制層 446
11.17 測(cè)試成功的結(jié)果 447
11.18 測(cè)試回滾的結(jié)果 448
第12章 Spring 4 MVC核心技能 450
12.1 Spring 4 MVC介紹 450
12.1.1 Spring 4 MVC核心控制器 451
12.1.2 基于注解的Spring 4 MVC開發(fā) 452
12.2 Spring 4 MVC第一個(gè)登錄測(cè)試 452
12.2.1 添加Spring 4 MVC的依賴jar文件 452
12.2.2 在web.xml中配置核心控制器 453
12.2.3 新建springMVC-servlet.xml配置文件 453
12.2.4 新建相關(guān)的JSP文件 453
12.2.5 新建控制層Java類文件 454
12.2.6 部署項(xiàng)目并運(yùn)行 455
12.2.7 第一個(gè)示例的總結(jié) 456
12.2.8 Spring MVC取參還能更加方便 456
12.3 執(zhí)行控制層與限制提交的方式 457
12.3.1 新建控制層ListUsername.java文件 457
12.3.2 新建登錄及顯示數(shù)據(jù)的JSP文件 458
12.3.3 部署項(xiàng)目并測(cè)試 458
12.4 解決多人開發(fā)路徑可能重復(fù)問題 460
12.4.1 錯(cuò)誤的情況 460
12.4.2 解決辦法 461
12.5 在控制層中處理指定的提交get或post方式 463
12.5.1 控制層代碼 463
12.5.2 新建JSP文件并運(yùn)行 464
12.6 控制層重定向到控制層——無(wú)參數(shù)傳遞 465
12.6.1 新建控制層Java文件 465
12.6.2 創(chuàng)建JSP文件并運(yùn)行項(xiàng)目 466
12.7 控制層重定向到控制層——有參數(shù)傳遞 467
12.7.1 創(chuàng)建兩個(gè)控制層Java文件 467
12.7.2 部署項(xiàng)目并運(yùn)行 468
12.8 匹配URL路徑執(zhí)行指定控制層 468
12.8.1 新建控制層文件 468
12.8.2 部署項(xiàng)目并運(yùn)行 469
12.9 在服務(wù)器端取得JSON字符串并解析——方式1 470
12.9.1 在web.xml中配置字符編碼過濾器 470
12.9.2 新建JSP文件 471
12.9.3 新建控制層Java文件 472
12.9.4 添加依賴的jar包文件 472
12.9.5 運(yùn)行項(xiàng)目 473
12.10 在服務(wù)器端取得JSON字符串并解析——方式2 473
12.10.1 新建封裝JSON對(duì)象屬性的實(shí)體類 473
12.10.2 新建控制層 474
12.10.3 在配置文件中添加注解 474
12.10.4 新建JSP文件 475
12.10.5 添加jacksonJSON解析處理類庫(kù)并運(yùn)行 475
12.10.6 解析不同格式的JSON字符串示例 476
12.11 將URL中的參數(shù)轉(zhuǎn)成實(shí)體的示例 478
12.11.1 新建控制層文件 478
12.11.2 新建登錄用途的JSP文件 479
12.11.3 在web.xml中注冊(cè)編碼過濾器 479
12.11.4 運(yùn)行結(jié)果 479
12.12 在控制層返回JSON對(duì)象示例 479
12.12.1 新建控制層文件 480
12.12.2 新建JSP文件 480
12.12.3 部署項(xiàng)目并運(yùn)行 481
12.13 在控制層傳回JSON字符串示例 482
12.13.1 新建控制層文件 482
12.13.2 新建JSP文件及在配置文件中注冊(cè)u(píng)tf-8編碼處理 482
12.13.3 運(yùn)行項(xiàng)目 483
12.14 在控制層取得HttpServletRequest和HttpServletResponse對(duì)象 483
12.14.1 新建控制層 484
12.14.2 JSP文件中的EL代碼及運(yùn)行結(jié)果 484
12.14.3 直接使用HttpServletResopnse對(duì)象輸出響應(yīng)字符 484
12.15 通過URL參數(shù)訪問指定的業(yè)務(wù)方法 486
12.15.1 新建控制層文件List.java 486
12.15.2 運(yùn)行結(jié)果 487
12.16 Spring 4 MVC單文件上傳——寫法1 487
12.16.1 新建控制層 487
12.16.2 在配置文件springMVC-servlet.xml中聲明上傳請(qǐng)求 488
12.16.3 創(chuàng)建前臺(tái)JSP文件 489
12.16.4 程序運(yùn)行結(jié)果 489
12.17 Spring 4 MVC單文件上傳——寫法2 489
12.18 Spring 4 MVC多文件上傳 490
12.18.1 新建控制層及JSP文件 490
12.18.2 運(yùn)行結(jié)果 491
12.19 Spring 4 MVC支持中文文件名的文件下載 491
12.20 控制層返回List對(duì)象及實(shí)體的效果 493
12.20.1 新建控制層文件 493
12.20.2 新建JSP文件 493
12.20.3 更改springMVC-servlet.xml配置文件 494
12.20.4 程序運(yùn)行結(jié)果 494
12.21 控制層ModelMap對(duì)象 495
12.21.1 新建控制層 495
12.21.2 JSP文件代碼 496
12.21.3 運(yùn)行效果 496
12.22 Spring 4 MVC提交的表單進(jìn)行手動(dòng)數(shù)據(jù)驗(yàn)證 497
12.22.1 創(chuàng)建控制層文件 497
12.22.2 創(chuàng)建JSP文件 497
12.22.3 運(yùn)行結(jié)果 498
第13章 Spring 4 MVC必備知識(shí) 499
13.1 web.xml中的不同配置方法 499
13.1.1 存放于src資源路徑中 499
13.1.2 指定存放路徑 500
13.1.3 指定多個(gè)配置文件 500
13.2 路徑中添加通配符的功能 501
13.3 業(yè)務(wù)邏輯層在控制層中進(jìn)行注入 502
13.3.1 新建業(yè)務(wù)邏輯層 502
13.3.2 創(chuàng)建控制層文件 502
13.3.3 設(shè)計(jì)springMVC-servlet.xml配置文件 502
13.3.4 程序運(yùn)行結(jié)果 503
13.3.5 多個(gè)實(shí)現(xiàn)類的情況 503
13.4 對(duì)象ModelAndView的使用 504
13.4.1 創(chuàng)建控制層及JSP文件 504
13.4.2 程序運(yùn)行結(jié)果 505
13.5 控制層返回void數(shù)據(jù)的情況 505
13.5.1 創(chuàng)建控制層及index.jsp文件 505
13.5.2 更改配置文件 506
13.5.3 部署項(xiàng)目運(yùn)行程序 506
13.6 使用Spring 4 MVC中的注解來(lái)操作HttpSession中的對(duì)象 507
13.6.1 創(chuàng)建控制層文件PutGetSession.java 507
13.6.2 創(chuàng)建顯示不同作用域中的值的JSP文件 508
13.6.3 部署項(xiàng)目并運(yùn)行程序 508
第14章 Spring 4 MVC+MyBatis 3+Spring 4整合 509
14.1 準(zhǔn)備Spring 4的JAR包文件 509
14.2 準(zhǔn)備MyBatis的JAR包文件 510
14.3 準(zhǔn)備MyBatis 3與Spring 4整合的JAR文件 510
14.4 創(chuàng)建Web項(xiàng)目 510
14.5 配置web.xml文件 511
14.6 配置springMVC-servlet.xml文件 512
14.7 配置MyBatis配置文件 513
14.8 創(chuàng)建MyBatis與映射有關(guān)文件 513
14.9 配置applicationContext.xml文件 514
14.10 創(chuàng)建Service對(duì)象 516
14.11 創(chuàng)建Controller對(duì)象 516
14.12 測(cè)試正常的效果 517
14.13 測(cè)試回滾的效果 517
更多建議: