本書從初學(xué)者的角度出發(fā),詳細(xì)介紹了Java Web開發(fā)需要掌握的相關(guān)技術(shù)。全書分4個(gè)部分,共17章,由淺入深地介紹了HTTP、Tomcat、Servlet、Maven、數(shù)據(jù)庫基礎(chǔ)知識(shí)、JDBC、MyBatis、JSP、框架原理、如何設(shè)計(jì)自己的框架,以及在線購書商城、個(gè)人云文件系統(tǒng)、論壇、個(gè)人博客項(xiàng)目開發(fā)的完整過程。
本書理論聯(lián)系實(shí)際,不但能讓讀者全面掌握J(rèn)ava Web開發(fā)基本技術(shù),而且能讓讀者開發(fā)出自己的Java Web框架。
本書為有一定Java基礎(chǔ)但無Java Web開發(fā)其他課程基礎(chǔ)的學(xué)習(xí)者提供了一個(gè)完整的學(xué)習(xí)路線與知識(shí)體系。
本書從零基礎(chǔ)出發(fā),提供了一個(gè)完整的學(xué)習(xí)路線與知識(shí)體系,也為有一定基礎(chǔ)的讀者利用學(xué)習(xí)本書的數(shù)個(gè)完整項(xiàng)目提升開發(fā)技能提供很大幫助,可以達(dá)到培訓(xùn)機(jī)構(gòu)和自學(xué)者的使用要求。
華南農(nóng)業(yè)大學(xué)數(shù)學(xué)與信息學(xué)院,計(jì)算機(jī)系計(jì)算機(jī)網(wǎng)絡(luò)教研室高級工程師。主講《Java程序設(shè)計(jì)》《信息安全數(shù)學(xué)基礎(chǔ)》等本科及研究生課程。主持、參與十余項(xiàng)國家、省部級項(xiàng)目。
第 一部分 Web是怎么工作的 1
第 1章 Web開發(fā)基礎(chǔ)知識(shí) 2
1.1 Web基本概念 3
1.2 通信協(xié)議 3
1.2.1 TCP/IP 4
1.2.2 DNS服務(wù) 7
1.2.3 URI和URL的區(qū)別 9
1.3 HTTP 9
1.3.1 HTTP的主要特點(diǎn) 9
1.3.2 HTTP常用請求方式 9
1.3.3 HTTP的狀態(tài) 10
1.3.4 HTTP工作原理 12
1.3.5 HTTP報(bào)文 12
1.3.6 HTTP狀態(tài)碼 14
1.4 瀏覽器與 Web服務(wù)器交互 15
1.5 本章小結(jié) 17
第 2章 使用Java進(jìn)行Web開發(fā) 18
2.1 常用Web服務(wù)器 19
2.2 Tomcat服務(wù)器 19
2.2.1 Tomcat的下載安裝 20
2.2.2 Tomcat服務(wù)器中項(xiàng)目的部署 21
2.2.3 Tomcat虛擬目錄映射 22
2.2.4 web.xml文件簡介 22
2.3 初識(shí)Servlet 24
2.3.1 Servlet簡介 24
2.3.2 第 一個(gè)Servlet程序 24
2.3.3 Servlet執(zhí)行過程 26
2.3.4 HttpServlet類 27
2.3.5 Servlet的URL路徑映射 28
2.4 Servlet的生命周期 29
2.4.1 Servlet的初始化 29
2.4.2 Servlet的銷毀 30
2.4.3 Servlet生命周期案例 30
2.5 Servlet響應(yīng)方法及對象詳解 32
2.5.1 常用的處理請求方法 32
2.5.2 HttpServletRequest對象 33
2.5.3 HttpServletResponse對象 42
2.5.4 請求轉(zhuǎn)發(fā)與重定向 45
2.5.5 Cookie對象 49
2.5.6 Session對象 54
2.5.7 ServletContext對象 63
2.5.8 ServletConfig對象 63
2.6 本章小結(jié) 64
第3章 Java Web開發(fā)工具 65
3.1 常用Java Web開發(fā)工具 66
3.2 Maven簡介 66
3.3 Maven的安裝與配置 67
3.4 在IDEA中配置Maven屬性 69
3.5 搭建Java Web項(xiàng)目框架 70
3.6 完善Java Web項(xiàng)目 74
3.6.1 編寫Servlet類 74
3.6.2 編寫JSP頁面 75
3.7 部署運(yùn)行Web應(yīng)用 75
3.8 本章小結(jié) 77
第4章 使用數(shù)據(jù)庫 78
4.1 數(shù)據(jù)庫簡介 79
4.1.1 基本概念 79
4.1.2 SQL語言概述 79
4.2 設(shè)計(jì)數(shù)據(jù)庫 82
4.3 JDBC簡介 83
4.4 使用JDBC操作數(shù)據(jù)庫 84
4.5 使用MyBatis操作數(shù)據(jù)庫 94
4.5.1 MyBatis 簡介 94
4.5.2 使用MyBatis 95
4.6 本章小結(jié) 101
第二部分 你應(yīng)該知道的語法 102
第5章 HTML基礎(chǔ)知識(shí) 103
5.1 HTML簡介 104
5.2 HTML標(biāo)簽、元素、屬性 104
5.2.1 標(biāo)簽的概念 104
5.2.2 元素的概念 104
5.2.3 屬性的概念 104
5.3 常用的標(biāo)簽 104
5.3.1 基礎(chǔ)標(biāo)簽 104
5.3.2 格式標(biāo)簽 105
5.3.3 圖像標(biāo)簽 106
5.3.4 鏈接標(biāo)簽 107
5.3.5 表單標(biāo)簽 108
5.3.6 框架標(biāo)簽 109
5.4 本章小結(jié) 110
第6章 JavaScript基礎(chǔ) 111
6.1 JavaScript簡介 112
6.2 在HTML中嵌入JavaScript 113
6.3 面向?qū)ο蟮某绦蛟O(shè)計(jì) 115
6.3.1 原型模式 115
6.3.2 繼承 117
6.4 JSON 118
6.4.1 語法 119
6.4.2 解析與序列化 119
6.5 Ajax 119
6.5.1 XMLHttpRequest對象 120
6.5.2 使用jQuery實(shí)現(xiàn)Ajax 121
6.6 本章小結(jié) 126
第7章 JSP技術(shù) 127
7.1 JSP簡介 128
7.2 第 一個(gè)JSP頁面 128
7.3 JSP語法 128
7.3.1 基本語法 128
7.3.2 聲明變量 129
7.3.3 表達(dá)式 129
7.3.4 JSP注釋 130
7.3.5 JSP指令 130
7.3.6 JSP標(biāo)簽 130
7.4 流程控制語句 131
7.4.1 判斷語句 131
7.4.2 循環(huán)語句 133
7.5 表單處理 133
7.5.1 GET方式 133
7.5.2 POST方式 133
7.5.3 JSP讀取表單數(shù)據(jù) 133
7.5.4 使用URL的GET方式實(shí)例 134
7.5.5 使用表單的GET方式實(shí)例 135
7.5.6 使用表單的POST方式實(shí)例 136
7.5.7 傳遞Checkbox數(shù)據(jù)到JSP程序 136
7.5.8 讀取所有表單參數(shù) 138
7.6 JSP隱式對象 139
7.7 EL表達(dá)式 140
7.7.1獲取數(shù)據(jù) 140
7.7.2進(jìn)行運(yùn)算 142
7.8 JSTL標(biāo)簽 144
7.8.1 通用標(biāo)簽 144
7.8.2 條件標(biāo)簽 145
7.8.3 迭代標(biāo)簽 147
7.9 分頁查詢 148
7.10 過濾器 154
7.11文件上傳與下載 163
7.11.1 文件上傳 163
7.11.2 文件下載 164
7.11.3 實(shí)踐案例 164
7.12 本章小結(jié) 168
第8章 Java注解的使用 169
8.1 注解的概念 170
8.2 注解的屬性、定義和使用 170
8.2.1 屬性 170
8.2.2 定義 170
8.2.3 使用 170
8.3 元注解 170
8.4 Java預(yù)置注解 172
8.5 注解與反射 172
8.6 注解的使用場景 172
8.7 本章小結(jié) 173
第三部分 設(shè)計(jì)我們的框架 174
第9章 EFM框架 175
9.1 IOC容器 176
9.1.1 IOC簡介 176
9.1.2 實(shí)現(xiàn)IOC的核心類 176
9.2 AOP增強(qiáng) 177
9.2.1 JDK動(dòng)態(tài)代理 177
9.2.2 CGLib動(dòng)態(tài)代理 179
9.2.3 實(shí)現(xiàn)AOP的核心類 180
9.3 Dispatcher轉(zhuǎn)發(fā)器 180
9.4 本章小結(jié) 180
第 10章 IOC特性的實(shí)現(xiàn) 181
10.1 優(yōu)化目標(biāo) 182
10.2使用IOC的原因 182
10.3 動(dòng)態(tài)加載 182
10.3.1 動(dòng)態(tài)加載的含義 182
10.3.2 動(dòng)態(tài)加載存在的不足 183
10.4 實(shí)現(xiàn)IOC特性 183
10.4.1 pom.xml配置 183
10.4.2 創(chuàng)建讀取配置文件的類ConfigUtil 185
10.4.3 創(chuàng)建獲取包下所有的類的類GetclassUtil 187
10.4.4 創(chuàng)建自定義注解 189
10.4.5 創(chuàng)建獲取類的幫助類ClassHelper 190
10.4.6 創(chuàng)建Class類與實(shí)例的映射關(guān)系 191
10.4.7 創(chuàng)建實(shí)現(xiàn)IOC的類IOCHelper 193
10.5 本章小結(jié) 194
第 11章 服務(wù)端開發(fā)優(yōu)化 195
11.1 優(yōu)化目標(biāo) 196
11.2 Servlet的優(yōu)缺點(diǎn) 196
11.3 MVC簡介 197
11.4 開發(fā)自己的MVC 197
11.4.1 創(chuàng)建返回類型ModelAndView 197
11.4.2 創(chuàng)建注解 198
11.4.3 創(chuàng)建注入?yún)?shù)類ParamUtil 200
11.5 測試MVC 203
11.6 本章小結(jié) 205
第 12章 類動(dòng)態(tài)增強(qiáng) 206
12.1 AOP簡介 207
12.1.1 AOP的含義 207
12.1.2 AOP的主要功能 207
12.1.3 AOP的主要意圖 207
12.1.4 AOP和OOP的區(qū)別 207
12.1.5 AOP的具體應(yīng)用 208
12.1.6 AOP的事務(wù)代理的實(shí)例 208
12.2 實(shí)現(xiàn)AOP特性 210
12.2.1 創(chuàng)建注解 210
12.2.2 創(chuàng)建增強(qiáng)抽象類AbstractProxy 210
12.2.3 創(chuàng)建實(shí)現(xiàn)代理的類ProxyUtil 210
12.2.4 動(dòng)態(tài)代理實(shí)現(xiàn) 212
12.3 本章小結(jié) 213
第四部分 使用我們的框架 214
第 13章 框架的調(diào)用方法 215
13.1 把框架導(dǎo)入本地倉庫 216
13.2 創(chuàng)建新工程并調(diào)用 216
13.3 本章小結(jié) 220
第 14章 在線購書商城 221
14.1 需求分析 222
14.1.1 背景 222
14.1.2 系統(tǒng)功能 222
14.1.3 基本要求 222
14.2 詳細(xì)設(shè)計(jì) 222
14.2.1 總述 223
14.2.2 功能模塊 223
14.2.3 模塊關(guān)系 224
14.2.4 主要功能的實(shí)現(xiàn) 224
14.2.5 項(xiàng)目的配置 224
14.3 功能實(shí)現(xiàn) 227
14.3.1 登錄功能 228
14.3.2 搜索功能 232
14.3.3 付款功能 237
14.4 本章小結(jié) 242
第 15章 個(gè)人云文件系統(tǒng) 243
15.1 需求分析 244
15.2 詳細(xì)設(shè)計(jì) 244
15.3 功能實(shí)現(xiàn) 245
15.3.1 Util類 245
15.3.2 DAO層 245
15.3.3 Service層 245
15.3.4 Controller層 246
15.4 測試圖片 249
15.5 本章小結(jié) 251
第 16章 論壇 252
16.1 需求分析 253
16.2 詳細(xì)設(shè)計(jì) 253
16.3 功能實(shí)現(xiàn) 255
16.3.1 項(xiàng)目的配置 255
16.3.2 功能實(shí)現(xiàn) 255
16.3.3 用戶管理 256
16.3.4 板塊管理 257
16.3.5 主題與回復(fù)管理 258
16.5 本章小結(jié) 259
第 17章 個(gè)人博客 260
17.1 需求分析 261
17.2 詳細(xì)設(shè)計(jì) 261
17.3 功能實(shí)現(xiàn) 262
17.4 界面與測試 276
17.5 本章小結(jié) 279