Java是一個(gè)面向互聯(lián)網(wǎng)的開源的計(jì)算機(jī)程序設(shè)計(jì)語言,擁有跨平臺(tái)、面向?qū)ο、多線程的特點(diǎn),經(jīng)過20多年的發(fā)展,吸收了軟件開發(fā)領(lǐng)域的最新技術(shù),支持泛型編程、Lambda表達(dá)式、反射、注解等,形成了Spring、SpringMVC、Mybatis、springBoot等框架技術(shù),先后使用了Git,Maven,Docker等各種項(xiàng)目管理、構(gòu)建和配置工具,廣泛應(yīng)用于企業(yè)級(jí)Web應(yīng)用開發(fā)和移動(dòng)應(yīng)用開發(fā)。對(duì)于大多數(shù)學(xué)生來說,Java的學(xué)習(xí)周期長(zhǎng),學(xué)習(xí)難度大,學(xué)習(xí)效率低。在眾多的Java知識(shí)內(nèi)容當(dāng)中,合理選擇知識(shí)體系和教學(xué)內(nèi)容,實(shí)現(xiàn)課堂教學(xué)的有效、實(shí)效和高效,是Java課程教學(xué)中面臨的難題。為此,教材編寫組制訂Java初級(jí)、中級(jí)和中高級(jí)的三級(jí)教學(xué)體系。本書為中級(jí)教學(xué)體系,主要講授Java Web方面的內(nèi)容,并引入SSM框架內(nèi)容。內(nèi)容側(cè)重于Web開發(fā)基礎(chǔ),也即JavaEE基礎(chǔ)部分。在Web開發(fā)部分,除了JSP和Servlet以外,增加JSP標(biāo)簽、EL表達(dá)式和過濾器等和Web開發(fā)相關(guān)的內(nèi)容。之后以基礎(chǔ)應(yīng)用為主介紹Spring、Spring MVC、MyBatis,最后實(shí)現(xiàn)SSM整合應(yīng)用案例。
陳振興,云南財(cái)經(jīng)大學(xué)教師,副教授,碩士生導(dǎo)師,主要研究方向?yàn)檐浖こ膛c信息系統(tǒng),長(zhǎng)期從事計(jì)算機(jī)教學(xué)和計(jì)算機(jī)軟件開發(fā)工作,主持多項(xiàng)橫向項(xiàng)目的軟件開發(fā)工作,代表軟件為高校教學(xué)管理系統(tǒng)、醫(yī)院信息管理系統(tǒng)和電子病歷系統(tǒng);主要講授課程:Java面向?qū)ο蟪绦蛟O(shè)計(jì),系統(tǒng)分析與設(shè)計(jì),數(shù)據(jù)庫(kù)運(yùn)用等課程。
目 錄
第一部分 Java Web開發(fā)基礎(chǔ)
第1章 Java Web基礎(chǔ)知識(shí)與Web開發(fā)環(huán)境配置 2
1.1 Web應(yīng)用程序的基本概念 2
1.1.1 靜態(tài)網(wǎng)站與動(dòng)態(tài)網(wǎng)站 2
1.1.2 Web前端與Web后端 3
1.1.3 C/S架構(gòu)與B/S架構(gòu) 3
1.2 Web的工作原理 3
1.2.1 HTTP協(xié)議 4
1.2.2 HTTP報(bào)文格式 4
1.2.3 GET方法 7
1.2.4 POST方法 8
1.3 Tomcat服務(wù)器 8
1.3.1 Servlet容器介紹 8
1.3.2 Tomcat簡(jiǎn)介 9
1.3.3 Tomcat服務(wù)器的安裝配置 9
1.3.4 測(cè)試Tomcat服務(wù)器 9
1.3.5 在Eclipse中配置Tomcat服務(wù)器 9
1.3.6 在IDEA中配置Tomcat服務(wù)器 12
1.4 創(chuàng)建Web項(xiàng)目示例 14
1.4.1 在Eclipse中創(chuàng)建Web項(xiàng)目 14
1.4.2 在IDEA中創(chuàng)建Web項(xiàng)目 15
1.5 本章小結(jié) 19
1.6 習(xí)題 19
第2章 JSP技術(shù) 20
2.1 JSP簡(jiǎn)介 20
2.1.1 什么是JSP 20
2.1.2 JSP的特點(diǎn) 20
2.1.3 JSP的工作原理 20
2.2 JSP標(biāo)準(zhǔn)語法 21
2.2.1 一個(gè)簡(jiǎn)單的JSP程序 21
2.2.2 JSP注釋 22
2.2.3 JSP腳本 24
2.2.4 JSP與HTML的混合使用 26
2.3 JSP編譯指令 27
2.3.1 include指令 27
2.3.2 page指令 28
2.3.3 taglib指令 29
2.4 JSP動(dòng)作 29
2.4.1 forward動(dòng)作 29
2.4.2 include動(dòng)作 30
2.5 JSP的隱含對(duì)象 32
2.5.1 輸出對(duì)象out 32
2.5.2 請(qǐng)求對(duì)象request 32
2.5.3 響應(yīng)對(duì)象response 34
2.5.4 會(huì)話對(duì)象session 35
2.5.5 Web服務(wù)器對(duì)象application 36
2.6 編程示例:客戶信息展示 36
2.7 本章小結(jié) 39
2.8 習(xí)題 40
第3章 JSP與JavaBean 41
3.1 JavaBean的定義 41
3.2 兩種JavaBean的封裝類 41
3.2.1 封裝數(shù)據(jù)的JavaBean 41
3.2.2 封裝業(yè)務(wù)的JavaBean 43
3.3 JavaBean在JSP中的使用 48
3.3.1 <jsp:useBean>標(biāo)簽 48
3.3.2 <jsp:setProperty> 48
3.3.3 <jsp:getProperty> 48
3.4 用戶管理系統(tǒng)案例的用戶信息管理功能實(shí)現(xiàn) 49
3.5 MVC設(shè)計(jì)模式 53
3.6 本章小結(jié) 54
3.7 習(xí)題 54
第4章 Servlet編程基礎(chǔ) 55
4.1 Servlet的定義及作用 55
4.2 Servlet開發(fā)入門 56
4.2.1 Servlet接口及其實(shí)現(xiàn)類 56
4.2.2 體系結(jié)構(gòu) 57
4.2.3 通過繼承GenericServlet類實(shí)現(xiàn)Servlet 57
4.2.4 通過繼承HttpServlet類實(shí)現(xiàn)Servlet 61
4.2.5 Servlet的生命周期和工作流程 63
4.3 Servlet部署 64
4.3.1 web.xml配置文件部署方式 65
4.3.2 Annotation部署方式 66
4.4 請(qǐng)求與響應(yīng) 70
4.4.1 HttpServletRequest對(duì)象 71
4.4.2 HttpServletResponse對(duì)象 79
4.5 獲取請(qǐng)求參數(shù)的通用方式 83
4.5.1 請(qǐng)求參數(shù) 83
4.5.2 String getQueryString()方法和BufferedReader getReader()方法 84
4.5.3 通用請(qǐng)求參數(shù)獲取方法 87
4.5.4 通過request對(duì)象傳遞數(shù)據(jù) 89
4.6 響應(yīng)信息中輸出中文亂碼問題和請(qǐng)求信息中中文請(qǐng)求參數(shù)亂碼問題 90
4.6.1 響應(yīng)信息中輸出中文亂碼問題 90
4.6.2 請(qǐng)求信息中中文請(qǐng)求參數(shù)亂碼問題 92
4.7 請(qǐng)求重定向和請(qǐng)求轉(zhuǎn)發(fā) 94
4.7.1 請(qǐng)求重定向 94
4.7.2 請(qǐng)求轉(zhuǎn)發(fā) 97
4.7.3 路徑配置 100
4.8 ServletConfig和ServletContext 100
4.8.1 ServletConfig接口 101
4.8.2 ServletContext接口 102
4.9 用戶管理系統(tǒng)案例的后端實(shí)現(xiàn) 105
4.9.1 用戶數(shù)據(jù)的增加 106
4.9.2 用戶數(shù)據(jù)的編輯 106
4.9.3 用戶數(shù)據(jù)的刪除 107
4.10 本章小結(jié) 108
4.11 習(xí)題 108
第5章 Servlet的會(huì)話技術(shù) 110
5.1 會(huì)話跟蹤技術(shù)概述 110
5.2 瀏覽器會(huì)話Cookie技術(shù) 112
5.2.1 Cookie 112
5.2.2 Cookie API 113
5.2.3 Cookie實(shí)例 114
5.2.4 Cookie的原理分析 116
5.3 服務(wù)器會(huì)話Session技術(shù) 117
5.3.1 Session技術(shù) 117
5.3.2 Session技術(shù)的工作原理 117
5.3.3 HttpSession API 118
5.3.4 廢棄當(dāng)前會(huì)話 124
5.4 URL重寫技術(shù) 127
5.5 用戶管理系統(tǒng)案例的改進(jìn) 130
5.6 本章小結(jié) 131
5.7 習(xí)題 132
第6章 過濾器與監(jiān)聽器 134
6.1 過濾器概述 134
6.1.1 什么是過濾器 134
6.1.2 過濾器的工作流程 135
6.1.3 Filter接口 136
6.1.4 過濾器的開發(fā)步驟 137
6.1.5 過濾器部署配置 139
6.1.6 Filter鏈 141
6.2 過濾器實(shí)現(xiàn)統(tǒng)一全站編碼 143
6.2.1 使用過濾器實(shí)現(xiàn)統(tǒng)一全站編碼 143
6.2.2 用戶管理系統(tǒng)案例的登錄功能改進(jìn) 146
6.3 監(jiān)聽器概述 147
6.3.1 什么是監(jiān)聽器 147
6.3.2 監(jiān)聽域?qū)ο蟮纳芷?147
6.3.3 注冊(cè)監(jiān)聽器 149
6.3.4 監(jiān)聽域?qū)ο蟮膶傩宰兏?152
6.3.5 感知被HttpSession綁定的事件監(jiān)聽器 156
6.4 本章小結(jié) 157
6.5 習(xí)題 157
第7章 EL表達(dá)式與JSTL標(biāo)準(zhǔn)標(biāo)簽庫(kù) 159
7.1 表達(dá)式語言(EL表達(dá)式) 159
7.1.1 EL的概念 160
7.1.2 EL表達(dá)式基本語法 161
7.1.3 禁用EL表達(dá)式 164
7.1.4 EL表達(dá)式中的隱式對(duì)象 165
7.2 JSTL標(biāo)準(zhǔn)標(biāo)簽庫(kù) 168
7.2.1 JSTL概念 169
7.2.2 JSTL的安裝和使用 169
7.2.3 JSTL中的Core標(biāo)簽庫(kù) 170
7.2.4 自定義標(biāo)簽庫(kù) 183
7.3 本章小結(jié) 184
7.4 習(xí)題 184
第二部分 Java Web開發(fā)框架
第8章 Spring框架基礎(chǔ) 186
8.1 Spring框架的簡(jiǎn)介 186
8.1.1 Spring框架的基本概念 186
8.1.2 在IDEA中配置Spring應(yīng)用程序 187
8.2 Spring IoC容器 190
8.2.1 Spring IoC容器概述 190
8.2.2 Spring IoC容器的設(shè)計(jì) 193
8.2.3 Spring 框架中的依賴注入 194
8.3 依賴注入的3種方式 196
8.3.1 構(gòu)造器注入 196
8.3.2 Setter注入 199
8.3.3 接口注入 200
8.4 bean的作用域 201
8.4.1 作用域的分類 201
8.4.2 singleton 202
8.4.3 prototype 204
8.5 Spring框架中bean的裝配方式 205
8.5.1 基于XML裝配bean 205
8.5.2 基于組件掃描注解裝配bean 207
8.5.3 基于注解裝配bean 209
8.5.4 基于@Autowired注解自動(dòng)裝配 211
8.6 Spring框架的AOP 214
8.6.1 AOP的概念 214
8.6.2 Spring框架中AOP環(huán)境配置 215
8.6.3 Spring框架的AOP的使用 216
8.6.4 Spring框架注解風(fēng)格的AOP開發(fā) 218
8.7 本章小結(jié) 219
8.8 習(xí)題 219
第9章 Spring MVC框架的使用 221
9.1 MVC設(shè)計(jì)模式 221
9.2 Spring MVC框架的介紹 222
9.3 Spring MVC框架的工作機(jī)制與應(yīng)用示例 223
9.3.1 Spring MVC框架的工作機(jī)制 223
9.3.2 開發(fā)一個(gè)Spring MVC框架的簡(jiǎn)單應(yīng)用程序 224
9.4 基于注解的Spring MVC框架開發(fā) 229
9.4.1 @Controller注解 229
9.4.2 @RequestMapping 注解 229
9.4.3 @SessionAttribute注解和@SessionAttributes注解 231
9.4.4 控制器方法中處理請(qǐng)求方法的參數(shù)類型 231
9.4.5 基于Spring MVC框架的注解開發(fā)示例 232
9.5 請(qǐng)求處理方法的返回類型 234
9.5.1 Model類型的使用 234
9.5.2 ModelAndView類的使用 235
9.5.3 返回類型為String類型 235
9.6 Spring MVC框架的攔截器 236
9.6.1 Spring MVC框架的攔截器使用 236
9.6.2 Spring MVC框架攔截器的執(zhí)行順序 238
9.7 Spring MVC框架的異常處理器 239
9.8 本章小結(jié) 240
9.9 習(xí)題 240
第10章 MyBatis框架的使用 243
10.1 DAO層技術(shù)簡(jiǎn)介 243
10.2 MyBatis框架概述 244
10.2.1 ORM與MyBatis 244
10.2.2 MyBatis框架的開發(fā)環(huán)境搭建 246
10.3 MyBatis框架的工作原理 246
10.4 MyBatis框架的配置與映射開發(fā) 249
10.4.1 MyBatis框架的配置文件 249
10.4.2 配置文件中的常用元素 250
10.5 XML映射文件 251
10.5.1 常用元素 251
10.5.2 <select>元素 251
10.5.3 <insert>元素 254
10.5.4 <update>元素和<delete>元素 255
10.5.5 <sql>元素 256
10.6 結(jié)果映射<result>元素 256
10.7 MyBatis框架的注解開發(fā) 258
10.7.1 常用注解 258
10.7.2 一個(gè)基于注解的示例 260
10.8 本章小結(jié) 263
10.9 習(xí)題 263
第11章 SSM整合應(yīng)用案例 265
11.1 系統(tǒng)概述 265
11.1.1 系統(tǒng)功能設(shè)計(jì) 265
11.1.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 266
11.1.3 實(shí)體類設(shè)計(jì) 266
11.2 項(xiàng)目構(gòu)建工具M(jìn)aven與SSM項(xiàng)目創(chuàng)建 267
11.2.1 Maven的使用 267
11.2.2 利用Maven創(chuàng)建SSM項(xiàng)目 269
11.2.3 配置SSM依賴 270
11.3 SSM框架整合 274
11.3.1 規(guī)劃項(xiàng)目結(jié)構(gòu) 274
11.3.2 編寫配置文件 275
11.4 MyBatis框架整合 278
11.4.1 解耦合 279
11.4.2 參數(shù)傳遞 280
11.4.3 關(guān)聯(lián)關(guān)系 282
11.4.4 動(dòng)態(tài)SQL標(biāo)簽 284
11.4.5 DAO層設(shè)計(jì) 285
11.5 Spring整合 286
11.5.1 DI 286
11.5.2 AOP 286
11.5.3 對(duì)DAO層和Service層支持 287
11.5.4 Service層設(shè)計(jì) 288
11.6 Spring MVC使用 288
11.6.1 URL映射 289
11.6.2 接收參數(shù) 290
11.6.3 轉(zhuǎn)發(fā)、重定向、響應(yīng)JSON 291
11.6.4 Controller的設(shè)計(jì) 293
11.6.5 攔截器的使用 295
11.7 JSP界面設(shè)計(jì) 296
11.8 部署項(xiàng)目 301
11.8.1 配置Tomcat容器 301
11.8.2 運(yùn)行訪問 303
11.9 本章小結(jié) 304
11.10 習(xí)題 304