本書針對學(xué)習(xí)了Java 語言編程的基礎(chǔ)知識(shí)以后,進(jìn)一步學(xué)習(xí)Java 網(wǎng)絡(luò)編程原理和JSP Web 開發(fā)技術(shù)的讀者而編寫。本書簡要清晰地介紹了計(jì)算機(jī)網(wǎng)絡(luò)連接和網(wǎng)絡(luò)通信的基本原理,詳細(xì)講解了Java 語言相關(guān)網(wǎng)絡(luò)編程技術(shù)以及各種網(wǎng)絡(luò)應(yīng)用協(xié)議的實(shí)現(xiàn)技術(shù);詳盡介紹了JSP Web 網(wǎng)絡(luò)編程的基本原理、基本操作以及各種核心開發(fā)技術(shù)和網(wǎng)絡(luò)編程應(yīng)用模式。本書的內(nèi)容主要分為兩大部分。*部分講解Java網(wǎng)絡(luò)編程原理,包括網(wǎng)絡(luò)編程概述、Java 的多線程機(jī)制、Socket 編程技術(shù)、網(wǎng)絡(luò)協(xié)議的Java 實(shí)現(xiàn)等內(nèi)容;第二部分圍繞JSP 開發(fā)技術(shù)講解Web 開發(fā)核心技術(shù),包括JDBC 技術(shù)、Web 前端開發(fā)技術(shù)、JSP 基礎(chǔ)技術(shù)、JSP核心技術(shù)之JavaBean、JSP核心技術(shù)之Servlet、Web高級開發(fā)技術(shù)等內(nèi)容。本書側(cè)重于Java 網(wǎng)絡(luò)編程原理和應(yīng)用協(xié)議的實(shí)現(xiàn)以及JSP 相關(guān)的Web 核心開發(fā)技術(shù),同時(shí)力求重點(diǎn)突出、覆蓋面廣,各章均提供了豐富的實(shí)例和練習(xí)。全書內(nèi)容由淺入深、實(shí)例生動(dòng)、易學(xué)易用,可以滿足不同層次讀者的需求。本書適合作為普通高等院校本科計(jì)算機(jī)、軟件工程以及相關(guān)專業(yè)的課程教材,也可作為軟件開發(fā)人員和計(jì)算機(jī)技術(shù)愛好者的參考用書。
第一部分
網(wǎng)絡(luò)編程原理
第1 章
網(wǎng)絡(luò)編程概述................. 1
1.1 計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu). 1
1.1.1 網(wǎng)絡(luò)體系結(jié)構(gòu)和協(xié)議............
1
1.1.2 OSI 體系結(jié)構(gòu).. 2
1.1.3 TCP/IP 體系結(jié)構(gòu)...................
4
1.1.4 TCP/IP 與OSI 模型的對比.... 6
1.2 網(wǎng)絡(luò)程序設(shè)計(jì)開發(fā)模式....................
7
1.2.1 C/S 模式.......... 7
1.2.2 B/S 模式......... 8
1.2.3 對等模式........ 9
1.3 Java 數(shù)據(jù)流技術(shù)......... 9
1.3.1 數(shù)據(jù)流工作方式及相關(guān)API . 9
1.3.2 網(wǎng)絡(luò)通信中基于套接字輸入流和輸出流的創(chuàng)建....................
16
1.3.3 對象持久性和對象序列化.. 18
小結(jié)....................... .......... 22
習(xí)題....................... .......... 22
第2 章 Java 的多線程機(jī)制........ 23
2.1 Java 多線程基本概念......................
23
2.2 Java 中的多線程實(shí)現(xiàn)......................
24
2.2.1 用Thread 類創(chuàng)建多線程應(yīng)用程序...................
24
2.2.2 用Runnable 接口創(chuàng)建多線程應(yīng)用程序...........
26
2.2.3 線程優(yōu)先級.. 27
2.3 多線程同步技術(shù)....... 29
2.3.1 線程的生命周期..................
29
2.3.2 多線程的同步處理技術(shù)(等待/通知機(jī)制).... 30
2.4 線程池技術(shù)..............
35
2.4.1 為什么使用線程池..............
35
2.4.2 線程池的開銷......................
36
2.4.3 線程池的實(shí)現(xiàn)......................
36
小結(jié)....................... .......... 39
習(xí)題....................... .......... 39
第3 章 Socket 編程技術(shù)............ 40
3.1 IP 地址和端口號...... 40
3.1.1 IP 地址.......... 40
3.1.2 端口.............. 42
3.1.3 套接字Socket
...................... 42
3.2 WinSock 介紹........... 43
3.3 Java Socket 介紹....... 43
3.4 基于TCP 協(xié)議的數(shù)據(jù)通信..............
44
3.4.1 TCP 協(xié)議簡介......................
44
3.4.2 Socket 和 ServerSocket
........ 46
3.4.3 Socket 通信異常處理........... 50
3.4.4 多線程的Socket 通信實(shí)現(xiàn).. 50
3.5 基于UDP 協(xié)議的數(shù)據(jù)通信.............
53
3.5.1 UDP 協(xié)議簡介.....................
53
3.5.2 DatagramPacket 類和DatagramSocket
類.......... 54
3.5.3 UDP 網(wǎng)絡(luò)應(yīng)用實(shí)例..............
55
3.6 組播套接字.............. 6
1
3.6.1 組播相關(guān)概念......................
61
3.6.2 MulticostSocket ....................
62
3.6.3 組播套接字應(yīng)用實(shí)例..........
63
小結(jié)....................... .......... 65
習(xí)題....................... .......... 66
第4 章
網(wǎng)絡(luò)協(xié)議的Java 實(shí)現(xiàn).... 67
4.1 HTTP 協(xié)議的Java 實(shí)現(xiàn)...................
67
4.1.1 HTTP 協(xié)議概述及工作過程 67
4.1.2 HTTP 協(xié)議服務(wù)器實(shí)現(xiàn)........ 70
4.2 FTP 協(xié)議的Java 實(shí)現(xiàn)......................
74
4.2.1 FTP 協(xié)議概述及工作過程... 74
4.2.2 FTP 協(xié)議服務(wù)器端實(shí)現(xiàn)....... 76
4.2.3 FTP 協(xié)議客戶端實(shí)現(xiàn)........... 82
4.3 SMTP 協(xié)議和POP3 協(xié)議的Java 實(shí)現(xiàn)..........................
84
4.3.1 SMTP 協(xié)議概述及工作過程 85
4.3.2 POP3 協(xié)議概述及工作過程. 86
4.3.3 SMTP 協(xié)議實(shí)現(xiàn)(客戶端) 87
4.3.4 POP3 協(xié)議實(shí)現(xiàn)(客戶端). 91
小結(jié)....................... .......... 95
習(xí)題....................... .......... 95
第二部分 JSP Web開發(fā)核心技術(shù)
第5 章 JDBC 技術(shù).................... 96
5.1 JDBC 概述................ 96
5.1.1 JDBC 工作原理....................
96
5.1.2 JDBC API 簡介....................
97
5.2 MySQL 數(shù)據(jù)庫的安裝與配置........ 101
5.3 連接數(shù)據(jù)庫............ 105
5.3.1 連接數(shù)據(jù)庫的一般過程.... 105
5.3.2 使用JDBC-ODBC 驅(qū)動(dòng)連接Access 數(shù)據(jù)庫.. 106
5.3.3 使用JDBC 驅(qū)動(dòng)連接MySQL 數(shù)據(jù)庫..............
108
5.4 數(shù)據(jù)庫高級操作..... 109
5.4.1 使用存儲(chǔ)過程....................
109
5.4.2 事務(wù)操作.... 110
5.4.3 操作二進(jìn)制數(shù)據(jù)................
112
5.5 數(shù)據(jù)庫連接池技術(shù). 113
5.5.1 連接池概述 113
5.5.2 C3P0 連接池的使用.......... 116
小結(jié)....................... ........ 119
習(xí)題....................... ........ 119
第6 章 Web 前端開發(fā)技術(shù)....... 120
6.1 HTML...................... 120
6.1.1 HTML 基本概念與組成..... 120
6.1.2 標(biāo)簽與屬性 121
6.1.3 文檔標(biāo)記及文件格式設(shè)置 123
6.1.4 HTML 列表. 127
6.1.5 HTML 表格. 128
6.1.6 HTML 表單. 129
6.2 HTML5 簡介........... 133
6.2.1 簡化的文檔類型和字符集 133
6.2.2 HTML5 的新結(jié)構(gòu)...............
133
6.2.3 HTML5 的新增內(nèi)聯(lián)元素... 134
6.2.4 HTML5 的新增動(dòng)態(tài)支持功能........................
136
6.3 CSS ......................... 139
6.3.1 CSS 簡介..... 139
6.3.2 創(chuàng)建樣式表 139
6.3.2 使用樣式表 140
6.4 JavaScript ................ 141
6.4.1 JavaScript 語法基礎(chǔ)...........
142
6.4.2 JavaScript 內(nèi)置對象...........
144
6.4.3 瀏覽器對象模型BOM .......
147
6.4.4 文檔對象模型DOM...........
152
小結(jié)....................... ........ 155
習(xí)題....................... ........ 155
第7 章 JSP 基礎(chǔ)技術(shù).............. 156
7.1 JSP 概述.................
156
7.1.1 JSP 的工作原理.................
156
7.1.2 JSP 的特點(diǎn).. 157
7.2 建立JSP 運(yùn)行環(huán)境. 158
7.2.1 JSP 運(yùn)行環(huán)境要求.............
158
7.2.2 JDK 的安裝與配置............
159
7.2.3 JSP 服務(wù)器配置.................
159
7.2.4 開發(fā)環(huán)境平臺(tái) MyEclipse..
161
7.3 JSP 基本語法.......... 162
7.3.1 一個(gè)典型的JSP 文件........
162
7.3.2 通用的語法規(guī)則................
163
7.3.3 JSP 的腳本元素.................
164
7.3.4 JSP 指令..... 165
7.3.5 JSP 動(dòng)作元素.....................
167
7.4 JSP 的內(nèi)置對象...... 173
7.4.1 內(nèi)置對象介紹....................
173
7.4.2 application 對象.................
175
7.4.3 config 對象.. 177
7.4.4 exception 對象...................
177
7.4.5 out 對象...... 178
7.4.6 page 對象.... 180
7.4.7 pageContext 對象...............
180
7.4.8 request 對象 181
7.4.9 response 對象.....................
183
7.4.10 session 對象.....................
185
7.5 JSP 的異常處理...... 187
7.6 JSP 相關(guān)應(yīng)用技術(shù).. 189
7.6.1 JSP 的目錄操作.................
189
7.6.2 JSP 的文本文件操作......... 191
7.6.3 JSP 的流文件操作.............
193
7.6.4 文件的上傳和下載............
194
7.6.5 JSP 的郵件發(fā)送技術(shù)......... 202
小結(jié)....................... ........ 204
習(xí)題....................... ........ 205
第8 章 JSP 核心技術(shù)之JavaBean ....................... 206
8.1 JavaBean 概述......... 206
8.1.1 什么是JavaBean
................ 206
8.1.2 編寫簡單的JavaBean
........ 207
8.1.3 JavaBean 的屬性................
208
8.2 在JSP 中使用JavaBean.................
210
8.2.1 在JSP 中調(diào)用JavaBean.....
210
8.2.2 通過動(dòng)作指令獲取與設(shè)置JavaBean 的屬性值.....................
212
8.3 JavaBean 應(yīng)用實(shí)例. 215
8.3.1 通過JavaBean 解決中文亂碼.........................
215
8.3.2 通過JavaBean 連接數(shù)據(jù)庫 218
8.3.3 通過JavaBean 實(shí)現(xiàn)分頁顯示.........................
222
小結(jié)....................... ........ 225
習(xí)題....................... ........ 226
第9 章 JSP 核心技術(shù)之Servlet ............................ 227
9.1 Servlet 概述............. 227
9.1.1 Servlet 容器與Tomcat 服務(wù)器........................
227
9.1.2 Servlet 的特點(diǎn)....................
228
9.1.3 Servlet 的生命周期............
229
9.1.4 Servlet API 簡介.................
230
9.2 編寫簡單的Servlet . 233
9.2.1 Servlet 基本結(jié)構(gòu)................
233
9.2.2 輸出純文本的Servlet
........ 233
9.2.3 輸出HTML 的Servlet
........ 234
9.2.4 Servlet 的配置....................
235
9.2.5 Servlet 的調(diào)用....................
238
9.3 Servlet 應(yīng)用............. 239
9.3.1 獲取表單數(shù)據(jù)....................
239
9.3.2 讀取HTTP 請求頭............
240
9.3.3 處理Cookie. 241
9.3.4 Servlet 中的HTTP 會(huì)話管理..........................
243
9.3.5 創(chuàng)建Web 監(jiān)聽..................
244
9.3.6 創(chuàng)建過濾程序....................
250
9.4 Servlet 訪問數(shù)據(jù)庫. 255
9.4.1 Servlet 連接數(shù)據(jù)庫............
255
9.4.2 Proxool 連接池技術(shù)...........
257
9.5 MVC 設(shè)計(jì)模式........ 261
9.5.1 Model1 模式 262
9.5.2 Model2 模式 262
9.5.3 MVC 模式... 265
小結(jié)....................... ........ 267
習(xí)題....................... ........ 267
第10 章 Java Web 高級開發(fā)技術(shù)......................... 269
10.1 EL表達(dá)式及標(biāo)簽. 269
10.1.1 表達(dá)式語言......................
269
10.1.2 JSTL標(biāo)準(zhǔn)標(biāo)簽庫............. 276
10.1.3 自定義標(biāo)簽庫的開發(fā)...... 282
10.2 JSP 實(shí)用組件........ 284
10.2.1 文件的上傳......................
284
10.2.2 JSP 的郵件發(fā)送技術(shù)....... 287
10.2.3 JSP 動(dòng)態(tài)圖表...................
293
10.2.4 JSP 輸出報(bào)表...................
296
10.3 Ajax 技術(shù).............. 299
10.3.1 Ajax 概述.. 299
10.3.2 Ajax 的關(guān)鍵技術(shù)..............
300
10.3.3 Ajax 技術(shù)應(yīng)用.................
303
10.3.4 DWR 框架. 305
10.4 jQuery 框架........... 308
10.4.1 jQuery 介紹......................
308
10.4.2 jQuery 實(shí)現(xiàn)Ajax
.............. 309
10.4.3 EasyUI 介紹.....................
312
10.5 Java EE 框架技術(shù). 314
10.5.1 Struts 框架技術(shù)................
314
10.5.2 Spring 框架技術(shù)...............
315
10.5.3 Hibernate 框架技術(shù).........
316
10.5.4 Struts2 Spring Hibernate 框架整合實(shí)例......
317
小結(jié)....................... ........ 324
習(xí)題....................... ........ 324
參考文獻(xiàn)............ 325