自20世紀以來,互聯(lián)網(wǎng)的發(fā)展已經(jīng)堪稱日新月異,人們的工作、生活、學習等各個方面越來越離不開互聯(lián)網(wǎng)Web應用。Java Web是Web應用中成熟度高、普及率高、適用性廣的開源技術,幾乎所有Web應用程序都需要具備Java Web技術能力。本書詳解Java Web開發(fā)技術,配套示例源碼、PPT課件與答疑服務。
本書分為5篇,共17章。第1篇介紹Web開發(fā)與Java Web開發(fā),包括體系結(jié)構(gòu)、相關技術、開發(fā)環(huán)境等;第2篇介紹JSP語言基礎,包括JSP的基本概念、JSP指令、JSP動作、JSP注釋、JSP內(nèi)置對象、JavaBean技術、Servlet技術、Servlet過濾器、Servlet監(jiān)聽器;第3篇介紹Java Web整合開發(fā),包括數(shù)據(jù)庫基礎以及Java Web操作數(shù)據(jù)庫實踐、EL動態(tài)網(wǎng)頁交互表達式語言、JSTL標簽語言、Ajax整合技術;第4篇介紹SSM框架,包括Spring IoC、Spring AOP、MyBatis、Spring MVC的入門介紹,最后基于框架實現(xiàn)整合開發(fā);第5篇介紹項目實戰(zhàn),包括基于SSM的學生信息管理系統(tǒng)的項目開發(fā)實戰(zhàn)。
本書內(nèi)容翔實、示例豐富,適合Java Web開發(fā)初學者、Web開發(fā)工程師,同時也非常適合作為高等院校計算機及相關專業(yè)的教材或教學參考書。
? 詳解JSP、JavaBean、Servlet、JDBC、EL、JSTL、Ajax、SSM框架、Spring IoC、Spring AOP、MyBatis、Spring MVC、SSM框架整合等技術
? 剖析基于SSM框架的學生信息管理系統(tǒng)項目的完整開發(fā)過程
? 配套全書示例源碼、PPT課件、作者答疑服務
你還沒有接觸過Java Web嗎
作為全球備受矚目的圈子,金融圈一直是富人的標簽。而作為推進Web技術成熟的框架,Java Web也一致備受寵愛。但是你可能不知道,Java Web技術一直備受金融圈推崇。
全球金融圈都在用Java Web技術,要不要學,你說了算!
BAT三巨頭早就跨入Java Web行列
Java Web在國際上備受矚目,在國內(nèi)的發(fā)展達到了空前的高度,以BAT三巨頭為例,它們早早就把Java Web應用到現(xiàn)實的開發(fā)領域中了,尤其是我們常用的淘寶、百度、京東等應用。
還不知道BAT是什么?百度、阿里巴巴、騰訊應該都知道吧。
Java Web的發(fā)展歷程:開發(fā)越來越簡單,效果越來越好
隨著Java Web技術的迭代,功能更全面,獨立性、并發(fā)性、簡便性更強,同時開源框架Spring的不斷完善,也極大地推動了Java Web技術體系的成熟。本書詳細介紹Java Web技術體系,并通過實戰(zhàn)示例讓讀者精通它們。
開源框架的推進是市場對Java Web認可的最好說明。
本書真的適合你嗎
本書帶領你學習從Web開發(fā)理論到實踐的綜合運用;本書提供現(xiàn)實生活中的應用,包括客戶端應用和服務端應用;本書從現(xiàn)實的表單使用場景出發(fā),解決低版本瀏覽器的兼容問題;本書介紹各種開源、成熟、優(yōu)秀的框架的學習和使用;本書總結(jié)了作者自己實際應用的經(jīng)驗和心得。
怕入門難?這本書沒有基礎的人員都能學習;怕實踐難?只要認真學習完本書中的案例,就有一定開發(fā)經(jīng)驗的積累。
本書內(nèi)容
本書分為5篇,共17章。第1篇介紹Web開發(fā)與Java Web開發(fā),包括體系結(jié)構(gòu)、相關技術、開發(fā)環(huán)境等;第2篇介紹JSP語言基礎,包括JSP的基本概念、JSP的指令、JSP的動作、JSP的注釋、JSP的內(nèi)置對象、JavaBean技術、Servlet技術、Servlet過濾器、Servlet監(jiān)聽器等,并且在每個模塊最后都提供實戰(zhàn)例子;第3篇介紹Java Web整合開發(fā),包括JDBC以及Java Web操作數(shù)據(jù)庫實踐、EL表達式語言、JSTL標簽語言、Ajax整合技術等,這部分主要介紹JSP技術的進階,由靜態(tài)網(wǎng)頁向動態(tài)頁面轉(zhuǎn)變;第4篇介紹SSM框架,包括Spring IoC、Spring AOP、MyBatis、Spring MVC的入門介紹,最后基于框架實現(xiàn)整合開發(fā);第5篇介紹項目實戰(zhàn),包括基于SSM的學生信息管理系統(tǒng)的需求分析、項目設計、開發(fā)測試等項目開發(fā)整體流程實戰(zhàn)。
本書特點
本書有如下特點:
(1)實戰(zhàn)出發(fā),講解細致。本書不論是理論知識的介紹,還是實例的開發(fā),都是從項目實戰(zhàn)的角度出發(fā),精心選擇開發(fā)中的典型例子,講解細致,分析透徹。
(2)深入淺出,輕松易學。以實例為主線,激發(fā)讀者的閱讀興趣,讓讀者能夠真正學習到Java Web開發(fā)中最實用、最前沿的技術。
(3)技術新穎,與時俱進。結(jié)合早期技術和時下最熱門的技術的分析對比,講解Web開發(fā)框架的進階與完善,從而全面、準確地了解Web技術的發(fā)展歷程以及它在市場中的優(yōu)勢與前景。
(4)貼近讀者,貼近實際。提供大量成熟的第三方組件和框架的使用和說明,幫助讀者快速找到問題的最優(yōu)解決方案,書中很多實例來自作者工作實踐。
(5)貼心提醒,理解要點。本書根據(jù)需要在各章使用了很多注意的小提示,讓讀者可以在學習過程中更輕松地理解相關知識點及概念。
資源下載
本書配套示例源碼、PPT課件,需要使用微信掃描右側(cè)的二維碼獲取。閱讀過程中如果發(fā)現(xiàn)問題或者疑問,請郵件聯(lián)系booksaga@163.com,郵件主題寫Java Web開發(fā)從0到1。
本書讀者
? Java Web開發(fā)初學者。
? Java開發(fā)工程師。
? 高等院校相關專業(yè)的學生。
? 培訓學校的學員。
? Web前端開發(fā)工程師。
? 大數(shù)據(jù)開發(fā)工程師(軟件應用方向)。
作 者
2023年3月
王樹生,計算機專業(yè)碩士,高級Java開發(fā)工程師。有十余年開發(fā)經(jīng)驗,主要從事Java Web開發(fā)、Android開發(fā)、數(shù)據(jù)倉庫開發(fā)、ETL開發(fā)等工作。對于Java Web主流框架和大數(shù)據(jù)開發(fā)有豐富的項目實踐經(jīng)驗,主導開發(fā)的項目有社保系統(tǒng)、績效系統(tǒng)、營銷管理系統(tǒng)和客戶管理系統(tǒng)。
第1篇 Web開發(fā)與Java Web開發(fā)
第1章 Java Web應用開發(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應用程序的工作原理 5
1.3 Web應用技術 6
1.3.1 客戶端應用技術 6
1.3.2 服務端應用技術 7
1.4 Java Web應用的開發(fā)環(huán)境 7
1.4.1 下載JDK 8
1.4.2 安裝JDK并配置環(huán)境變量 8
1.4.3 驗證JDK 8
1.5 Tomcat的安裝與配置 9
1.5.1 下載Tomcat 9
1.5.2 Tomcat的目錄結(jié)構(gòu) 10
1.5.3 修改Tomcat的默認端口 11
1.5.4 Tomcat控制臺管理 12
1.5.5 部署Web應用 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應用HelloWorld 15
1.7 實踐與練習 21
第2篇 JSP語言基礎
第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 指令標識 30
2.2.1 page指令 30
2.2.2 include指令 31
2.2.3 taglib指令 32
2.3 腳本標識 32
2.3.1 JSP表達式 33
2.3.2 聲明標識 33
2.3.3 腳本程序/代碼片段 33
2.4 JSP注釋 34
2.4.1 HTML中的注釋 34
2.4.2 帶有JSP表達式的注釋 35
2.4.3 隱藏注釋 35
2.4.4 腳本程序中的注釋 36
2.5 動作標識 37
2.5.1 包含文件標識 38
2.5.2 請求轉(zhuǎn)發(fā)標識 39
2.5.3 傳遞參數(shù)標識 40
2.6 實踐與練習 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 設置輸出緩沖區(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對象的應用 51
3.5 application對象 52
3.5.1 訪問應用程序初始化參數(shù) 53
3.5.2 管理應用程序環(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 應答或請求的page對象 58
3.7.4 獲取異常信息的exception對象 58
3.8 實踐與練習 59
第4章 JavaBean技術 60
4.1 JavaBean介紹 60
4.1.1 JavaBean概述 60
4.1.2 JavaBean的種類 61
4.1.3 JavaBean的規(guī)范 61
4.2 JavaBean的應用 62
4.2.1 在JSP中訪問JavaBean 62
4.2.2 獲取JavaBean的屬性信息 64
4.2.3 給JavaBean屬性賦值 64
4.3 在JSP中應用JavaBean 66
4.3.1 解決中文亂碼的JavaBean 66
4.3.2 在JSP頁面中用來顯示時間的JavaBean 67
4.3.3 數(shù)組轉(zhuǎn)換成字符串 68
4.4 實踐與練習 70
第5章 Servlet技術 72
5.1 Servlet基礎 73
5.1.1 Servlet的體系結(jié)構(gòu) 73
5.1.2 Servlet的技術特點 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 實踐與練習 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 應用Servlet監(jiān)聽器統(tǒng)計在線人數(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 實踐與練習 101
第3篇 Java Web整合開發(fā)
第7章 Java Web的數(shù)據(jù)庫操作 105
7.1 JDBC技術 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中的應用 119
7.4.1 開發(fā)模式 119
7.4.2 分頁查詢 121
7.5 常見分頁功能的實現(xiàn) 121
7.5.1 創(chuàng)建JavaBean實體 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 實踐與練習 128
第8章 EL表達式語言 129
8.1 EL概述 129
8.1.1 EL的基本語法 129
8.1.2 EL的特點 129
8.2 與低版本的環(huán)境兼容禁用EL 130
8.2.1 禁用EL的方法 130
8.2.2 禁用EL總結(jié) 130
8.3 標識符和保留的關鍵字 131
8.3.1 EL標識符 131
8.3.2 EL保留字 131
8.4 EL的運算符及優(yōu)先級 131
8.4.1 通過EL訪問數(shù)據(jù) 131
8.4.2 在EL中進行算術運算 133
8.4.3 在EL中判斷對象是否為空 134
8.4.4 在EL中進行邏輯關系運算 134
8.4.5 在EL中進行條件運算 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 實踐與練習 139
第9章 JSTL標簽 140
9.1 JSTL標簽庫簡介 140
9.2 JSTL的配置 140
9.3 表達式標簽 141
9.3.1 輸出標簽 141
9.3.2 變量設置標簽 142
9.3.3 變量移除標簽 143
9.3.4 捕獲異常標簽 143
9.4 URL相關標簽 144
9.4.1 導入標簽 144
9.4.2 動態(tài)生成URL標簽 145
9.4.3 重定向標簽 145
9.5 流程控制標簽 146
9.5.1 條件判斷標簽 146
9.5.2 條件選擇標簽 147
9.5.3 條件測試標簽 147
9.5.4 其他條件標簽 147
9.5.5 流程控制小結(jié) 147
9.6 循環(huán)標簽 148
9.6.1 循環(huán)標簽 148
9.6.2 迭代標簽 149
9.7 實踐與練習 150
第10章 Ajax技術 151
10.1 Ajax 技術概述 151
10.2 Ajax開發(fā)模式與傳統(tǒng)開發(fā)模式的比較 152
10.3 Ajax使用的技術 153
10.4 使用XMLHttpRequest對象 153
10.4.1 初始化XMLHttpRequest對象 153
10.4.2 XMLHttpRequest對象的常用方法 154
10.4.3 XMLHttpRequest對象的常用屬性 156
10.5 與服務器通信發(fā)送請求與處理響應 157
10.5.1 發(fā)送請求 157
10.5.2 處理服務器響應 158
10.5.3 一個完整的實例檢測用戶名是否唯一 159
10.6 解決中文亂碼問題 163
10.6.1 發(fā)送請求時出現(xiàn)中文亂碼 163
10.6.2 獲取服務器的響應結(jié)果時出現(xiàn)中文亂碼 164
10.7 Ajax重構(gòu) 164
10.7.1 Ajax重構(gòu)的步驟 164
10.7.2 應用Ajax重構(gòu)實現(xiàn)實時顯示信息 166
10.8 Ajax常用實例 167
10.8.1 級聯(lián)下拉列表 167
10.8.2 顯示進度條 171
10.9 實踐與練習 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 實現(xiàn)InitializingBean和DisposableBean接口 192
11.5.3 實現(xiàn)Spring提供的BeanPostProcessor接口 193
11.6 屬性編輯器 195
11.6.1 內(nèi)置屬性編輯器 195
11.6.2 自定義屬性編輯器 195
11.7 實踐與練習 198
第12章 Spring核心之AOP 199
12.1 AOP概述 199
12.1.1 了解AOP 199
12.1.2 Spring AOP的簡單實現(xiàn) 201
12.2 Spring的切入點 203
12.2.1 靜態(tài)切入點與動態(tài)切入點 203
12.2.2 深入靜態(tài)切入點 203
12.2.3 深入切入點底層 205
12.2.4 Spring中的其他切入點 206
12.3 Aspect對AOP的支持 206
12.3.1 了解Aspect 206
12.3.2 基于XML配置的AOP實現(xiàn) 207
12.3.3 基于注解的AOP實現(xiàn) 209
12.4 Spring持久化 212
12.4.1 DAO模式介紹 212
12.4.2 Spring的DAO理念 212
12.4.3 事務應用的管理 216
12.4.4 應用JdbcTemplate操作數(shù)據(jù)庫 217
12.5 實踐與練習 219
第13章 MyBatis技術 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