本書作為Java Web程序設計的教程,系統全面地介紹了有關Java Web程序開發所涉及的各類知識。全書共分14章,內容包括Web應用開發簡介,網頁前端開發基礎,JavaScript腳本語言,Java EE開發環境,JSP技術,Servlet技術,數據庫技術,程序日志組件,Struts 2框架,Hibernate技術,Hibernate高級應用,Spring框架,Spring與Struts 2、Hibernate框架的整合,開發天下淘網絡商城。全書每章內容都與實例緊密結合,有助于學生理解知識、應用知識,達到學以致用的目的。
本書是慕課版教材,各章節主要內容配備了以二維碼為載體的微課,并在人郵學院 平臺上提供了在線慕課。本書還提供書中所有實例、上機指導、綜合案例和課程設計的源代碼,制作精良的電子課件PPT,自測試卷等內容,讀者也可在人郵學院下載。其中,源代碼全部經過精心測試,能夠在Windows 7、Windows 8、Windows 10系統下編譯和運行。
30小時慕課教學視頻同步講解,讓學習更高效快捷
200個精彩課堂案例,12個課堂實驗,1個綜合案例,Java Web學習從入門到精通
66道習題,300道自測題,5套自測試卷,鞏固所學知識
提供免費教學資源,包括精品教學PPT、案例源代碼、自測題庫、拓展綜合案例
明日科技,程序設計類暢銷書作者,其主要作品“視頻大講堂”系列,每個品種都在其同品種的圖書中銷售名列前茅。累計銷售數十萬冊。其中《Java Web從入門到精通》長期占據Web開發零售圖書排行榜前三位,年銷量上萬冊。
第一篇 Web前端開發
第1章 Web應用開發簡介 2
1.1 網絡程序開發體系結構 3
1.1.1 C/S體系結構介紹 3
1.1.2 B/S體系結構介紹 3
1.1.3 兩種體系結構的比較 3
1.2 Web簡介 4
1.2.1 什么是Web 4
1.2.2 Web應用程序的工作原理 4
1.2.3 Web的發展歷程 5
1.3 Web開發技術 6
1.3.1 客戶端應用技術 6
1.3.2 服務器端應用技術 8
小結 9
習題 9
第2章 網頁前端開發基礎 10
2.1 HTML 11
2.1.1 創建第一個HTML文件 11
實例:用記事本編寫第一個HTML文件
2.1.2 HTML文檔結構 12
2.1.3 HTML文本標記 13
實例:在頁面中輸出一首古詩
實例:在HTML頁面中定義文字,并通過標題標記和段落標記設置頁面布局
實例:使用居中標記對頁面中的內容進行居中處理
實例:使用無序列表對頁面中的文字進行排序
實例:使用有序列表對頁面中的文字進行排序
實例:使用和
標簽為指定區域添加樣式
2.1.4 表格標記 18
實例:制作學生成績表
2.1.5 HTML表單標記 20
實例:博客網站的注冊頁面
2.1.6 超鏈接與圖片標記 24
實例:天下淘商品圖片展示
2.2 CSS樣式表 26
2.2.1 CSS規則 26
2.2.2 CSS選擇器 27
實例:定義a標記選擇器,在該標記選擇器中定義超鏈接的字體與顏色
實例:更改頁面字體的樣式使用id選擇器控制頁面中字體的樣式
2.2.3 在頁面中包含CSS 29
實例:通過行內定義樣式的形式,實現控制頁面文字的顏色和大小
實例:通過鏈接式樣式表的形式在頁面中引入CSS樣式
小結 31
上機指導 31
習題 32
第3章 JavaScript腳本語言 33
3.1 了解JavaScript 34
3.1.1 什么是JavaScript 34
3.1.2 JavaScript的主要特點 34
3.1.3 JavaScript與Java的區別 34
3.2 在Web頁面中使用JavaScript 35
3.2.1 在頁面中直接嵌入JavaScript 35
實例:實現彈出歡迎訪問網站的對話框
3.2.2 鏈接外部JavaScript 35
3.3 JavaScript語言基礎 36
3.3.1 JavaScript的語法 36
3.3.2 JavaScript中的關鍵字 37
3.3.3 了解JavaScript的數據類型 37
3.3.4 變量的定義及使用 39
3.3.5 運算符的應用 40
實例:應用算術運算符計算商品金額
3.4 函數 43
3.4.1 函數的定義 43
3.4.2 函數的調用 44
實例:驗證輸入的字符串是否為漢字
3.4.3 匿名函數 45
3.5 事件和事件處理程序 45
3.5.1 什么是事件和事件處理程序 45
3.5.2 JavaScript的常用事件 45
3.5.3 事件處理程序的調用 46
3.6 常用對象 47
3.6.1 String對象 47
實例:去掉字符串中的首尾空格
3.6.2 Math對象 51
3.6.3 Date對象 51
實例:實時顯示系統時間
3.6.4 Window對象 54
實例:顯示公告信息窗口并自動關閉
3.7 Ajax技術 57
3.7.1 什么是Ajax 57
3.7.2 Ajax的開發模式 58
3.7.3 Ajax的優點 58
3.8 傳統Ajax工作流程 59
3.8.1 發送請求 59
3.8.2 處理服務器響應 60
3.9 jQuery技術 61
3.9.1 jQuery簡介 61
3.9.2 下載和配置jQuery 62
3.9.3 jQuery的工廠函數 62
3.9.4 一個簡單的jQuery腳本 62
小結 63
上機指導 63
習題 66
第4章 Java EE開發環境 67
4.1 JDK的下載、安裝與使用 68
4.1.1 下載 68
4.1.2 安裝 69
4.1.3 配置環境變量 71
4.2 常用Java EE 服務器的安裝、配置和使用 72
4.3 Eclipse開發工具的安裝與使用 73
4.3.1 Eclipse的下載與安裝 74
4.3.2 啟動Eclipse 75
4.3.3 安裝Eclipse中文語言包 76
4.3.4 Eclipse工作臺 78
4.3.5 配置Web服務器 79
4.3.6 指定Web瀏覽器 82
4.3.7 設置JSP頁面編碼格式 83
小結 84
上機指導 84
習題 84
第二篇 服務器端開發
第5章 走進JSP 86
5.1 JSP概述 87
5.1.1 什么是JSP 87
5.1.2 如何學好JSP 87
5.1.3 JSP技術特征 88
5.2 開發第一個JSP程序 88
5.2.1 編寫JSP程序 88
實例:使用向導創建一個簡單的JSP程序
5.2.2 運行JSP程序 91
5.3 了解JSP的基本構成 92
實例:了解JSP頁面的基本構成
5.4 指令標簽 93
5.4.1 page指令 93
5.4.2 include指令 95
實例:顯示當前日期
5.4.3 taglib指令 96
5.5 嵌入Java代碼 96
5.5.1 代碼片段 96
實例:輸出九九乘法表
5.5.2 聲明 97
5.5.3 JSP表達式 98
5.6 注釋 98
5.6.1 HTML注釋 98
5.6.2 JSP注釋 98
5.6.3 動態注釋 99
5.6.4 代碼注釋 99
5.7 JSP動作標簽 99
5.7.1 99
5.7.2 101
實例:將首頁請求轉發到用戶添加頁面
5.7.3 102
5.8 request對象 102
5.8.1 獲取請求參數值 103
實例:使用request對象獲取請求參數值
5.8.2 獲取form表單的信息 103
實例:獲取用戶填寫的資料表單
5.8.3 獲取請求客戶端信息 105
實例:獲取用戶IP等信息
5.8.4 在作用域中管理屬性 106
實例:管理request對象屬性
5.8.5 cookie管理 107
實例:實現自動登錄
5.9 response對象 108
5.9.1 重定向網頁 109
5.9.2 處理HTTP文件頭 109
5.9.3 設置輸出緩沖 110
5.10 session對象 110
5.10.1 創建及獲取session信息 110
實例:創建和獲取session信息
5.10.2 從會話中移除指定的綁定對象 111
5.10.3 銷毀session 111
5.10.4 會話超時的管理 112
5.10.5 session對象的應用 112
實例:實現多頁面操作同一用戶
5.11 application對象 114
5.11.1 訪問應用程序初始化參數 115
實例:在web.xml中配置數據庫參數
5.11.2 管理應用程序環境屬性 115
小結 116
上機指導 116
習題 117
第6章 Servlet技術 118
6.1 Servlet基礎 119
6.1.1 Servlet與Servlet容器 119
6.1.2 Servlet技術特點 119
6.1.3 Servlet技術功能 120
6.1.4 Servlet與JSP的區別 120
6.1.5 Servlet代碼結構 121
6.1.6 簡單的Servlet程序 122
實例:簡單的Servlet程序
6.2 Servlet開發 122
6.2.1 Servlet的創建 122
6.2.2 Servlet配置 125
實例:通過Servlet顯示頁面
6.3 Servlet API編程常用的接口和類 126
6.3.1 Servlet接口 127
6.3.2 ServletConfig接口 127
6.3.3 HttpServletRequest接口 127
實例:輸出前臺請求信息
6.3.4 HttpServletResponse接口 129
實例:使用HttpServletResponse向客戶端發送錯誤信息
6.3.5 GenericServlet類 130
6.3.6 HttpServlet類 130
6.4 Servlet過濾器 131
6.4.1 過濾器概述 131
6.4.2 Filter API 131
6.4.3 過濾器的配置 132
6.4.4 過濾器典型應用 133
實例:字符編碼過濾器
小結 135
上機指導 136
習題 137
第7章 數據庫技術 138
7.1 MySQL數據庫 139
7.1.1 下載MySQL 139
7.1.2 安裝MySQL 139
7.1.3 環境變量的配置 145
7.2 JDBC概述 146
7.2.1 JDBC技術介紹 146
7.2.2 JDBC驅動程序 147
7.3 JDBC中的常用接口 148
7.3.1 驅動程序接口Driver 148
7.3.2 驅動程序管理器Driver-Manager 148
7.3.3 數據庫連接接口Connection 148
7.3.4 執行SQL語句接口Statement 149
7.3.5 執行動態SQL語句接口Prepared- Statement 150
7.3.6 執行存儲過程接口Callable- Statement 150
7.3.7 訪問結果集接口ResultSet 151
7.4 連接數據庫 152
7.4.1 加載JDBC驅動程序 152
7.4.2 創建數據庫連接 152
7.4.3 執行SQL語句 152
7.4.4 獲得查詢結果 153
7.4.5 關閉連接 153
7.5 數據庫操作技術 153
7.5.1 查詢操作 153
實例:使用Statement查詢天下淘商城用戶賬戶信息
實例:使用PrepareStatement查詢天下淘商城用戶賬戶信息
7.5.2 添加操作 155
實例:使用Statement添加天下淘新用戶賬戶信息
實例:使用PreparedStatement添加天下淘新用戶賬戶信息
7.5.3 修改操作 156
實例:使用Statement修改天下淘新用戶賬戶信息
實例:使用PreparedStatement修改天下淘用戶賬戶信息
7.5.4 刪除操作 157
實例:使用Statement刪除天下淘用戶賬戶信息
實例:使用PreparedStatement刪除天下淘用戶賬戶信息
小結 157
上機指導 157
習題 160
第8章 程序日志組件 161
8.1 簡介 162
8.2 Logger 162
8.2.1 日志輸出 163
8.2.2 配置日志 163
8.2.3 日志的繼承 164
8.3 Appender 164
8.4 Layout 165
8.5 應用日志調試程序 166
實例:打印用戶注冊信息的頁面日志
小結 169
上機指導 170
習題 170
第三篇 Java Web開發框架的使用
第9章 Struts 2框架 172
9.1 MVC設計模式 173
9.2 Struts 2框架概述 173
9.3 Struts 2入門 174
9.3.1 獲取與配置Struts 2 174
9.3.2 創建第一個Struts 2程序 175
實例:創建Java Web項目并添加Struts 2的支持類庫,通過Struts 2將請求轉發到指定JSP頁面
9.4 Action對象 177
9.4.1 認識Action對象 177
9.4.2 請求參數的注入原理 178
9.4.3 Action的基本流程 178
9.4.4 動態Action 179
9.4.5 應用動態Action 180
實例:實現動態Action處理添加/更新用戶信息請求
9.5 Struts 2的配置文件 181
9.5.1 Struts 2的配置文件類型 181
9.5.2 配置Struts 2包 182
9.5.3 配置名稱空間 182
實例:為user包配置名稱空間
9.5.4 Action的相關配置 183
9.5.5 使用通配符簡化配置 185
實例:在struts.xml文件中應用通配符
9.5.6 配置返回結果 185
9.6 Struts 2的標簽庫 186
9.6.1 數據標簽 186
9.6.2 控制標簽 189
9.6.3 表單標簽 190
9.7 Struts 2的開發模式 192
9.7.1 實現與Servlet API的交互 192
9.7.2 域模型DomainModel 192
9.7.3 驅動模型ModelDriven 193
9.8 Struts 2的攔截器 195
9.8.1 攔截器概述 195
9.8.2 攔截器API 196
9.8.3 使用攔截器 197
實例:配置天下淘商城中的管理員登錄攔截器
9.9 數據驗證機制 198
9.9.1 手動驗證 198
9.9.2 驗證文件的命名規則 198
9.9.3 驗證文件的編寫風格 199
實例:編寫天下淘商城中的登錄驗證器
小結 201
上機指導 201
習題 202
第10章 Hibernate技術 203
10.1 初識Hibernate 204
10.1.1 理解ORM原理 204
10.1.2 Hibernate簡介 204
10.2 Hibernate入門 205
10.2.1 獲取Hibernate 205
10.2.2 Hibernate配置文件 205
實例:編寫天下淘商城的數據庫連接的Hibernate配置文件
10.2.3 了解并編寫持久化類 206
實例:編寫天下淘商城的消費者用戶的持久化類
10.2.4 Hibernate映射 208
實例:編寫天下淘商城的消費者用戶類的Hibernate映射文件
10.2.5 Hibernate主鍵策略 210
10.3 Hibernate數據持久化 210
10.3.1 Hibernate實例狀態 210
10.3.2 Hibernate初始化類 211
實例:創建Hibernate的初始化類
10.3.3 保存數據 212
實例:向數據庫中的產品信息表添加產品信息
10.3.4 查詢數據 214
實例:利用get()方法加載產品對象
實例:利用load()方法加載產品對象
10.3.5 刪除數據 216
實例:利用delete()方法刪除指定的產品信息
10.3.6 修改數據 216
實例:修改指定的產品信息
10.3.7 關于延遲加載 217
實例:實現延遲加載
10.4 使用Hibernate的緩存 218
10.4.1 一級緩存的使用 218
實例:在同一Session中查詢兩次產品信息
10.4.2 配置并使用二級緩存 219
實例:利用二級緩存查詢產品信息
小結 221
上機指導 221
習題 224
第11章 Hibernate高級應用 225
11.1 關聯關系映射 226
11.1.1 數據模型與領域模型 226
11.1.2 理解并配置多對一單向關聯 226
實例:建立產品對象與生產商對象的多對一單向關聯關系
11.1.3 理解并配置多對一雙向關聯 228
實例:建立產品對象與生產商對象的多對一雙向關聯關系
11.1.4 理解并配置一對一主鍵關聯 230
實例:建立公民與身份證的一對一關聯關系
11.1.5 理解并配置一對一外鍵關聯 231
實例:建立公民對象與身份證對象的一對一外鍵關聯關系
11.1.6 理解并配置多對多關聯關系 233
實例:建立用戶與角色的多對多關聯關系
11.1.7 了解級聯操作 234
實例:利用級聯操作刪除公民表中的信息和其在身份證表中所關聯的信息
11.2 HQL檢索方式 236
11.2.1 了解HQL語言 236
實例:在實際應用中的HQL語句
11.2.2 實體對象查詢 236
實例:通過from子句查詢實體
實例:查詢Employee對象中的所有信息
11.2.3 條件查詢 238
實例:查詢性別都為“男”的員工
11.2.4 HQL參數綁定機制 238
實例:使用動態參數查詢性別為“男”的員工信息
11.2.5 排序查詢 239
實例:按照ID的正序序排列
11.2.6 聚合函數的應用 239
實例:計算所有的員工ID的平均值
實例:查詢所有員工中ID最小的員工信息
11.2.7 分組方法 239
實例:分組統計男女員工的人數。
11.2.8 聯合查詢 240
實例:左連接查詢獲取公民信息和其關聯的身份證信息。
11.2.9 子查詢 241
實例:利用子查詢獲取ID值最小的員工信息
小結 242
上機指導 242
習題 243
第12章 Spring框架 244
12.1 Spring概述 245
12.1.1 Spring組成 245
12.1.2 下載Spring 246
12.1.3 配置Spring 246
12.1.4 使用BeanFactory管理Bean 248
12.1.5 應用ApllicationContext 249
12.2 Spring IoC 249
12.2.1 控制反轉與依賴注入 249
12.2.2 配置Bean 250
12.2.3 Setter注入 251
實例:通過注入創建用戶實例
12.2.4 構造器注入 252
實例:通過構造器注入為用戶JavaBean屬性賦值
12.2.5 引用其他Bean 253
實例:將User對象注入到Spring的控制器Manager中
12.2.6 創建匿名內部JavaBean 255
12.3 AOP概述 255
12.3.1 AOP術語 255
12.3.2 AOP的簡單實現 257
實例:利用Spring AOP使日志輸出與方法分離
12.4 Spring的切入點 258
12.4.1 靜態與動態切入點 258
12.4.2 深入靜態切入點 259
12.4.3 深入切入點底層 259
12.4.4 Spring中的其他切入點 260
12.5 Aspect對AOP的支持 260
12.5.1 Aspect概述 260
12.5.2 Spring中的Aspect 261
12.5.3 DefaultPointcutAdvisor切入點配置器 261
12.5.4 NameMatchMethodPointcutAdvisor切入點配置器 262
12.6 Spring持久化 263
12.6.1 DAO模式 263
12.6.2 Spring的DAO理念 263
實例:利用DAO模式向用戶表中添加數據
12.6.3 事務管理 266
實例:實現Spring編程式事務管理
實例:實現Spring聲明式事務管理
12.6.4 應用JdbcTemplate操作數據庫 269
實例:利用JdbcTemplate向用戶表中添加用戶信息
12.6.5 與Hibernate整合 270
實例:整合Spring與Hibernate在tb_user表中添加信息
12.6.6 整合Spring與Hibernate在tb_user表中添加信息 271
實例:整合Spring與Hibernate在tb_user表中添加信息
小結 273
上機指導 273
習題 275
第13章 Spring與Struts2、Hibernate框架的整合 276
13.1 框架整合的優勢 277
13.2 SSH2架構分析 277
13.3 開始構建SSH2 278
13.3.1 配置web.xml 278
13.3.2 配置Spring 279
13.3.3 配置Struts 2 280
13.3.4 配置Hibernate 284
實例:搭建天下淘商城項目框架
13.4 實現MVC編碼 285
13.4.1 JSP完成視圖層 285
實例:編寫天下淘商城的首頁JSP文件
13.4.2 Struts 2完成控制層 288
實例:編寫天下淘商城的首頁Action文件
13.4.3 Hibernate完成數據封裝 292
實例:編寫天下淘商城的會員信息的實體類及映射文件
13.5 SSH2實例程序部署 295
小結 297
上機指導 297
習題 303
第四篇 綜合案例
第14章 天下淘網絡商城 305
14.1 開發背景 306
14.2 系統分析 306
14.2.1 需求分析 306
14.2.2 可行性分析 306
14.3 系統設計 307
14.3.1 功能結構圖 307
14.3.2 系統流程圖 308
14.3.3 開發環境 308
14.3.4 文件夾組織結構 309
14.3.5 系統預覽 309
14.4 數據庫設計 311
14.4.1 數據庫概念設計 311
14.4.2 創建數據庫及數據表 312
14.5 公共模塊的設計 314
14.5.1 泛型工具類 314
14.5.2 數據持久化類 315
14.5.3 分頁操作 316
14.5.4 字符串工具類 317
14.5.5 實體映射 318
14.6 登錄注冊模塊設計 323
14.6.1 模塊概述 323
14.6.2 注冊模塊的實現 323
14.6.3 登錄模塊的實現 324
14.7 前臺商品信息查詢模塊設計 327
14.7.1 模塊概述 327
14.7.2 前臺商品信息查詢模塊技術分析 327
14.7.3 商品搜索的實現 328
14.7.4 前臺商品其他查詢的實現 329
14.8 購物車模塊設計 331
14.8.1 模塊概述 332
14.8.2 購物車模塊技術分析 332
14.8.3 購物車基本功能的實現 333
14.8.4 訂單相關功能的實現 335
14.9 后臺商品管理模塊設計 338
14.9.1 模塊概述 338
14.9.2 后臺商品管理 338
14.9.3 商品管理功能的實現 338
14.9.4 商品類別管理功能的實現 343
14.10 后臺訂單管理模塊的設計 346
14.10.1 模塊概述 346
14.10.2 后臺訂單管理模塊技術分析 346
14.10.3 后臺訂單查詢的實現 347
14.11 開發技巧與難點分析 349