本書系統(tǒng)地介紹了有關JSP開發(fā)所涉及的各類知識。全書共分13章,內容包括JSP概述、JSP開發(fā)基礎、JSP語法、JSP內置對象、JavaBean技術、Servlet技術、JSP實用組件、JSP數據庫應用開發(fā)、JSP與Ajax及JSP高級技術,并通過JSP綜合開發(fā)實例——清爽夏日九宮格日記網,介紹了JSP應用的開發(fā)流程和相關技術的綜合應用。全書提供了兩個課程設計方案,在線投票系統(tǒng)和Ajax聊天室,供學生綜合實踐使用。
本書為慕課版教材,各章節(jié)主要內容配備了以二維碼為載體的微課,并在人郵學院 平臺上提供了慕課。此外,本書還提供了課程資源包,資源包中提供有本書所有實例、上機指導、綜合案例和課程設計的源代碼,制作精良的電子課件PPT,自測試卷等內容。資源包也可在人郵學院上下載。其中,源代碼全部經過精心測試,能夠在Windows 7、Windows 8、Windows 10系統(tǒng)下編譯和運行。
30小時慕課教學視頻同步講解,讓學習更高效快捷
80個精彩課堂案例,12個課堂實驗,1個綜合案例,Java學習從入門到精通
66道習題,300道自測題,5套自測試卷,鞏固所學知識
提供免費教學資源,包括精品教學PPT、案例源代碼、自測題庫、拓展綜合案例
明日科技,程序設計類暢銷書作者,其主要作品“視頻大講堂”系列,每個品種都在其同品種的圖書中銷售名列前茅。累計銷售數十萬冊。其中《Java Web從入門到精通》長期占據Java Web零售圖書排行榜前三位,年銷量上萬冊。
第1章 JSP概述 1
1.1 JSP技術概述 2
1.2 JSP技術特征 3
1.3 JSP的處理過程 4
1.4 JSP與其他服務器端腳本語言的比較 5
1.5 JSP開發(fā)環(huán)境搭建 6
1.5.1 JSP的運行環(huán)境 6
1.5.2 JDK的安裝與配置 6
1.5.3 Tomcat的安裝與啟動 9
1.6 JSP開發(fā)工具 10
1.6.1 Eclipse的安裝與啟動 11
1.6.2 Eclipse的使用 11
1.7 JSP程序開發(fā)模式 16
1.8 第一個JSP應用 17
1.9 小結 19
習題 19
上機指導 19
第2章 JSP開發(fā)基礎 20
2.1 Java語言基礎 21
2.1.1 基本數據類型及基本數據類型間的轉換 21
2.1.2 變量與常量 22
2.1.3 運算符的應用 23
實例:應用條件運算符輸出庫存信息
2.1.4 流程控制語句 26
實例:if...else語句示例
實例:應用switch語句,根據輸入的星期數,輸出相應的提示信息
實例:分別利用for、while和do...while循環(huán)語句計算1到100之間所有整數和
2.1.5 字符串處理 31
實例:字符串應用實例
2.1.6 數組的創(chuàng)建與應用 33
2.1.7 面向對象程序設計 34
實例:在類中聲明兩個成員方法
實例:在類中聲明3個成員變量,并且在其成員方法中聲明兩個局部變量
實例:對象的使用方法
2.1.8 集合類的應用 39
實例:使用ArrayList集合存儲數據
實例:實現(xiàn)創(chuàng)建空的Vector對象,并向其添加元素,然后輸出所有元素
2.1.9 異常處理語句 40
2.2 JavaScript腳本語言 41
2.2.1 JavaScript腳本語言概述 42
2.2.2 在JSP中引入JavaScript 42
2.2.3 JavaScript的數據類型與運算符 42
2.2.4 JavaScript的流程控制語句 44
實例:利用while循環(huán)語句將數字7格式化為00007
實例:利用do...while循環(huán)語句將數字7格式化為00007
實例:利用for循環(huán)語句將數字7格式化為00007
2.2.5 函數的定義和調用 46
2.2.6 事件 47
2.2.7 JavaScript常用對象的應用 48
實例:在新窗口的狀態(tài)欄中顯示當前年份
2.3 小結 50
習題 51
上機指導 51
第3章 JSP語法 52
3.1 了解JSP的基本構成 53
3.2 JSP的指令標識 54
3.2.1 使用page指令 54
實例:設置錯誤提示頁面內容
3.2.2 使用include指令 56
3.2.3 使用taglib指令 57
3.3 JSP的腳本標識 57
3.3.1 JSP表達式(Expression) 57
3.3.2 聲明標識(Declaration) 58
實例:簡單的網站計數器
3.3.3 腳本程序(Scriptlet) 59
實例:在JSP中實現(xiàn)選擇輸出腳本程序
3.4 JSP的注釋 60
3.4.1 HTML中的注釋 60
實例:HTML注釋的應用
3.4.2 帶有JSP表達式的注釋 60
實例:帶有JSP表達式注釋的應用
3.4.3 隱藏注釋 61
實例:隱藏注釋的應用
3.4.4 腳本程序(Scriptlet)中的
注釋 61
實例:單行注釋的應用
實例:多行注釋的應用
3.5 動作標識 63
3.5.1 63
實例:通過include指令和動作標識包含文件
3.5.2 65
3.5.3 66
3.5.4 68
實例:標識的使用
3.5.5 71
實例:利用標簽輸出JavaBean中的屬性
3.5.6 73
3.5.7 73
實例:codebase屬性的使用
3.5.8 子標識 76
實例:
3.6 小結 76
習題 77
上機指導 77
第4章 JSP內置對象 78
4.1 JSP內置對象概述 79
4.2 request對象 80
4.2.1 訪問請求參數 80
實例:在login.jsp頁面中通過表單向login_deal.jsp頁面提交數據,在login_deal.jsp獲取提交數據并輸出
4.2.2 在作用域中管理屬性 81
實例:使用request對象的setAttribute()方法設置數據,然后在請求轉發(fā)后取得設置的數據
4.2.3 獲取Cookie 81
實例:使用request對象的addCookie()方法實現(xiàn)記錄本次及上一次訪問網頁的時間
4.2.4 獲取客戶信息 82
實例:獲取客戶信息示例
4.2.5 訪問安全信息 83
4.2.6 訪問國際化信息 83
4.3 response對象 84
4.3.1 重定向網頁 84
實例:重定向網頁示例
4.3.2 設置HTTP響應報頭 85
實例:將JSP頁面保存為word文檔
4.3.3 緩沖區(qū)配置 86
實例:輸出緩沖區(qū)的大小并測試強制將緩沖區(qū)的內容發(fā)送給客戶
4.4 session對象 86
4.4.1 創(chuàng)建及獲取客戶的會話 87
實例:創(chuàng)建并獲取客戶會話
4.4.2 從會話中移除指定的對象 87
實例:通過setAttribute()方法將數據保存在session中,然后通過removeAttribute()方法移除指定對象
4.4.3 銷毀session 88
4.4.4 會話超時的管理 88
4.5 application對象 88
4.5.1 訪問應用程序初始化參數 88
實例:訪問程序初始化參數
4.5.2 管理應用程序環(huán)境屬性 89
實例:通過application對象中的setAttribute()和getAttribute()方法實現(xiàn)網頁計數器
4.6 out對象 90
4.6.1 管理響應緩沖 90
4.6.2 向客戶端輸出數據 91
4.7 其他內置對象 91
4.7.1 獲取會話范圍的pageContext對象 91
4.7.2 讀取web.xml配置信息的config對象 91
4.7.3 應答或請求的page對象 92
4.7.4 獲取異常信息的exception
對象 92
4.8 小結 93
習題 93
上機指導 93
第5章 JavaBean技術 94
5.1 JavaBean概述 95
5.1.1 JavaBean技術介紹 95
5.1.2 JavaBean的種類 95
實例:值JavaBean示例
實例:工具JavaBean示例
5.1.3 JavaBean規(guī)范 96
實例:JavaBean規(guī)范示例
5.2 JavaBean中的屬性 97
5.2.1 簡單屬性(Simple) 97
實例:定義簡單屬性,并定義相應的set×××( )與get×××( )方法進行訪問
5.2.2 索引屬性(Indexed) 98
實例:定義索引屬性,并定義相應的set×××( )與get×××( )方法進行訪問
5.3 JavaBean的應用 98
5.3.1 創(chuàng)建JavaBean 99
實例:在Eclipse下創(chuàng)建JavaBean
5.3.2 在JSP頁面中應用JavaBean 100
實例:獲取用戶留言信息
5.4 JavaBean的應用實例 104
5.4.1 應用JavaBean解決中文亂碼 104
實例:應用JavaBean解決中文亂碼
5.4.2 應用JavaBean實現(xiàn)購物車 107
實例:應用JavaBean實現(xiàn)購物車
5.5 小結 114
習題 115
上機指導 115
第6章 Servlet技術 116
6.1 Servlet基礎 117
6.1.1 Servlet技術簡介 117
6.1.2 Servlet技術功能 117
6.1.3 Servlet技術特點 117
6.1.4 Servlet的生命周期 118
6.1.5 Servlet與JSP的區(qū)別 119
6.1.6 Servlet的代碼結構 119
6.2 Servlet API編程常用接口和類 120
6.2.1 Servlet接口 120
6.2.2 HttpServlet類 120
6.2.3 ServletConfig接口 121
6.2.4 HttpServletRequest接口 121
6.2.5 HttpServletResponse接口 122
6.2.6 GenericServlet類 123
6.3 Servlet開發(fā) 123
6.3.1 Servlet的創(chuàng)建 123
6.3.2 Servlet的配置 125
實例:通過Servlet向瀏覽器中輸出文本信息
6.4 Servlet過濾器 128
6.4.1 什么是過濾器 128
6.4.2 過濾器核心對象 129
6.4.3 過濾器創(chuàng)建與配置 130
實例:創(chuàng)建名稱為MyFilter的過濾器對象
實例:通過過濾器實現(xiàn)網站訪問計數器
6.4.4 字符編碼過濾器 133
實例:添加并顯示圖書信息
6.5 Servlet監(jiān)聽器 137
6.5.1 Servlet監(jiān)聽器簡介 137
6.5.2 Servlet監(jiān)聽器的工作原理 137
6.5.3 監(jiān)聽Servlet上下文 137
6.5.4 監(jiān)聽HTTP會話 138
6.5.5 監(jiān)聽Servlet請求 139
6.5.6 使用監(jiān)聽器查看在線用戶 139
實例:通過監(jiān)聽器查看用戶在線情況
6.6 Servlet的應用實例 141
6.6.1 應用Servlet實現(xiàn)留言板 141
實例:應用Servlet實現(xiàn)留言板
6.6.2 應用Servlet實現(xiàn)購物車 145
實例:應用Servlet實現(xiàn)購物車
6.7 小結 153
習題 154
上機指導 154
第7章 JSP實用組件 155
7.1 JSP文件操作 156
7.1.1 添加表單及表單元素 156
7.1.2 創(chuàng)建上傳對象 156
7.1.3 解析上傳請求 156
實例:應用Commons-FileUpload組件將文件上傳到服務器
7.2 發(fā)送E-mail 159
7.2.1 Java Mail組件簡介 159
7.2.2 Java Mail核心類簡介 159
7.2.3 搭建Java Mail的開發(fā)環(huán)境 163
7.2.4 在JSP中應用Java Mail組件發(fā)送E-mail 164
實例:發(fā)送普通文本格式的E-mail
7.3 JSP動態(tài)圖表 166
7.3.1 JFreeChart的下載與使用 166
7.3.2 JFreeChart的核心類 167
7.3.3 利用JFreeChart生成動態(tài)
圖表 167
實例:生成論壇版塊人氣指數排行的柱形圖
實例:生成論壇版塊人氣指數排行的餅形圖
7.4 JSP報表 169
7.4.1 iText組件簡介 169
7.4.2 iText組件的下載與配置 169
7.4.3 應用iText組件生成JSP
報表 170
實例:在JSP頁面中輸出PDF文檔
實例:創(chuàng)建表格
實例:圖像處理
7.5 小結 177
習題 177
上機指導 177
第8章 JSP數據庫應用開發(fā) 178
8.1 數據庫管理系統(tǒng) 179
8.1.1 SQL Server 2008數據庫 179
8.1.2 MySQL數據庫 181
8.1.3 Oracle數據庫 181
8.1.4 Access數據庫 181
8.2 JDBC概述 181
8.2.1 JDBC技術介紹 181
8.2.2 JDBC驅動程序 182
8.3 JDBC中的常用接口 183
8.3.1 驅動程序接口Driver 183
8.3.2 驅動程序管理器
DriverManager 183
8.3.3 數據庫連接接口
Connection 183
8.3.4 執(zhí)行SQL語句接口
Statement 184
8.3.5 執(zhí)行動態(tài)SQL語句接口
PreparedStatement 185
8.3.6 執(zhí)行存儲過程接口CallableStatement 185
8.3.7 訪問結果集接口ResultSet 186
8.4 JDBC訪問數據庫過程 187
8.5 典型JSP數據庫連接 188
8.5.1 SQL Server 2008數據庫的
連接 188
實例:在JSP中連接SQL Server 2008數據庫
8.5.2 Access數據庫的連接 189
實例:在JSP中連接Access數據庫
8.5.3 MySQL數據庫的連接 190
實例:在JSP中連接MySQL數據庫
8.6 數據庫操作技術 190
8.6.1 查詢操作 191
實例:按照name查詢用戶信息
8.6.2 添加操作 192
8.6.3 修改操作 192
8.6.4 刪除操作 193
8.7 連接池技術 194
8.7.1 連接池簡介 194
8.7.2 在Tomcat中配置連接池 195
8.7.3 使用連接池技術訪問數據庫 195
實例:獲取用戶信息表中的所有數據
8.8 小結 197
習題 197
上機指導 197
第9章 JSP與Ajax 198
9.1 了解Ajax 199
9.1.1 什么是Ajax 199
9.1.2 Ajax開發(fā)模式與傳統(tǒng)開發(fā)
模式的比較 199
9.2 使用XMLHttpRequest對象 200
9.2.1 初始化XMLHttpRequest
對象 200
9.2.2 XMLHttpRequest對象的
常用方法 201
9.2.3 XMLHttpRequest對象的常用
屬性 202
9.3 傳統(tǒng)Ajax的工作流程 203
9.3.1 發(fā)送請求 203
9.3.2 處理服務器響應 205
9.3.3 一個完整的實例——
檢測用戶名是否唯一 206
實例:編寫一個會員注冊頁面,并應用Ajax實現(xiàn)檢測用戶名是否唯一的功能
9.4 jQuery實現(xiàn)Ajax 208
9.4.1 jQuery簡介 208
9.4.2 我的第一個jQuery腳本 209
實例:應用jQuery彈出一個提示對話框
9.4.3 應用load()方法發(fā)送請求 210
實例:顯示實時走動的時間
9.4.4 發(fā)送GET和POST請求 211
實例:采用jQuery的get( )方法實現(xiàn)例9.1
實例:聊天室中實時顯示聊天內容
9.4.5 服務器返回的數據格式 215
實例:使用JSON格式返回聊天內容
9.4.6 使用$.ajax()方法 219
9.5 Ajax開發(fā)需要注意的幾個問題 220
9.5.1 安全問題 220
9.5.2 性能問題 221
9.5.3 瀏覽器兼容性問題 221
9.5.4 中文編碼問題 221
9.6 小結 222
習題 222
上機指導 222
第10章 JSP高級技術 223
10.1 EL表達式 224
10.1.1 表達式語言 224
10.1.2 EL表達式的簡單使用 224
10.1.3 EL表達式的語法 224
10.1.4 EL表達式的運算符 225
10.1.5 EL表達式中的隱含對象 226
10.1.6 EL表達式中的保留字 226
10.2 JSTL標準標簽庫 227
10.2.1 表達式標簽 230
實例:測試標簽的escapeXml屬性及通過兩種語法格式設置default屬性時的顯示結果
實例:應用標簽定義不同范圍內的變量,并通過EL進行輸出
實例:應用標簽定義一個page范圍內的變量,然后應用通過EL輸出該變量,再應用標簽移除該變量,最后再應用EL輸出該變量
10.2.2 條件標簽 232
實例:應用標簽判斷用戶名是否為空,如果為空則顯示一個用于輸入用戶名的文本框及“提交”按鈕
實例:應用標簽、標簽和標簽根據當前時間顯示不同的問候
10.2.3 循環(huán)標簽 235
實例:應用標簽循環(huán)輸出List集合中的內容,并通過標簽循環(huán)輸出字符串“編程詞典”6次
實例:應用標簽分割字符串并顯示
10.2.4 URL操作標簽 236
10.3 自定義標簽庫的開發(fā) 238
10.3.1 自定義標簽的定義格式 238
10.3.2 自定義標簽的構成 238
10.3.3 在JSP文件中引用自定義
標簽 240
實例:創(chuàng)建用于顯示當前系統(tǒng)日期的自定義標簽
10.4 JSP框架技術 242
10.4.1 Struts 2框架 242
10.4.2 Spring框架 243
10.4.3 Hibernate技術 244
10.5 小結 244
習題 245
上機指導 245
第11章 JSP綜合開發(fā)實例——清爽夏日九宮格日記網 246
11.1 項目設計思路 247
11.1.1 功能闡述 247
11.1.2 系統(tǒng)預覽 247
11.1.3 功能結構 248
11.1.4 文件夾組織結構 249
11.2 數據庫設計 249
11.2.1 數據庫設計 249
11.2.2 數據表設計 250
11.3 公共模塊設計 250
11.3.1 編寫數據庫連接及操作
的類 250
11.3.2 編寫保存分頁代碼的
JavaBean 253
11.3.3 配置解決中文亂碼的
過濾器 255
11.3.4 編寫實體類 256
11.4 主界面設計 257
11.4.1 主界面概述 257
11.4.2 讓采用DIV+CSS布局的
頁面內容居中 257
11.4.3 主界面的實現(xiàn)過程 258
11.5 用戶模塊設計 259
11.5.1 用戶模塊概述 259
11.5.2 實現(xiàn)Ajax重構 259
11.5.3 用戶注冊的實現(xiàn)過程 261
11.5.4 用戶登錄的實現(xiàn)過程 270
11.5.5 退出登錄的實現(xiàn)過程 274
11.5.6 忘記密碼的實現(xiàn)過程 274
11.6 顯示九宮格日記列表模塊設計 276
11.6.1 顯示九宮格日記列表
概述 276
11.6.2 展開和收縮圖片 277
11.6.3 查看日記原圖 279
11.6.4 對日記圖片進行左轉和
右轉 279
11.6.5 顯示全部九宮格日記的
實現(xiàn)過程 282
11.6.6 我的日記的實現(xiàn)過程 285
11.6.7 刪除我的日記的實現(xiàn)過程 286
11.7 寫九宮格日記模塊設計 287
11.7.1 寫九宮格日記概述 287
11.7.2 應用JQuery讓PNG圖片在IE 6下背景透明 287
11.7.3 填寫日記信息的實現(xiàn)過程 288
11.7.4 預覽生成的日記圖片的
實現(xiàn)過程 292
11.7.5 保存日記圖片的實現(xiàn)過程 296
11.8 項目發(fā)布 298
11.9 小結 299
第12章 課程設計一—在線投票 系統(tǒng) 300
12.1 課程設計的目的 301
12.2 設計思路 301
12.2.1 顯示投票選項的設計思路 301
12.2.2 參與投票的設計思路 301
12.2.3 顯示投票結果的設計思路 302
12.3 設計過程 302
12.3.1 數據表的設計 302
12.3.2 值JavaBean的設計 303
12.3.3 數據庫操作類的編寫 304
12.3.4 工具類的編寫 309
12.3.5 顯示投票選項的設計 309
12.3.6 參與投票的設計 311
12.3.7 查看結果的設計 313
12.4 小結 315
第13章 課程設計二—Ajax聊天室 316
13.1 課程設計的目的 317
13.2 設計思路 317
13.3 設計過程 317
13.3.1 用戶JavaBean的編寫 317
13.3.2 登錄頁面的設計 318
13.3.3 聊天室主頁面設計 319
13.3.4 在線人員列表的設計 319
13.3.5 用戶發(fā)言的設計 321
13.3.6 顯示聊天內容的設計 322
13.3.7 退出聊天室的設計 324
13.4 小結 325
參考文獻 326