自20世紀(jì)以來,互聯(lián)網(wǎng)的發(fā)展已經(jīng)堪稱日新月異,人們的工作、生活、學(xué)習(xí)等各個方面越來越離不開互聯(lián)網(wǎng)Web應(yīng)用。Java Web是Web應(yīng)用中成熟度高、普及率高、適用性廣的開源技術(shù),幾乎所有Web應(yīng)用程序都需要具備Java Web技術(shù)能力。本書詳解Java Web開發(fā)技術(shù),配套示例源碼、PPT課件與答疑服務(wù)。
本書分為5篇,共17章。第1篇介紹Web開發(fā)與Java Web開發(fā),包括體系結(jié)構(gòu)、相關(guān)技術(shù)、開發(fā)環(huán)境等;第2篇介紹JSP語言基礎(chǔ),包括JSP的基本概念、JSP指令、JSP動作、JSP注釋、JSP內(nèi)置對象、JavaBean技術(shù)、Servlet技術(shù)、Servlet過濾器、Servlet監(jiān)聽器;第3篇介紹Java Web整合開發(fā),包括數(shù)據(jù)庫基礎(chǔ)以及Java Web操作數(shù)據(jù)庫實(shí)踐、EL動態(tài)網(wǎng)頁交互表達(dá)式語言、JSTL標(biāo)簽語言、Ajax整合技術(shù);第4篇介紹SSM框架,包括Spring IoC、Spring AOP、MyBatis、Spring MVC的入門介紹,最后基于框架實(shí)現(xiàn)整合開發(fā);第5篇介紹項(xiàng)目實(shí)戰(zhàn),包括基于SSM的學(xué)生信息管理系統(tǒng)的項(xiàng)目開發(fā)實(shí)戰(zhàn)。
本書內(nèi)容翔實(shí)、示例豐富,適合Java Web開發(fā)初學(xué)者、Web開發(fā)工程師,同時也非常適合作為高等院校計(jì)算機(jī)及相關(guān)專業(yè)的教材或教學(xué)參考書。
? 詳解JSP、JavaBean、Servlet、JDBC、EL、JSTL、Ajax、SSM框架、Spring IoC、Spring AOP、MyBatis、Spring MVC、SSM框架整合等技術(shù)
? 剖析基于SSM框架的學(xué)生信息管理系統(tǒng)項(xiàng)目的完整開發(fā)過程
? 配套全書示例源碼、PPT課件、作者答疑服務(wù)
你還沒有接觸過Java Web嗎
作為全球備受矚目的圈子,金融圈一直是富人的標(biāo)簽。而作為推進(jìn)Web技術(shù)成熟的框架,Java Web也一致備受寵愛。但是你可能不知道,Java Web技術(shù)一直備受金融圈推崇。
全球金融圈都在用Java Web技術(shù),要不要學(xué),你說了算!
BAT三巨頭早就跨入Java Web行列
Java Web在國際上備受矚目,在國內(nèi)的發(fā)展達(dá)到了空前的高度,以BAT三巨頭為例,它們早早就把Java Web應(yīng)用到現(xiàn)實(shí)的開發(fā)領(lǐng)域中了,尤其是我們常用的淘寶、百度、京東等應(yīng)用。
還不知道BAT是什么?百度、阿里巴巴、騰訊應(yīng)該都知道吧。
Java Web的發(fā)展歷程:開發(fā)越來越簡單,效果越來越好
隨著Java Web技術(shù)的迭代,功能更全面,獨(dú)立性、并發(fā)性、簡便性更強(qiáng),同時開源框架Spring的不斷完善,也極大地推動了Java Web技術(shù)體系的成熟。本書詳細(xì)介紹Java Web技術(shù)體系,并通過實(shí)戰(zhàn)示例讓讀者精通它們。
開源框架的推進(jìn)是市場對Java Web認(rèn)可的最好說明。
本書真的適合你嗎
本書帶領(lǐng)你學(xué)習(xí)從Web開發(fā)理論到實(shí)踐的綜合運(yùn)用;本書提供現(xiàn)實(shí)生活中的應(yīng)用,包括客戶端應(yīng)用和服務(wù)端應(yīng)用;本書從現(xiàn)實(shí)的表單使用場景出發(fā),解決低版本瀏覽器的兼容問題;本書介紹各種開源、成熟、優(yōu)秀的框架的學(xué)習(xí)和使用;本書總結(jié)了作者自己實(shí)際應(yīng)用的經(jīng)驗(yàn)和心得。
怕入門難?這本書沒有基礎(chǔ)的人員都能學(xué)習(xí);怕實(shí)踐難?只要認(rèn)真學(xué)習(xí)完本書中的案例,就有一定開發(fā)經(jīng)驗(yàn)的積累。
本書內(nèi)容
本書分為5篇,共17章。第1篇介紹Web開發(fā)與Java Web開發(fā),包括體系結(jié)構(gòu)、相關(guān)技術(shù)、開發(fā)環(huán)境等;第2篇介紹JSP語言基礎(chǔ),包括JSP的基本概念、JSP的指令、JSP的動作、JSP的注釋、JSP的內(nèi)置對象、JavaBean技術(shù)、Servlet技術(shù)、Servlet過濾器、Servlet監(jiān)聽器等,并且在每個模塊最后都提供實(shí)戰(zhàn)例子;第3篇介紹Java Web整合開發(fā),包括JDBC以及Java Web操作數(shù)據(jù)庫實(shí)踐、EL表達(dá)式語言、JSTL標(biāo)簽語言、Ajax整合技術(shù)等,這部分主要介紹JSP技術(shù)的進(jìn)階,由靜態(tài)網(wǎng)頁向動態(tài)頁面轉(zhuǎn)變;第4篇介紹SSM框架,包括Spring IoC、Spring AOP、MyBatis、Spring MVC的入門介紹,最后基于框架實(shí)現(xiàn)整合開發(fā);第5篇介紹項(xiàng)目實(shí)戰(zhàn),包括基于SSM的學(xué)生信息管理系統(tǒng)的需求分析、項(xiàng)目設(shè)計(jì)、開發(fā)測試等項(xiàng)目開發(fā)整體流程實(shí)戰(zhàn)。
本書特點(diǎn)
本書有如下特點(diǎn):
(1)實(shí)戰(zhàn)出發(fā),講解細(xì)致。本書不論是理論知識的介紹,還是實(shí)例的開發(fā),都是從項(xiàng)目實(shí)戰(zhàn)的角度出發(fā),精心選擇開發(fā)中的典型例子,講解細(xì)致,分析透徹。
(2)深入淺出,輕松易學(xué)。以實(shí)例為主線,激發(fā)讀者的閱讀興趣,讓讀者能夠真正學(xué)習(xí)到Java Web開發(fā)中最實(shí)用、最前沿的技術(shù)。
(3)技術(shù)新穎,與時俱進(jìn)。結(jié)合早期技術(shù)和時下最熱門的技術(shù)的分析對比,講解Web開發(fā)框架的進(jìn)階與完善,從而全面、準(zhǔn)確地了解Web技術(shù)的發(fā)展歷程以及它在市場中的優(yōu)勢與前景。
(4)貼近讀者,貼近實(shí)際。提供大量成熟的第三方組件和框架的使用和說明,幫助讀者快速找到問題的最優(yōu)解決方案,書中很多實(shí)例來自作者工作實(shí)踐。
(5)貼心提醒,理解要點(diǎn)。本書根據(jù)需要在各章使用了很多注意的小提示,讓讀者可以在學(xué)習(xí)過程中更輕松地理解相關(guān)知識點(diǎn)及概念。
資源下載
本書配套示例源碼、PPT課件,需要使用微信掃描右側(cè)的二維碼獲取。閱讀過程中如果發(fā)現(xiàn)問題或者疑問,請郵件聯(lián)系booksaga@163.com,郵件主題寫Java Web開發(fā)從0到1。
本書讀者
? Java Web開發(fā)初學(xué)者。
? Java開發(fā)工程師。
? 高等院校相關(guān)專業(yè)的學(xué)生。
? 培訓(xùn)學(xué)校的學(xué)員。
? Web前端開發(fā)工程師。
? 大數(shù)據(jù)開發(fā)工程師(軟件應(yīng)用方向)。
作 者
2023年3月
王樹生,計(jì)算機(jī)專業(yè)碩士,高級Java開發(fā)工程師。有十余年開發(fā)經(jīng)驗(yàn),主要從事Java Web開發(fā)、Android開發(fā)、數(shù)據(jù)倉庫開發(fā)、ETL開發(fā)等工作。對于Java Web主流框架和大數(shù)據(jù)開發(fā)有豐富的項(xiàng)目實(shí)踐經(jīng)驗(yàn),主導(dǎo)開發(fā)的項(xiàng)目有社保系統(tǒng)、績效系統(tǒng)、營銷管理系統(tǒng)和客戶管理系統(tǒng)。
第1篇 Web開發(fā)與Java Web開發(fā)
第1章 Java Web應(yīng)用開發(fā)概述 3
1.1 程序開發(fā)體系結(jié)構(gòu) 3
1.1.1 C/S體系結(jié)構(gòu)介紹 3
1.1.2 B/S體系結(jié)構(gòu)介紹 4
1.1.3 兩種體系結(jié)構(gòu)的比較 4
1.2 Web應(yīng)用程序的工作原理 5
1.3 Web應(yīng)用技術(shù) 6
1.3.1 客戶端應(yīng)用技術(shù) 6
1.3.2 服務(wù)端應(yīng)用技術(shù) 7
1.4 Java Web應(yīng)用的開發(fā)環(huán)境 7
1.4.1 下載JDK 8
1.4.2 安裝JDK并配置環(huán)境變量 8
1.4.3 驗(yàn)證JDK 8
1.5 Tomcat的安裝與配置 9
1.5.1 下載Tomcat 9
1.5.2 Tomcat的目錄結(jié)構(gòu) 10
1.5.3 修改Tomcat的默認(rèn)端口 11
1.5.4 Tomcat控制臺管理 12
1.5.5 部署Web應(yīng)用 12
1.6 IDEA的下載與使用 13
1.6.1 IDEA的下載與安裝 14
1.6.2 啟動IDEA 14
1.6.3 IDEA工作臺 15
1.6.4 使用IDEA開發(fā)Web應(yīng)用HelloWorld 15
1.7 實(shí)踐與練習(xí) 21
第2篇 JSP語言基礎(chǔ)
第2章 JSP的基本語法 25
2.1 了解JSP頁面 25
2.1.1 JSP的概念 25
2.1.2 第一個JSP頁面 26
2.1.3 JSP的執(zhí)行原理 27
2.2 指令標(biāo)識 30
2.2.1 page指令 30
2.2.2 include指令 31
2.2.3 taglib指令 32
2.3 腳本標(biāo)識 32
2.3.1 JSP表達(dá)式 33
2.3.2 聲明標(biāo)識 33
2.3.3 腳本程序/代碼片段 33
2.4 JSP注釋 34
2.4.1 HTML中的注釋 34
2.4.2 帶有JSP表達(dá)式的注釋 35
2.4.3 隱藏注釋 35
2.4.4 腳本程序中的注釋 36
2.5 動作標(biāo)識 37
2.5.1 包含文件標(biāo)識 38
2.5.2 請求轉(zhuǎn)發(fā)標(biāo)識 39
2.5.3 傳遞參數(shù)標(biāo)識 40
2.6 實(shí)踐與練習(xí) 41
第3章 JSP內(nèi)置對象 42
3.1 JSP內(nèi)置對象概述 42
3.2 request對象 43
3.2.1 訪問請求參數(shù) 43
3.2.2 在作用域中管理屬性 44
3.2.3 獲取Cookie 44
3.2.4 獲取客戶端信息 45
3.2.5 顯示國際化信息 46
3.3 response對象 47
3.3.1 重定向網(wǎng)頁 47
3.3.2 處理HTTP文件頭 48
3.3.3 設(shè)置輸出緩沖區(qū) 48
3.3.4 轉(zhuǎn)發(fā)和重定向 49
3.4 session對象 49
3.4.1 創(chuàng)建及獲取客戶的會話 49
3.4.2 從會話中移除指定的綁定對象 50
3.4.3 銷毀會話 51
3.4.4 會話超時的管理 51
3.4.5 session對象的應(yīng)用 51
3.5 application對象 52
3.5.1 訪問應(yīng)用程序初始化參數(shù) 53
3.5.2 管理應(yīng)用程序環(huán)境屬性 53
3.5.3 session對象和application對象的比較 54
3.6 out對象 54
3.6.1 向客戶端輸出數(shù)據(jù) 54
3.6.2 管理輸出緩沖區(qū) 55
3.7 其他內(nèi)置對象 55
3.7.1 獲取會話范圍的pageContext對象 55
3.7.2 讀取web.xml配置信息的config對象 57
3.7.3 應(yīng)答或請求的page對象 58
3.7.4 獲取異常信息的exception對象 58
3.8 實(shí)踐與練習(xí) 59
第4章 JavaBean技術(shù) 60
4.1 JavaBean介紹 60
4.1.1 JavaBean概述 60
4.1.2 JavaBean的種類 61
4.1.3 JavaBean的規(guī)范 61
4.2 JavaBean的應(yīng)用 62
4.2.1 在JSP中訪問JavaBean 62
4.2.2 獲取JavaBean的屬性信息 64
4.2.3 給JavaBean屬性賦值 64
4.3 在JSP中應(yīng)用JavaBean 66
4.3.1 解決中文亂碼的JavaBean 66
4.3.2 在JSP頁面中用來顯示時間的JavaBean 67
4.3.3 數(shù)組轉(zhuǎn)換成字符串 68
4.4 實(shí)踐與練習(xí) 70
第5章 Servlet技術(shù) 72
5.1 Servlet基礎(chǔ) 73
5.1.1 Servlet的體系結(jié)構(gòu) 73
5.1.2 Servlet的技術(shù)特點(diǎn) 73
5.1.3 Servlet與JSP的區(qū)別 74
5.1.4 Servlet代碼結(jié)構(gòu) 74
5.2 開發(fā)Servlet程序 75
5.2.1 Servlet的創(chuàng)建 75
5.2.2 Servlet的配置 76
5.3 Servlet API 編程常用的接口和類 76
5.3.1 Servlet接口 76
5.3.2 ServletConfig接口 77
5.3.3 HttpServletRequest接口 78
5.3.4 HttpServletResponse接口 79
5.3.5 GenericServlet類 81
5.3.6 HttpServlet類 82
5.4 實(shí)踐與練習(xí) 82
第6章 過濾器和監(jiān)聽器 83
6.1 Servlet過濾器 83
6.1.1 什么是過濾器 83
6.1.2 過濾器的核心對象 84
6.1.3 過濾器的創(chuàng)建與配置 84
6.1.4 字符編碼過濾器 86
6.2 Servlet監(jiān)聽器 86
6.2.1 Servlet監(jiān)聽器簡介 86
6.2.2 Servlet監(jiān)聽器的原理 87
6.2.3 Servlet上下文監(jiān)聽器 87
6.2.4 HTTP會話監(jiān)聽 88
6.2.5 Servlet請求監(jiān)聽 89
6.2.6 AsyncListener異步監(jiān)聽 90
6.2.7 應(yīng)用Servlet監(jiān)聽器統(tǒng)計(jì)在線人數(shù) 90
6.3 Servlet的高級特性 94
6.3.1 使用注解 94
6.3.2 對文件上傳的支持 95
6.3.3 異步處理 97
6.3.4 可插性支持Web模塊化 100
6.4 實(shí)踐與練習(xí) 101
第3篇 Java Web整合開發(fā)
第7章 Java Web的數(shù)據(jù)庫操作 105
7.1 JDBC技術(shù) 105
7.1.1 JDBC簡介 105
7.1.2 安裝MySQL數(shù)據(jù)庫 107
7.1.3 JDBC連接數(shù)據(jù)庫的過程 107
7.2 JDBC API 108
7.2.1 DriverManager類 109
7.2.2 Connection接口 109
7.2.3 Statement接口 110
7.2.4 PreparedStatement接口 111
7.2.5 ResultSet接口 111
7.3 JDBC操作數(shù)據(jù)庫 114
7.3.1 添加數(shù)據(jù) 114
7.3.2 查詢數(shù)據(jù) 115
7.3.3 修改數(shù)據(jù) 116
7.3.4 刪除數(shù)據(jù) 116
7.3.5 批處理 117
7.3.6 調(diào)用存儲過程 118
7.4 JDBC在Java Web中的應(yīng)用 119
7.4.1 開發(fā)模式 119
7.4.2 分頁查詢 121
7.5 常見分頁功能的實(shí)現(xiàn) 121
7.5.1 創(chuàng)建JavaBean實(shí)體 121
7.5.2 創(chuàng)建PageModel分頁 122
7.5.3 JDBC查詢數(shù)據(jù)庫并分頁 124
7.5.4 Servlet控制分頁邏輯 125
7.5.5 JSP展示效果 126
7.5.6 執(zhí)行結(jié)果 128
7.6 實(shí)踐與練習(xí) 128
第8章 EL表達(dá)式語言 129
8.1 EL概述 129
8.1.1 EL的基本語法 129
8.1.2 EL的特點(diǎn) 129
8.2 與低版本的環(huán)境兼容禁用EL 130
8.2.1 禁用EL的方法 130
8.2.2 禁用EL總結(jié) 130
8.3 標(biāo)識符和保留的關(guān)鍵字 131
8.3.1 EL標(biāo)識符 131
8.3.2 EL保留字 131
8.4 EL的運(yùn)算符及優(yōu)先級 131
8.4.1 通過EL訪問數(shù)據(jù) 131
8.4.2 在EL中進(jìn)行算術(shù)運(yùn)算 133
8.4.3 在EL中判斷對象是否為空 134
8.4.4 在EL中進(jìn)行邏輯關(guān)系運(yùn)算 134
8.4.5 在EL中進(jìn)行條件運(yùn)算 135
8.5 EL的隱含對象 136
8.5.1 頁面上下文對象 136
8.5.2 訪問作用域范圍的隱含對象 136
8.5.3 訪問環(huán)境信息的隱含對象 137
8.6 定義和使用EL函數(shù) 137
8.7 實(shí)踐與練習(xí) 139
第9章 JSTL標(biāo)簽 140
9.1 JSTL標(biāo)簽庫簡介 140
9.2 JSTL的配置 140
9.3 表達(dá)式標(biāo)簽 141
9.3.1 輸出標(biāo)簽 141
9.3.2 變量設(shè)置標(biāo)簽 142
9.3.3 變量移除標(biāo)簽 143
9.3.4 捕獲異常標(biāo)簽 143
9.4 URL相關(guān)標(biāo)簽 144
9.4.1 導(dǎo)入標(biāo)簽 144
9.4.2 動態(tài)生成URL標(biāo)簽 145
9.4.3 重定向標(biāo)簽 145
9.5 流程控制標(biāo)簽 146
9.5.1 條件判斷標(biāo)簽 146
9.5.2 條件選擇標(biāo)簽 147
9.5.3 條件測試標(biāo)簽 147
9.5.4 其他條件標(biāo)簽 147
9.5.5 流程控制小結(jié) 147
9.6 循環(huán)標(biāo)簽 148
9.6.1 循環(huán)標(biāo)簽 148
9.6.2 迭代標(biāo)簽 149
9.7 實(shí)踐與練習(xí) 150
第10章 Ajax技術(shù) 151
10.1 Ajax 技術(shù)概述 151
10.2 Ajax開發(fā)模式與傳統(tǒng)開發(fā)模式的比較 152
10.3 Ajax使用的技術(shù) 153
10.4 使用XMLHttpRequest對象 153
10.4.1 初始化XMLHttpRequest對象 153
10.4.2 XMLHttpRequest對象的常用方法 154
10.4.3 XMLHttpRequest對象的常用屬性 156
10.5 與服務(wù)器通信發(fā)送請求與處理響應(yīng) 157
10.5.1 發(fā)送請求 157
10.5.2 處理服務(wù)器響應(yīng) 158
10.5.3 一個完整的實(shí)例檢測用戶名是否唯一 159
10.6 解決中文亂碼問題 163
10.6.1 發(fā)送請求時出現(xiàn)中文亂碼 163
10.6.2 獲取服務(wù)器的響應(yīng)結(jié)果時出現(xiàn)中文亂碼 164
10.7 Ajax重構(gòu) 164
10.7.1 Ajax重構(gòu)的步驟 164
10.7.2 應(yīng)用Ajax重構(gòu)實(shí)現(xiàn)實(shí)時顯示信息 166
10.8 Ajax常用實(shí)例 167
10.8.1 級聯(lián)下拉列表 167
10.8.2 顯示進(jìn)度條 171
10.9 實(shí)踐與練習(xí) 174
第4篇 SSM框架
第11章 Spring核心之IoC 177
11.1 Spring概述 177
11.1.1 初識Spring 178
11.1.2 Spring的獲取 179
11.1.3 簡單配置Spring 180
11.1.4 使用BeanFactory管理Bean 182
11.1.5 注解配置 183
11.2 依賴注入 183
11.2.1 什么是控制反轉(zhuǎn)與依賴注入 183
11.2.2 Bean的配置 184
11.2.3 Setter注入 185
11.2.4 構(gòu)造器注入 185
11.2.5 引用其他的Bean 185
11.2.6 匿名內(nèi)部JavaBean的創(chuàng)建 186
11.3 自動裝配 186
11.3.1 按Bean名稱裝配 186
11.3.2 按Bean類型裝配 187
11.3.3 自動裝配的其他方式 187
11.4 Bean的作用域 187
11.4.1 Singleton的作用域 188
11.4.2 Prototype的作用域 188
11.5 Bean的初始化與銷毀 189
11.5.1 自定義初始化和銷毀方法 190
11.5.2 實(shí)現(xiàn)InitializingBean和DisposableBean接口 192
11.5.3 實(shí)現(xiàn)Spring提供的BeanPostProcessor接口 193
11.6 屬性編輯器 195
11.6.1 內(nèi)置屬性編輯器 195
11.6.2 自定義屬性編輯器 195
11.7 實(shí)踐與練習(xí) 198
第12章 Spring核心之AOP 199
12.1 AOP概述 199
12.1.1 了解AOP 199
12.1.2 Spring AOP的簡單實(shí)現(xiàn) 201
12.2 Spring的切入點(diǎn) 203
12.2.1 靜態(tài)切入點(diǎn)與動態(tài)切入點(diǎn) 203
12.2.2 深入靜態(tài)切入點(diǎn) 203
12.2.3 深入切入點(diǎn)底層 205
12.2.4 Spring中的其他切入點(diǎn) 206
12.3 Aspect對AOP的支持 206
12.3.1 了解Aspect 206
12.3.2 基于XML配置的AOP實(shí)現(xiàn) 207
12.3.3 基于注解的AOP實(shí)現(xiàn) 209
12.4 Spring持久化 212
12.4.1 DAO模式介紹 212
12.4.2 Spring的DAO理念 212
12.4.3 事務(wù)應(yīng)用的管理 216
12.4.4 應(yīng)用JdbcTemplate操作數(shù)據(jù)庫 217
12.5 實(shí)踐與練習(xí) 219
第13章 MyBatis技術(shù) 220
13.1 MyBatis概述 220
13.1.1 框架 220
13.1.2 ORM框架 220
13.1.3 MyBatis介紹 221
13.1.4 MyBatis的下載和使用 222
13.1.5 MyBatis的工作原理 222
13.2 MyBatis入門程序 224
13.2.1 環(huán)境搭建 224
13.2.2 根據(jù)id查詢用戶 229
13.2.3 添加用戶 230
13.2.4 根據(jù)名稱模糊查詢用戶 230
13.2.5 修改用戶 231
13.2.6 刪除用戶 232
13.3 MyBatis的核心對象 232
13.3.1 SqlSessionFactoryBuilder 233
13.3.2 SqlSessionFactory 233
13.3.3 SqlSession 234
13.4 MyBatis配置文件元素 234
13.4.1 元素 235
13.4.2 元素 235
13.4.3 元素 236
13.4.4 元素 237
13.4.5 元素 238
13.4.6 元素 238
13.4.7 元素 239
13.4.8 元素 240
13.5 映射文件 240
13.5.1