本書介紹在Eclipse環境下開發JSP應用程序的原理與技術。全書共11章,內容包括JSP原理及開發環境的搭建、JSP語法、JSP內置對象、EL基本用法、數據庫訪問、JavaBean、Servlet、MVC架構、標準標簽庫及自定義標簽、Spring MVC框架、文件上傳下載組件和Excel組件的使用方法等。本書將知識點分解、循序漸進將地理知識測試的設計與實現步驟按照由淺入深的方式拆分到各章,有助于讀者掌握JSP的基礎知識、編程技巧及加深對完整的開發體系的理解。
本書結構緊湊,深入淺出,貼近實踐,便于教學,可作為高等學校計算機及相關專業本科生教材或教學參考書,也可供網站開發人員參考使用。
? 注重完整的項目體系概念,將知識點分解,由淺入深、循序漸進地呈現地理知識考試系統的實現步驟。? 注重學生在不同學習階段的理解力差別,組織材料注重先易后難原則,先用簡單示例闡述基本原理和基礎知識,再完成實際項目部分。每章附有大量習題和深入學習材料,注重應用能力提高。? 書中給出綜合項目的完整代碼,并針對實例進行深入的解析,便于理解掌握。? 以表示與處理相分離、提高代碼重用性為主線,從基礎知識講起,各章節內容以循序漸進的方式編排。? 按照JSP*版本規范編寫。
前言
Java是目前最流行的程序開發語言,在服務器程序設計、手機程序設計等方面應用廣泛。Java作為一種完全的面向對象語言,吸取了其他語言的優點,設計簡潔優美,使用起來方便高效。Java是一個完整的技術平臺,在這個平臺上不斷涌現各種新技術,其中的很多技術是免費的,因此對于中小企業應用來說選擇Java具有非常大的吸引力。在Java發展過程中,不斷有過時的技術被棄用。只有那些自身具有強大生命力的技術才會存活下來,并且被不斷注入新的活力。JSP(Java Server Pages)就是一種自身具有強大的生命力,一直在快速發展的技術。JSP是基于JavaServlet以及整個Java體系的Web開發技術,利用這一技術可以建立安全、跨平臺的動態網站。JSP是由Sun公司倡導、許多公司參與一起建立的一種動態頁面技術標準。自JSP推出后,很多公司都推出了支持JSP技術的服務器,如IBM、Oracle公司等,所以JSP迅速成為商業應用的服務器端語言。JSP具備Java技術的簡單易用、完全的面向對象、具有平臺無關性且安全可靠、面向Internet等特點。JSP從誕生至今,內容越來越豐富,頁面設計越來越簡潔,是Internet上的主流開發工具之一。全書分為11章,內容包括:第1章概述包括Web應用模型介紹、Tomcat的配置、Eclipse開發環境配置、JSP運行原理、利用表單提交數據、在服務器端處理用戶數據。第2章JSP的基本語法包括JSP頁面的組成、腳本元素,常用的指令和動作的運用。第3章JSP內置對象包括request、response、cookie、session、application、out等對象工作機制及應用,結合一個簡單的購物車實例講解各個內置對象的作用范圍。第4章EL包括表達式語言基礎語法和表達式語言的內置對象。第5章數據庫訪問包括創建MySQL數據庫、JDBC應用、使用預編譯語句和ResultSet對象等內容。第6章JavaBean包括在JSP中使用JavaBean、利用表單設置JavaBean屬性、JavaBeans的Scope屬性及利用JavaBean實現數據庫表分頁顯示。第7章Servlet包括Servlet基礎知識、工作原理、生命周期、Servlet與客戶端通信、Servlet過濾器和利用過濾器做身份驗證。[2][3]JSP程序設計前言[2]第8章MVC架構包括MVC架構的基本原理、用RequestDispatcher實現MVC、MVC應用實例。第9章標簽庫包括標準標簽庫和自定義標簽。第10章Spring MVC包括Spring基本特性、Spring框架、Spring MVC入門、基于注解的控制器和文件上傳。第11章JSP實用組件包括文件上傳和下載組件SmartUpload、處理Excel文件組件JXL。本書面向具有一定靜態頁面設計基礎的讀者,如果未學習過靜態頁面設計,需要預先學習附錄所列內容。附錄內容包括JSP開發環境安裝與配置、常用字符集、HTTP協議、HTML、CSS、JavaScript。本書圍繞著一個地理知識測試項目,以教程的形式深入淺出、由易到難地介紹JSP的常用開發技術。為了便于讀者閱讀和理解,本書對某些特定內容采用專門的字體。新增的代碼或關鍵代碼用加粗字體表示,應該刪除的代碼打上了刪除線。例如,在下面的代碼里,將原來的out.print()方法刪除,替換為粗體顯示代碼。代碼清單23修改頁面內容顯示來源 (index.jsp)<%out.print("北京是中華人民共和國首都,簡稱京。");%><%i=(i 1)%mQuestions.length; out.print(mQuestions\[i\].getQuestion());%>本書各章內容前后聯系比較緊密,例如,在前面章節定義的工具類,在后面會直接調用。讀者在閱讀時需要按照章節順序閱讀和調試程序,建議不要在章節間跳讀。對于比較簡單的項目,實現時可以采用不同的JSP技術。為了養成良好的編程習慣,希望讀者最后能夠使用MVC模式設計Web應用程序。為了讓初學者有一個由淺入深、漸進的學習過程,不同章節的代碼設計規范會存在一定的差異。例如,后面章節盡量避免將大量Java代碼嵌入到JSP頁面中,而前面的章節并沒有遵從這一思想;前幾章將JSP頁面放在網站根目錄下,后面又將JSP頁面改為放在WEBINF目錄下。這些差異實際上都與JSP程序設計中存在的不同軟件設計模式之間存在的差異有關。作為初學者,沒有必要也不可能掌握JSP的全部,需要掌握的是軟件系統的開發設計思路與語言的核心知識技能。本書在內容選取上沒有特別注重知識的完備性。另外,為了突出JSP的核心知識,在頁面設計上沒有大量引入復雜的樣式和JavaScript腳本。由于篇幅有限,地理知識測試項目部分內容未能在本書中詳述,讀者可在清華大學出版社網站下載相關電子文檔及代碼。白文秀、侯錕、李淑梅、呂凱參與了本書的編寫工作。本書可以作為高等學校計算機及相關專業的JSP程序設計教材,也可以作為JSP愛好者和網站開發人員的參考書。由于作者水平有限,書中難免存在錯漏之處,敬請讀者批評指正。
作者2016年10月
目錄
第1章概述1
1.1Web應用基礎1
1.1.1Web模型1
1.1.2配置Tomcat2
1.2JSP頁面8
1.2.1創建JSP文件8
1.2.2運行JSP文件10
1.2.3JSP運行機制11
1.3用戶數據提交與處理13
1.3.1利用表單提交數據13
1.3.2處理用戶提交數據14
1.3.3完善輸入界面16
1.3.4設置首頁文件19
實驗120
習題121
第2章JSP基本語法23
2.1腳本元素23
2.1.1聲明23
2.1.2腳本小程序25
2.1.3表達式26
2.2指令元素29
2.2.1page指令29
2.2.2include指令34
2.3動作元素35
2.3.1動作36
2.3.2動作36
2.3.3動作37
2.3.4、動作42
2.4注釋43[2][3]JSP程序設計目錄[2]實驗244
習題244
第3章JSP內置對象47
3.1request對象47
3.1.1request封裝的數據47
3.1.2request對象的主要方法49
3.2response對象54
3.2.1response封裝的數據54
3.2.2response對象的主要方法55
3.2.3操作Cookie57
3.3session對象60
3.3.1session工作機制61
3.3.2session對象的主要方法62
3.4out對象66
3.5application對象68
3.6其他內置對象70
3.7簡單購物車71
實驗378
習題380
第4章EL85
4.1EL表達式基礎85
4.1.1EL語法85
4.1.2\[\]和.操作符85
4.1.3運算符86
4.2EL內置對象86
實驗489
習題490
第5章數據庫訪問92
5.1創建MySQL數據庫92
5.1.1創建數據庫92
5.1.2常用DML語句94
5.2JDBC應用概述95
5.2.1載入JDBC驅動程序96
5.2.2定義連接URL97
5.2.3建立連接97
5.2.4創建Statement對象98
5.2.5執行查詢或更新98
5.2.6結果處理99
5.2.7關閉連接100
5.2.8數據庫連接工具類101
5.3使用預編譯語句104
5.4ResultSet對象106
5.4.1讀取數據106
5.4.2ResultSet類型106
5.4.3元數據108
實驗5112
習題5114
第6章JavaBean120
6.1JavaBean簡介120
6.2在JSP中使用JavaBean122
6.3利用表單設置JavaBean屬性127
6.4JavaBean的Scope屬性133
6.5JavaBean應用實例137
實驗6141
習題6142
第7章Servlet148
7.1什么是Servlet148
7.1.1編寫第一個Servlet148
7.1.2Servlet工作原理151
7.1.3Servlet生命周期152
7.2Servlet與客戶端通信154
7.2.1Servlet生成純文本154
7.2.2Servlet生成HTML155
7.2.3接收客戶提交參數157
7.2.4session對象159
7.2.5Servlet上下文160
7.2.6Servlet的請求轉發161
7.3Servlet過濾器162
7.3.1創建簡單的過濾器162
7.3.2Filter接口166
7.3.3Filter生命周期167
7.3.4應用過濾器做身份驗證168
7.4Servlet應用實例169
實驗7175
習題7176
第8章MVC架構182
8.1什么是MVC182
8.2用RequestDispatcher實現MVC183
8.2.1定義JavaBean來表示數據184
8.2.2編寫Servlet處理請求184
8.2.3填寫JavaBean185
8.2.4結果的存儲185
8.2.5轉發請求到JSP頁面186
8.2.6從JavaBean中提取數據186
8.2.7目的頁面中相對URL的解釋187
8.2.8控制器示例187
實驗8194
習題8196
第9章標簽庫200
9.1標準標簽庫200
9.1.1輸出標簽c:out201
9.1.2迭代標簽202
9.1.3條件標簽204
9.1.4變量操作標簽206
9.1.5URL相關標簽207
9.2自定義標簽210
9.2.1標簽處理類210
9.2.2標簽庫描述文件211
9.2.3在JSP文件使用自定義標簽212
9.2.4標簽屬性212
9.2.5標簽體215
9.2.6定制標簽應用示例217
實驗9220
習題9220
第10章Spring MVC223
10.1Spring簡介223
10.1.1基于POJO223
10.1.2依賴注入224
10.1.3面向切面編程226
10.1.4利用模板消除重復代碼226
10.1.5Bean容器226
10.1.6Spring框架230
10.2Spring MVC入門231
10.2.1搭建Spring MVC232
10.2.2Spring MVC示例234
10.3基于注解的控制器238
10.3.1@Controller238
10.3.2@RequestMapping239
10.3.3利用控制器類實現QuestionEdit241
10.3.4利用注解實現依賴注入244
10.4文件上傳247
10.4.1客戶端編程248
10.4.2接收上傳的文件248
實驗10253
習題10254
第11章JSP實用組件255
11.1文件上傳和下載組件255
11.1.1SmartUpload常用類255
11.1.2使用jspSmartUpload上傳257
11.2處理Excel文件組件259
11.2.1jxl對象260
11.2.2基本操作260
11.2.3Excel批量導入數據263
實驗11265
習題11266
習題參考答案267
附錄AJSP開發環境安裝與配置270
附錄B常用字符集272
附錄CHTTP協議274
附錄DHTML、CSS、JavaScript簡介277
參考文獻287