本書系統地講解了JSP程序設計所涉及的基本語法,并以在線圖書銷售平臺項目貫穿始終,真正做到項目驅動。全書共9章,內容包括JSP概述、在線圖書銷售平臺項目案例設計、Java數據庫編程技術、HTML和CSS簡介、JSP基本語法詳解、JSP內置對象詳解、EL表達式和JSTL標簽、MVC設計模式和Servlet技術詳解、過濾器和監聽器。本書提供配套電子課件。本書的特色是通俗易懂、案例翔實、項目驅動、體系結構合理、章節設置得當,可作為高等院校計算機及信息工程類專業相關課程的教材,也適合JSP初學者作為入門的自學教材。
前 言
在JavaEE方向的課程體系中,JSP程序設計是一門非常重要的課程,JSP 是一種完全與平臺無關的開發技術,克服了目前ASP和PHP腳本級執行的缺點,將極高的運行效率、較短的開發周期、超強的擴展能力、完全開放的技術標準和自由的開發方式等眾多的完美特性集于一身。JSP可以在Servlet和JavaBean的支持下,完成功能強大的動態網站程序的開發,使構造基于Web的應用程序更加容易和快捷。
本書共9章,內容包括JSP概述、在線圖書銷售平臺項目案例設計、Java數據庫編程技術、HTML和CSS簡介、JSP基本語法詳解、JSP內置對象詳解、EL表達式和JSTL標簽、MVC設計模式和Servlet技術詳解、過濾器和監聽器。在各章語法知識點介紹中,引用相關的案例,將復雜的知識點寓于案例中,力求做到案例教學。每章的最后還附有習題,用于檢驗學習效果和鞏固本章所學內容。
本書的特色在于將在線圖書銷售平臺項目融入各個章節,貫穿全書;在第2章中對該項目進行設計,在后續章節中利用各章所學知識完成項目的各個功能。這樣的設計使得本書的教學真正做到了項目驅動。
本書可作為普通院校計算機及信息工程或相關專業本科生的教材或參考書,也可供相關領域的讀者參考。本書的參考教學時數在72學時以內。
本書由谷志峰、李同偉任主編,負責全書統稿;由琚偉偉任副主編。具體分工為:第4章、第5章、第6章、第7章由谷志峰負責編寫;第1章、第2章、第3章由李同偉負責編寫;第8章、第9章由琚偉偉負責編寫。
本書的出版得到了河南科技大學軟件學院及教務處的大力支持,軟件學院的霍華、劉欣亮、葉傳奇、張虎老師對本書的編寫提出了很多寶貴的意見,在此一并表示衷心的感謝。
盡管在編寫本書過程中,我們本著科學嚴謹的態度,力求精益求精,但錯誤、疏忽之處在所難免,敬請廣大讀者批評指正。
編 者
谷志峰,河南科技大學軟件學院教師,2002年至今在河南科技大學從事計算機方面的教學,主講課程及課程設計、畢業設計等;參與國家自然科學基金、國家973科技計劃項目、省高校杰出科研人才工程項目、河南省杰出人才創新基金、河南省教育廳自然科學研究項目、洛陽市課題及橫向課題多項。發表相關學術與教改論文5篇,獲得教學質量獎多次。
目 錄
第1章 JSP概述1
1.1 JSP簡介1
1.2 JSP工作原理1
1.3 JSP程序體系結構2
1.3.1 比較C/S結構與B/S結構2
1.3.2 三層架構4
1.3.3 兩層架構5
1.4 搭建JSP的運行環境5
1.4.1 JDK的安裝與配置5
1.4.2 Tomcat的安裝、運行與目錄結構7
1.4.3 開發工具的選擇11
1.5 第一個JSP應用12
1.5.1 創建JSP頁面12
1.5.2 運行JSP程序14
習題116
第2章 在線圖書銷售平臺項目案例設計18
2.1 系統需求分析18
2.1.1 系統需求及權限分析18
2.1.2 系統功能詳細介紹18
2.2 數據庫設計23
2.2.1 數據庫設計的三大范式23
2.2.2 數據表結構詳細介紹25
2.3 系統編寫要求及分工29
2.3.1 系統總體架構29
2.3.2 系統分工及要求29
習題230
第3章 Java數據庫編程技術31
3.1 常用數據庫介紹31
3.1.1 Oracle數據庫31
3.1.2 MySQL數據庫32
3.2 JDBC概述33
3.2.1 JDBC簡介33
3.2.2 JDBC驅動程序33
3.3 數據庫操作常用接口簡介34
3.3.1 驅動程序接口Driver34
3.3.2 驅動程序管理器DriverManager類34
3.3.3 數據庫連接接口Connection35
3.3.4 執行SQL語句接口Statement35
3.3.5 執行動態SQL語句接口PreparedStatement35
3.3.6 執行存儲過程接口CallableStatement35
3.3.7 訪問結果集接口ResultSet35
3.4 Java數據庫操作技術36
3.4.1 加載驅動36
3.4.2 建立連接37
3.4.3 執行SQL語句38
3.4.4 獲取結果集41
3.4.5 關閉資源42
3.5 Dao模式42
3.6 Java單元測試技術46
3.7 應用實例49
3.7.1 瀏覽圖書信息功能數據層代碼49
3.7.2 瀏覽圖書明細信息功能數據層代碼51
習題353
第4章 HTML和CSS簡介55
4.1 HTML基礎55
4.1.1 HTML簡介55
4.1.2 表格56
4.1.3 表單59
4.1.4 其他常用標簽62
4.2 CSS基礎63
4.2.1 CSS概念及作用63
4.2.2 CSS基本語法63
4.2.3 頁面布局及排版66
4.3 應用實例68
習題472
第5章 JSP基本語法詳解74
5.1 JSP程序的基本結構74
5.2 JSP指令74
5.2.1 page指令75
5.2.2 include指令76
5.2.3 taglib指令79
5.3 JSP腳本程序79
5.4 JSP表達式82
5.5 JSP聲明標識85
5.6 JSP注釋86
5.7 JSP標準動作簡介87
5.7.1 jsp:include動作88
5.7.2 jsp:forward動作89
5.7.3 操作JavaBean所用到的三個標準動作90
5.8 應用實例94
5.8.1 完成系統主要功能頁面JSP模板的創建94
5.8.2 實現瀏覽圖書類別功能96
習題599
第6章 JSP內置對象詳解101
6.1 內置對象簡介101
6.2 out對象101
6.3 request對象103
6.3.1 請求方式簡介103
6.3.2 接收請求參數104
6.3.3 request屬性管理112
6.4 response對象113
6.4.1 實現重定向頁面113
6.4.2 處理HTTP文件頭114
6.4.3 設置輸出緩沖區115
6.5 session對象115
6.5.1 session對象的特點和概念115
6.5.2 session對象的常用方法介紹117
6.6 application對象125
6.7 cookie技術127
6.7.1 cookie使用初步128
6.7.2 cookie使用進階129
6.8 其他內置對象簡介131
6.9 應用實例132
6.9.1 登錄功能132
6.9.2 注冊功能135
習題6139
第7章 EL表達式和JSTL標簽142
7.1 EL表達式142
7.1.1 EL表達式的概念及用法142
7.1.2 EL隱藏對象144
7.2 JSTL入門147
7.2.1 JSTL概述147
7.2.2 JSTL用法148
7.3 JSTL常用標簽148
7.3.1 表達式操作標簽149
7.3.2 條件標簽151
7.3.3 迭代標簽153
7.4 JSTL其他標簽155
7.4.1 URL標簽相關155
7.4.2 國際化格式標簽簡介156
7.5 應用實例157
7.5.1 瀏覽圖書信息157
7.5.2 查詢圖書信息160
習題7164
第8章 MVC模式和Servlet技術詳解165
8.1 MVC模式165
8.1.1 JSP程序開發模式165
8.1.2 MVC模式166
8.2 Servlet簡介167
8.2.1 Servlet概述167
8.2.2 Servlet生命周期168
8.3 Servlet創建及使用172
8.3.1 Servlet創建172
8.3.2 Servlet實現請求轉發和重定向175
8.3.3 Servlet接收get/post請求177
8.4 Servlet獲取初始化參數及上下文參數179
8.4.1 獲取初始化參數179
8.4.2 獲取上下文參數180
8.5 Servlet獲取JSP內置對象181
8.5.1 Servlet獲得JSP中的out對象181
8.5.2 Servlet獲得JSP中的request對象181
8.5.3 Servlet獲得JSP中的reponse對象182
8.5.4 Servlet獲得JSP中的session對象182
8.5.5 Servlet獲得JSP中的application對象184
8.6 Servlet中的異常處理187
8.7 應用實例188
8.7.1 購物車添加191
8.7.2 購物車移除194
8.7.3 購物車更新195
習題8197
第9章 過濾器和監聽器199
9.1 過濾器199
9.1.1 過濾器概述199
9.1.2 過濾器的生命周期199
9.1.3 過濾器的創建和使用201
9.1.4 過濾器鏈203
9.1.5 利用過濾器實現禁用IP問題206
9.2 監聽器207
9.2.1 監聽器概述207
9.2.2 監聽器接口簡介208
9.2.3 監聽器的創建和使用209
9.3 過濾器和監聽器在JavaEE框架中的運用210
9.4 應用實例212
習題9214
參考文獻215