內容簡介
本書以零基礎講解為宗旨,用實例引導讀者深入學習,采取【基礎入門→核心技術→框架應用→項目實訓】的講解模式,深入淺出地講解Java的各項技術及實戰技能。
本書第1篇【基礎入門】主要內容包括熟悉Java Web開發、Java Web開發環境搭建、快速認識JSP、JSP語言基礎、JSP內置對象等;第2篇【核心技術】主要內容包括Servlet技術、JavaBean技術、過濾器技術、監聽器技術、JDBC與MySQL、表達式語言EL、XML技術、JSTL技術、Ajax技術等;第3篇【框架應用】主要內容包括Struts 2基礎知識、Struts 2高級技術、Hibernate 4技術、Spring 4技術、Struts 2+Spring 4+Hibernate 4等;第4篇【項目實訓】主要內容包括開發在線購物商城、開發在線考試系統、開發火車訂票系統。
本書適合任何想學習Java Web編程語言的人員,無論您是否從事計算機相關行業,無論您是否接觸過Java Web,通過學習均可快速掌握Java Web在項目開發中的知識和技巧。
前 言
“網站開發案例課堂”系列圖書是專門為軟件開發和數據庫初學者量身定制的一套學習用書,整套書涵蓋軟件開發、數據庫設計等方面。整套書具有以下幾個特點。
前沿科技
無論是軟件開發還是數據庫設計,我們都精選較為前沿或者用戶群最大的領域推進,幫助大家認識和了解最新動態。
權威的作者團隊
組織國家重點實驗室和資深應用專家聯手編著該套圖書,融合豐富的教學經驗與優秀的管理理念。
學習型案例設計
以技術的實際應用過程為主線,全程采用圖解和同步多媒體結合的教學方式,生動、直觀、全面地剖析使用過程中的各種應用技能,降低難度,提升學習效率。
為什么要寫這樣一本書
Java是Sun公司推出的能夠跨越多平臺的、可移植性最高的一種面向對象的編程語言,也是目前最先進、特征最豐富、功能最強大的計算機語言。利用Java可以編寫桌面應用程序、Web應用程序、分布式系統應用程序、嵌入式系統應用程序等,從而使其成為應用范圍最廣泛的開發語言,特別是在Web程序開發方面。目前學習和關注Java Web的人越來越多,而很多Java Web的初學者都苦于找不到一本通俗易懂、容易入門和案例實用的參考書。通過本書的案例實訓,讀者可以很快地上手流行的工具,提高職業化能力,從而幫助解決公司與求職者的雙重需求問題。
本書特色
零基礎、入門級的講解
無論您是否從事計算機相關行業,無論您是否接觸過Java Web程序開發,都能從本書中找到最佳起點。
超多、實用、專業的范例和項目
本書在編排上緊密結合深入學習Java Web程序開發技術的先后過程,從配置Java Web開發環境開始,逐步帶領大家深入地學習各種應用技巧,側重實戰技能,使用簡單易懂的實際案例進行分析和操作指導,讓讀者讀起來簡明輕松,操作起來有章可循。
隨時檢測自己的學習成果
每章首頁中,均提供了“本章要點”,以指導讀者重點學習及學后檢查。
大部分章節最后的“跟我學上機”板塊,均根據本章內容精選而成,讀者可以隨時檢測自己的學習成果和實戰能力,做到融會貫通。
細致入微、貼心提示
本書在講解過程中,在各章中使用了“注意”和“提示”等小貼士,使讀者在學習過程中更清楚地了解相關操作、理解相關概念,并輕松掌握各種操作技巧。
專業創作團隊和技術支持
本書由千谷高新教育中心編著和提供技術支持。
您在學習過程中遇到任何問題,可加入QQ群(案例課堂VIP)451102631進行提問,專家人員會在線答疑。
超值贈送資源
全程同步教學錄像
涵蓋本書所有知識點,詳細講解每個實例及項目的過程及技術關鍵點。比看書更輕松地掌握書中所有的Java Web程序開發知識,而且擴展的講解部分使您得到比書中更多的收獲。
超多容量王牌資源大放送
本書贈送了十大超值的王牌資源。包括本書實例源文件、精美教學幻燈片、精選本書教學視頻、MyEclipse常用快捷鍵、MyEclipse提示與技巧、Java SE類庫查詢手冊、Java程序員面試技巧、Java 常見面試題、Java常見錯誤及解決方案、Java開發經驗及技巧大匯總等。讀者可以通過QQ群(案例課堂VIP)451102631獲取贈送資源,也可以掃描二維碼,下載本書資源,還可以進入http://www.apecoding.com/下載贈送資源。
讀者對象
沒有任何Java Web開發技術的初學者。
有一定的Java Web開發基礎,想精通Java Web開發的人員。
有一定的Java Web開發基礎,沒有項目經驗的人員。
正在進行畢業設計的學生。
大專院校及培訓學校的老師和學生。
創作團隊
本書由劉玉紅和侯永崗編著,參加編寫的人員還有蒲娟、劉玉萍、裴雨龍、李琪、周佳、付紅、李園、郭廣新、王攀登、劉海松、孫若淞、王月嬌、包慧利、陳偉光、胡同夫、王偉、梁云梁和周浩浩。在編寫過程中,我們竭盡所能地將最好的講解呈現給讀者,但也難免有疏漏和不妥之處,敬請不吝指正。若您在學習中遇到困難或疑問,或有何建議,可寫信至信箱357975357@qq.com。
編 者
目 錄
第1篇 基 礎 入 門
第1章 揭開Java Web的神秘面紗——
熟悉Java Web開發 3
1.1 Web開發基礎知識 4
1.1.1 Web概述 4
1.1.2 Web服務器 4
1.1.3 Web頁面 6
1.1.4 網站 6
1.2 Web開發體系結構 6
1.2.1 C/S體系結構 6
1.2.2 B/S體系結構 7
1.2.3 C/S與B/S的區別 8
1.3 Web應用程序的工作原理 9
1.3.1 靜態網站 9
1.3.2 動態網站 10
1.4 Web應用技術 11
1.4.1 客戶端應用的技術 11
1.4.2 服務器端應用的技術 12
1.5 大神解惑 13
1.6 跟我學上機 13
第2章 開發前必備工作——Java Web
開發環境搭建 15
2.1 搭建Java環境 16
2.1.1 JDK下載 16
2.1.2 JDK安裝 17
2.1.3 JDK配置 18
2.1.4 測試JDK 20
2.2 Tomcat服務器 21
2.2.1 Tomcat的下載 21
2.2.2 Tomcat的安裝 22
2.2.3 Tomcat的啟動與關閉 24
2.2.4 修改Tomcat端口 24
2.2.5 測試Tomcat 25
2.3 MyEclipse的下載與安裝 26
2.3.1 MyEclipse的下載 26
2.3.2 MyEclipse的安裝 27
2.4 部署Web項目 28
2.4.1 在MyEclipse中配置Tomcat 28
2.4.2 創建第一個Web項目 30
2.4.3 將項目部署到Tomcat 31
2.5 大神解惑 33
2.6 跟我學上機 34
第3章 零基礎開始學習——快速認識
JSP 35
3.1 JSP概述 36
3.2 JSP形成歷史 36
3.3 JSP的優勢 37
3.4 JSP運行機制 39
3.5 JSP開發的兩種模式 40
3.5.1 JSP+JavaBean模式 40
3.5.2 JSP+JavaBean+Servlet模式 40
3.6 第一個JSP頁面 41
3.7 大神解惑 43
3.8 跟我學上機 44
第4章 靈活使用JSP——JSP語言
基礎 45
4.1 JSP注釋 46
4.2 JSP聲明 47
4.3 JSP代碼段 47
4.4 JSP表達式 49
4.5 JSP指令 50
4.5.1 page指令 50
4.5.2 include指令 52
4.5.3 taglib指令 54
4.6 JSP動作 56
4.6.1 include動作 56
4.6.2 forward動作 57
4.6.3 param動作 58
4.6.4 plugin動作 60
4.7 JSP異常 60
4.8 大神解惑 60
4.9 跟我學上機 62
第5章 掌握JSP核心技術——
JSP內置對象 63
5.1 內置對象的作用范圍 64
5.1.1 Application作用范圍 64
5.1.2 Session作用范圍 64
5.1.3 Request作用范圍 64
5.1.4 Page作用范圍 66
5.2 out對象 67
5.3 request對象 69
5.3.1 獲取客戶端信息 69
5.3.2 獲取請求參數 71
5.3.3 JSP中文亂碼 73
5.4 response對象 75
5.4.1 response概述 75
5.4.2 response重定向 76
5.5 session對象 78
5.5.1 session概述 78
5.5.2 存儲客戶端信息 79
5.5.3 銷毀session 82
5.6 session跟蹤 82
5.6.1 URL重寫 82
5.6.2 表單隱藏字段 83
5.6.3 Cookie 84
5.6.4 HttpSession對象 87
5.7 application對象 90
5.8 page對象 92
5.9 pageContext對象 92
5.10 config對象 95
5.11 exception對象 95
5.12 大神解惑 97
5.13 跟我學上機 98
第2篇 核 心 技 術
第6章 服務器端程序的開發——
Servlet技術 101
6.1 Servlet簡介 102
6.1.1 工作原理 102
6.1.2 生命周期 102
6.1.3 實現MVC開發模式 103
6.2 Servlet常用的接口和類 104
6.2.1 Servlet()方法 105
6.2.2 HttpServlet類 105
6.2.3 HttpSession接口 106
6.2.4 ServletConfig接口 107
6.2.5 ServletContext接口 107
6.3 創建和配置Servlet 108
6.4 用Servlet獲取信息 111
6.4.1 獲取HTTP頭部信息 111
6.4.2 獲取請求對象信息 112
6.4.3 獲取參數信息 113
6.5 在JSP頁面中調用Servlet的方法 115
6.5.1 表單提交調用Servlet 116
6.5.2 超鏈接調用Servlet 119
6.6 Servlet的應用 121
6.6.1 下載上傳組件 121
6.6.2 使用Servlet上傳文件 125
6.6.3 使用Servlet下載文件 128
6.6.4 Cookies操作 130
6.6.5 Session操作 132
6.7 大神解惑 133
6.8 跟我學上機 134
第7章 Java的可重用組件——
JavaBean技術 135
7.1 JavaBean簡介 136
7.1.1 JavaBean概述 136
7.1.2 JavaBean的種類 136
7.2 非可視化JavaBean 136
7.2.1 JavaBean的編碼規則 136
7.2.2 JavaBean屬性 137
7.3 使用JavaBean的原因 138
7.4 在JSP中使用JavaBean 142
7.4.1 <jsp:useBean>動作 142
7.4.2 <jsp:setProperty>動作 143
7.4.3 <jsp:getProperty>動作 143
7.5 JavaBean的范圍 144
7.5.1 page范圍 144
7.5.2 request范圍 146
7.5.3 session范圍 148
7.5.4 application范圍 149
7.6 大神解惑 151
7.7 跟我學上機 151
第8章 過濾瀏覽器的請求——
過濾器技術 153
8.1 過濾器簡介 154
8.2 過濾器接口 154
8.2.1 Filter接口 154
8.2.2 FilterConfig接口 155
8.2.3 FilterChain接口 155
8.3 創建和配置過濾器 155
8.4 轉換字符編碼過濾器 157
8.5 大神解惑 160
8.6 跟我學上機 160
第9章 監聽Web應用程序——
監聽器技術 161
9.1 監聽器簡介 162
9.1.1 監聽器概述 162
9.1.2 監聽器接口 162
9.2 監聽器接口 163
9.2.1 監聽對象的創建與銷毀 163
9.2.2 監聽對象的屬性 164
9.2.3 監聽Session中的對象 166
9.3 創建和配置監聽器 166
9.4 統計在線人數 168
9.5 Servlet3.0的新特性 173
9.5.1 注解 173
9.5.2 異步處理 179
9.5.3 上傳組件 181
9.6 大神解惑 184
9.7 跟我學上機 184
第10章 Java Web的數據庫編程——
JDBC與MySQL 185
10.1 JDBC概述 186
10.1.1 JDBC原理 186
10.1.2 JDBC驅動 186
10.2 連接數據庫 187
10.2.1 安裝MySQL數據庫 188
10.2.2 安裝Navicat 191
10.2.3 連接數據庫的步驟 192
10.2.4 JDBC入門案例 193
10.3 驅動管理器類 195
10.3.1 加載JDBC驅動 195
10.3.2 DriverManager類 196
10.4 數據庫連接接口 197
10.4.1 常用方法 197
10.4.2 處理元數據 198
10.5 數據庫常用接口 199
10.5.1 Statement接口 199
10.5.2 PreparedStatement接口 200
10.5.3 ResultSet接口 200
10.6 綜合演練——學生信息管理系統 201
10.6.1 創建表student 201
10.6.2 創建學生類 201
10.6.3 連接數據庫 203
10.6.4 管理員登錄頁面 203
10.6.5 登錄處理頁面 205
10.6.6 顯示學生信息 206
10.6.7 添加學生信息 207
10.6.8 修改學生信息 210
10.6.9 刪除學生信息 214
10.6.10 錯誤頁面 216
10.6.11 配置文件 216
10.6.12 運行項目 217
10.7 大神解惑 219
10.8 跟我學上機 220
第11章 簡化JSP的代碼——表達式
語言EL 221
11.1 EL簡介 222
11.1.1 EL概述 222
11.1.2 EL基本語法 222
11.1.3 EL變量 222
11.1.4 EL的特點 224
11.2 EL運算符 224
11.2.1 判斷是否為空 224
11.2.2 訪問數據 225
11.2.3 算術運算符 226
11.2.4 關系運算符 227
11.2.5 邏輯運算符 228
11.2.6 條件運算符 229
11.3 EL隱含對象 230
11.3.1 EL隱含對象概述 230
11.3.2 pageContext隱含對象 230
11.3.3 與范圍有關的隱含對象 232
11.3.4 param和paramValues對象 233
11.3.5 header和headerValues對象 235
11.3.6 cookie對象 236
11.3.7 initParam對象 237
11.4 與低版本環境兼容——禁用EL 238
11.4.1 反斜杠“\” 238
11.4.2 page指令 239
11.4.3 配置文件 240
11.5 大神解惑 242
11.6 跟我學上機 243
第12章 網絡數據傳輸的格式——
XML技術 245
12.1 XML概述 246
12.1.1 XML概念 246
12.1.2 XML與HTML的區別 246
12.2 XML基本語法 246
12.2.1 文檔聲明 246
12.2.2 標簽(元素) 247
12.2.3 標簽嵌套 247
12.2.4 屬性與注釋 247
12.2.5 實體引用 248
12.3 XML樹結構 249
12.4 XML解析器 249
12.4.1 解析XML文檔 250
12.4.2 解析XML字符串 250
12.5 XML 文檔對象 251
12.6 大神解惑 254
12.7 跟我學上機 254
第13章 JSP的標簽庫——
JSTL技術 255
13.1 JSTL簡介 256
13.1.1 JSTL概述 256
13.1.2 導入標簽庫 256
13.1.3 JSTL分類 256
13.2 JSTL環境配置 259
13.3 表達式控制標簽 260
13.3.1 <c:out>標簽 260
13.3.2 <c:set>標簽 261
13.3.3 <c:remove>標簽 264
13.3.4 <c:catch>標簽 265
13.4 流程控制標簽 266
13.4.1 <c:if>標簽 266
13.4.2 <c:choose>標簽 268
13.4.3 <c:when>標簽 268
13.4.4 <c:otherwise>標簽 268
13.5 循環標簽 269
13.5.1 <c:forEach>標簽 269
13.5.2 <c:forTokens>標簽 272
13.6 URL操作標簽 274
13.6.1 <c:import>標簽 274
13.6.2 <c:param>標簽 275
13.6.3 <c:url>標簽 276
13.6.4 <c:redirect>標簽 277
13.7 自定義標簽 278
13.7.1 創建功能類 279
13.7.2 描述文件 279
13.7.3 調用標簽 280
13.8 大神解惑 281
13.9 跟我學上機 281
第14章 異步交互式動態網頁——
Ajax技術 283
14.1 Ajax概述 284
14.1.1 Ajax簡介 284
14.1.2 Ajax工作原理 284
14.1.3 Ajax組成元素 284
14.2 XMLHttpRequest對象 285
14.2.1 XHR對象簡介 285
14.2.2 XHR常用方法和屬性 285
14.2.3 創建XHR對象 288
14.3 XHR請求 289
14.3.1 GET請求 289
14.3.2 POST請求 290
14.4 XHR響應 293
14.4.1 responseText屬性 293
14.4.2 responseXML屬性 293
14.5 大神解惑 295
14.6 跟我學上機 296
第3篇 框 架 應 用
第15章 經典MVC框架技術——
Struts 2基礎知識 299
15.1 Struts 2概述 300
15.1.1 Struts MVC模式 300
15.1.2 Struts工作流程 301
15.1.3 Struts基本配置 301
15.2 第一個Struts 2程序 303
15.2.1 創建JSP頁面 303
15.2.2 創建Action 304
15.2.3 struts.xml文件 305
15.2.4 web.xml文件 307
15.2.5 顯示信息 307
15.2.6 運行項目 308
15.3 控制器Action 308
15.3.1 Action接口 309
15.3.2 屬性注入值 309
15.4 動態方法調用 311
15.4.1 感嘆號方式 311
15.4.2 method屬性 313
15.4.3 通配符方式 315
15.5 Map類型變量 317
15.6 大神解惑 319
15.7 跟我學上機 320
第16章 技術更上一層樓——Struts 2
高級技術 321
16.1 Struts攔截器 322
16.1.1 攔截器概述