關于我們
書單推薦
新書推薦
|
JSP程序設計
JavaWeb應用程序是當前主流的服務器端技術。本書通過大量實例深入淺出地介紹Java Web應用的開發(fā), 全書共14章, 內容包括: Java Web開發(fā)上手、JSP中的超文本、JSP語法、JSP內置對象、JSP中使用JavaBean、用Maven管理項目、Servlet技術、監(jiān)聽器和過濾器、MVC設計模式、JDBC訪問數(shù)據(jù)庫、表達式語言EL、標準標簽庫JSTL、持久層框架MyBatis、Spring MVC。
JSP是一種廣泛使用的動態(tài)網(wǎng)頁技術標準。JSP能夠響應客戶端的請求,并動態(tài)生成HTML、XML或其他格式文檔的Web頁面。JSP以Java語言作為腳本語言,可以使用Java語言的大部分類庫。 JSP頁面中既可以有靜態(tài)的HTML標簽,也可以有動態(tài)的Java腳本。當一個JSP頁面□□次被請求時,應用服務器首先將JSP頁面編譯成Servlet(.java),然后調用Java編譯器將Servlet編譯成字節(jié)碼文件(.class),□后將字節(jié)碼文件實例化成Java對象,并調用這個對象的service()方法為客戶端請求提供服務。編譯JSP頁面僅僅發(fā)生在該頁面□□次被請求時。對于后續(xù)的請求,應用服務器將直接使用內存中的Java對象提供服務。當然,如果JSP頁面在服務器運行期間被修改,應用服務器也會重新編譯這個JSP頁面。 Servlet是一種運行在服務器端的Java應用程序。Servlet由應用服務器加載,并由應用服務器維護其生命周期。服務器根據(jù)客戶端請求的方法調用Servlet中對應的方法。Servlet讀取瀏覽器或其他HTTP客戶端發(fā)來的請求參數(shù),動態(tài)生成響應返回給客戶端。 Servlet監(jiān)聽器可以監(jiān)聽Web應用中發(fā)生的各種事件。利用監(jiān)聽器,當事件發(fā)生時可以在后臺自動執(zhí)行某些代碼。Servlet過濾器可以截獲HTTP的請求和響應。多個過濾器形成一個過濾器鏈。利用過濾器可以將一些公共代碼從Servlet和JSP中分離出來。 JSP表達式語言(Expression Language,EL)使得訪問存儲在JavaBean中的數(shù)據(jù)□得非常簡單,EL提供了在JSP頁面中以更簡潔的語法輸出數(shù)據(jù)的機制。JSP標準標簽庫(Java Server Pages Standard Tag Library,JSTL)為Java Web開發(fā)者提供了一個標準的通用標簽庫。通過JSTL,可以部分取代傳統(tǒng)JSP程序中嵌入Java代碼的做法,使得JSP頁面的風格趨于統(tǒng)一,且容易維護。 MVC設計模式是Web開發(fā)常用的設計模式,核心思想是有效地組合模型(Model)、視圖(View)和控制器(Controller),每個部分各有所長,分工明確。模型負責業(yè)務邏輯處理和封裝數(shù)據(jù),視圖只負責顯示的界面,控制器控制著模型和視圖之間的交互過程。JSP作為視圖,Servlet作為控制器,JavaBean作為模型,JSP+Servlet+JavaBean可以實現(xiàn)符合MVC設計模式的Java Web程序。 Maven是一個軟件項目管理的綜合工具。基于項目對象模型(Project Object Model,POM),Maven可以通過一小段XML描述信息來管理項目的構建、報告和文檔。Maven還是一個依賴管理工具,它提供了中央倉庫,能夠自動下載構件(Artifact)。組ID、構件ID、版本三個元素□□定位一個構件。 JDBC是Java Database Connectivity的縮寫,職責是為Java應用程序訪問數(shù)據(jù)庫提供一種通用手段。JDBC API為Java開發(fā)者使用數(shù)據(jù)庫提供了統(tǒng)一的編程接口,它由一組Java類和接口組成。 對象關系映射(Object Relational Mapping,ORM)是一種為了解決面向對象與關系數(shù)據(jù)□□在的互不匹配現(xiàn)象的技術。ORM可以在對象和關系數(shù)據(jù)庫之間建立映射,使得程序可以通過操作對象的方式來訪問關系數(shù)據(jù)庫。MyBatis是一個優(yōu)秀的Java持久化框架,可以實現(xiàn)ORM映射、查詢緩存等常用功能。 Spring為Java開發(fā)提供了各種基礎設施,Spring框架是Spring提供的支持企業(yè)級應用開發(fā)的項目,其核心是一個控制反轉(Inversion of Control,IoC)和面向切面(Aspect Oriented Programming,AOP)的容器?刂品崔D就是應用本身不負責依賴對象的創(chuàng)建及維護,依賴對象的創(chuàng)建及維護是由外部容器負責的。這樣控制權就從應用轉移到了外部容器,控制權的轉移就是所謂反轉。依賴注入是指在運行時,由外部容器動態(tài)地將依賴對象注入到組件中。Spring框架就是一個大容器,可以將所有對象的創(chuàng)建和依賴關系的維護交給Spring框架管理。 JSP程序設計(第□版)前言Spring MVC是Spring框架的一個模塊,是一個MVC設計模式的Web框架。Spring MVC中的控制器可以被注入Spring容器中的服務層組件,而服務層組件可以被注入持久層組件。Spring MVC的Web應用由三層架構組成: Web層、業(yè)務層、持久層。注解@Controller和@RestController用于定義Web層的控制器,注解@Service用于定義服務層組件,注解@Re□□□itory用于定義持久層的數(shù)據(jù)訪問組件,而注解@Autowired使得Spring可以自動組裝組件。 Spring為主流的應用框架提供了集成支持。在Spring中集成持久層框架MyBatis,開發(fā)者可在XML映射文件中編寫SQL語句,給出Mapper的實現(xiàn),這個XML映射文件就相當于數(shù)據(jù)訪問對象的實現(xiàn)類。Spring掃描XML映射文件創(chuàng)建持久層組件,并將持久層組件注入到服務層組件中。 從頭開始配置一個Spring MVC+Spring IoC+MyBatis的項目對于開發(fā)者理解控制反轉、依賴注入、MVC設計模式、Web分層架構、面向切面等基礎知識是必要的。Spring還提供了更簡單的Spring Boot項目來創(chuàng)建和配置Spring應用,它可以創(chuàng)建獨立運行的、產(chǎn)品等級的、只需□少配置的、基于Spring的應用。 本書從實踐出發(fā),通過大量的小例子深入淺出地介紹Java Web應用程序的設計開發(fā)!酢跽陆榻BJSP的工作原理、Java Web應用程序的目錄結構、常見的應用服務器、集成開發(fā)環(huán)境Eclipse。第□章介紹HTML標簽,以及如何讀取表單數(shù)據(jù)。第3章介紹JSP的基本語法,包括指令元素、腳本元素、動作元素。第4章介紹HTTP協(xié)議和全部9個JSP內置對象。第5章介紹使用JavaBean封裝業(yè)務邏輯和在JSP頁面中使用JavaBean。第6章介紹項目管理工具Maven,它還是一個依賴管理工具,提供了中央倉庫,能夠自動下載構件。第7章介紹JSP的基礎Servlet技術,并用Servlet實現(xiàn)生成JPEG圖片、發(fā)送電子郵件、上傳文件。第8章介紹監(jiān)聽器和過濾器。監(jiān)聽器(Listener)用于監(jiān)聽并處理Web應用中發(fā)生的各種事件。過濾器(Filter)可以截獲HTTP的請求和響應。第9章介紹MVC設計模式,使用JSP + Servlet + JavaBean可實現(xiàn)MVC模式!酢0章介紹JDBC連接MySQL數(shù)據(jù)庫,除了介紹基本數(shù)據(jù)庫操作之外,還介紹事務處理、存儲過程、連接池和數(shù)據(jù)源等高級數(shù)據(jù)庫技術!酢1章介紹表達式語言EL,它可以用更簡潔的語法讀取屬性值!酢酢跽陆榻BJSP標準標簽庫JSTL,使用JSTL標簽可以讓頁面更簡潔并易于維護。□□3章介紹一種持久層框架MyBatis,它是一個SQL映射框架(半自動ORM框架),而不是一個完整的ORM框架。MyBatis使用簡單的XML映射器就可以免除了幾乎所有的JDBC代碼!酢4章介紹Spring MVC,首先介紹控制反轉和依賴注入的概念,接著介紹Spring MVC的概念和如何配置、接收多個請求參數(shù)、注入服務層組件、響應JSON、Spring和MyBatis的集成,以及使用AOP配置聲明式數(shù)據(jù)庫事務。 本書第6章使用Maven管理項目,之后的各章項目均使用Maven來管理JAR文件,學會用Maven管理項目至關重要!酢0章JDBC訪問數(shù)據(jù)庫的內容從第4章就開始使用,需提前學習如何連接MySQL數(shù)據(jù)庫和執(zhí)行SELECT語句!酢1章表達式語言EL和□□□章標準標簽庫JSTL的內容可以只掌握類似${student.name}的EL和迭代標簽。Spring MVC + Spring IoC + MyBatis的方案是當前Java Web后端開發(fā)主流的企業(yè)級解決方案,□□3章持久層框架MyBatis和□□4章Spring MVC需要重點掌握。 Java Web開發(fā)是一門實踐性很強的課程。本書在講解每個知識點的時候都給出了對應的代碼。希望這些代碼對讀者的實際開發(fā)有幫助,也希望讀者能夠親自動手編寫和調試這些代碼。交流可以促進學習,歡迎您寫信給本書作者并加入課程交流□。 佟強2022年4月
佟強博士2006年畢業(yè)于中國科學院計算技術, 擁有10余年的實際項目開發(fā)經(jīng)驗和編程類課程教學經(jīng)驗,目前正在講授的課程有《計算機應用基礎》、《Java面向對象程序設計》、《Web應用程序設計》和《C++程序設計》。2013年在清華大學出版社出版了《JSP程序設計》一書,目前正在改版和撰寫新書《C++程序設計》的初稿。
第1章Java Web開發(fā)上手/1
1.1動態(tài)網(wǎng)頁技術1 1.1.1CGI1 1.1.2ASP1 1.1.3ASP.NET2 1.1.4PHP2 1.1.5Servlet2 1.1.6JSP2 1.2JSP基本概念2 1.2.1JSP的工作原理2 1.2.2常見應用服務器3 1.2.3Java Web應用程序的目錄結構3 1.2.4開發(fā)環(huán)境4 1.3JDK安裝與配置4 1.4應用服務器Tomcat6 1.4.1Tomcat簡介6 1.4.2安裝Tomcat7 1.4.3啟動/停止Tomcat7 1.4.4使用瀏覽器訪問Tomcat9 1.4.5修改Tomcat監(jiān)聽端口9 1.4.6管理Web應用和虛擬主機10 1.4.7Tomcat運行為Windows服務12 1.5集成開發(fā)環(huán)境Eclipse15 1.5.1Eclipse簡介15 1.5.2安裝Eclipse15 1.5.3Eclipse中添加Tomcat16 1.5.4Web文件的字符編碼16 1.5.5開發(fā)22個JSP程序17 1.5.6將Web應用打包成WAR文件23 本章小結25 習題一25 第2章JSP中的超文本/27 2.1頁面27 2.2字體29 2.3文字布231 2.4圖像35 2.5表格36 2.6框架41 2.7表單與請求參數(shù)42 2.8讀取中文請求參數(shù)47 本章小結49 習題二50 JSP程序設計(第2版)目錄第3章JSP語法/51 3.1JSP文件的組成51 3.1.1一個典型的JSP文件51 3.1.2分析JSP文件中的元素52 3.1.3JSP文件的運行結果52 3.1.4JSP轉譯的Java源文件53 3.2JSP中的注釋55 3.3指令元素57 3.3.1page指令57 3.3.2include指令59 3.3.3taglib指令61 3.4腳本元素62 3.4.1聲明<%!與%>62 3.4.2表達式 <%=與%>64 3.4.3小腳本 <%與%>65 3.4.4表達式語言 ${}67 3.5動作元素69 3.5.1提供參數(shù)69 3.5.2包含頁面69 3.5.3轉發(fā)請求71 3.5.4使用JavaBean73 本章小結73 習題三73 第4章JSP內置對象/75 4.1HTTP協(xié)議75 4.1.1統(tǒng)一資源定位符URL75 4.1.2HTTP工作原理76 4.1.3HTTP報文格式77 4.1.4Cookie80 4.2內置對象介紹81 4.2.1內置對象的功能81 4.2.2內置對象的類型81 4.3內置對象82 4.3.1out82 4.3.2request82 4.3.3response87 4.3.4session90 4.3.5application94 4.3.6config97 4.3.7page98 4.3.8pageContext98 4.3.9exception99 4.4JSP實例101 4.4.1用戶登錄102 4.4.22簡單的購物小車103 4.4.3考研成績查詢系2206 本章小結112 習題四112 第5章JSP中使用JavaBean/115 5.1JavaBean介紹115 5.1.1JavaBean簡介115 5.1.2編寫JavaBean遵循的原則116 5.1.3JavaBean的屬性116 5.2118 5.2.1的基本語法118 5.2.2JavaBean的條件化操作119 5.2.3JavaBean存放的位置121 5.2.4JavaBean的作用范圍122 5.3獲取JavaBean的屬性123 5.3.1123 5.3.2使用EL獲取JavaBean屬性124 5.4125 5.4.1value給出屬性的值125 5.4.2param給出HTTP請求參數(shù)的名字126 5.4.3自動匹配單個HTTP請求參數(shù)127 5.4.4自動匹配全部HTTP請求參數(shù)127 5.4.5索引屬性的HTTP請求參數(shù)自動匹配128 5.5用戶登錄(JSP+JavaBean+MySQL)130 5.5.1用戶表user130 5.5.2SHA256算法130 5.5.3用戶類: User131 5.5.4JSP頁面133 5.6購物小車(JSP+JavaBean+MySQL)135 5.6.1商品表和商品類Item135 5.6.2數(shù)據(jù)庫工具類DatabaseUtils136 5.6.3商品表數(shù)據(jù)訪問類ItemDao137 5.6.4購物小車類CartService139 5.6.5商品列表頁面shopping.jsp141 5.6.6購物小車頁面cart.jsp143 本章小結145 習題五146 第6章用Maven管理項目/148 6.1安裝和配置Maven148 6.1.1下載和安裝Maven148 6.1.2Maven的配置文件148 6.1.3Eclipse自帶的Maven149 6.2創(chuàng)建Maven管理的動態(tài)網(wǎng)站項目150 6.2.1在Eclipse內部添加Tomcat150 6.2.2設置Web文件的字符集150 6.2.3創(chuàng)建動態(tài)網(wǎng)站項目151 6.2.4新建JSP文件152 6.2.5啟動Server154 6.2.6使用瀏覽器訪問JSP157 6.2.7轉成Maven項目157 6.2.8在Eclipse內部構建Maven項目159 6.3Maven項目的目錄結構162 6.3.1Maven目錄的約定配置162 6.3.2調整項目的目錄163 6.4管理項目依賴164 6.4.1搜索依賴的構件164 6.4.2依賴的作用范圍165 6.5理解Maven構建的過程166 6.5.1Maven構建的階段166 6.5.2Maven常用命令166 6.5.3使用mvn命令167 本章小結167 習題六168 第7章Servlet技術/169 7.1Servlet介紹169 7.1.1什么是Servlet169 7.1.2Servlet的特點169 7.1.3Servlet和JSP的比較170 7.2實現(xiàn)Servlet170 7.2.1Eclipse向導創(chuàng)建Servlet170 7.2.2Servlet處理請求參數(shù)172 7.3Servlet的工作原理174 7.3.1Servlet的生命周期174 7.3.2實現(xiàn)Servlet類175 7.3.3部署Servlet177 7.3.4Servlet存放的位置179 7.3.5獲得其他JSP內置對象179 7.3.6啟動裝入優(yōu)先級180 7.4Servlet高級示例181 7.4.1動態(tài)生成JPEG圖片181 7.4.2JavaMail發(fā)送電子郵件183 7.4.3Commons FileUpload上傳文件187 本章小結191 習題七191 第8章監(jiān)聽器和過濾器/193 8.1監(jiān)聽器193 8.1.1監(jiān)聽Web應用194 8.1.2監(jiān)聽HTTP會話195 8.1.3監(jiān)聽HTTP請求199 8.2監(jiān)聽器示例201 8.2.1統(tǒng)計在線人數(shù)201 8.2.2加載后臺服務對象204 8.3過濾器206 8.3.1過濾器的概念206 8.3.2過濾器的鏈式結構207 8.3.3實現(xiàn)過濾器207 8.3.4部署過濾器209 8.4過濾器示例210 8.4.1字符集過濾器210 8.4.2用戶認證過濾器212 8.4.3自定義日志過濾器214 本章小結217 習題八218 第9章MVC設計模式/219 9.1JSP的兩種模式219 9.1.1模式一219 9.1.2模式二219 9.1.3兩種模式的比較220 9.1.4JSP和Servlet的選擇220 9.2MVC模式221 9.2.1MVC模式的概念221 9.2.2各種技術總結221 9.2.3MVC模式的實現(xiàn)222 9.3MVC示例222 9.3.1Hello MVC222 9.3.2個人主頁模板225 本章小結233 習題九234 220章JDBC訪問數(shù)據(jù)庫/235 10.1JDBC的接口和類235 10.1.1JDBC簡介235 10.1.2Driver235 10.1.3DriverManager236 10.1.4Connection236 10.1.5Statement237 10.1.6ResultSet237 10.1.7PreparedStatement238 10.1.8DatabaseMetadata238 10.1.9ResultSetMetadata238 10.2連接MySQL數(shù)據(jù)庫238 10.2.1安裝和使用MySQL238 10.2.2通過JDBC連接MySQL239 10.3基本數(shù)據(jù)庫操作241 10.3.1查詢數(shù)據(jù)242 10.3.2插入數(shù)據(jù)243 10.3.3帶參數(shù)的SQL語句244 10.3.4更新數(shù)據(jù)245 10.3.5刪除數(shù)據(jù)246 10.3.6獲取元數(shù)據(jù)247 10.4高級數(shù)據(jù)庫操作249 10.4.1獲得數(shù)據(jù)庫生成的主鍵249 10.4.2事務處理251 10.4.3存儲過程254 10.4.4批處理257 10.4.5分頁顯示查詢結果259 10.5連接池和數(shù)據(jù)源261 10.5.1Tomcat下配置數(shù)據(jù)源262 10.5.2JSP頁面中使用數(shù)據(jù)源262 本章小結263 習題十264 221章表達式語言EL/265 11.1EL簡介265 11.2EL語法265 11.2.1字面值266 11.2.2操作符“[]”和“.”266 11.2.3算術運算符269 11.2.4關系運算符269 11.2.5邏輯運算符269 11.2.6empty運算符269 11.2.7條件運算符270 11.3EL中的隱含對象270 11.3.1pageContext對象271 11.3.2范圍對象272 11.3.3請求參數(shù)對象273 11.3.4請求頭對象276 11.3.5Cookie對象277 11.3.6初始化參數(shù)277 本章小結278 習題十一278 222章標準標簽庫JSTL/280 12.1JSTL介紹280 12.1.1JSTL的功能280 12.1.2JSTL的優(yōu)點280 12.1.3JSTL的安裝281 12.1.4JSTL的使用281 12.2一般用途的標簽282 12.2.1282 12.2.2283 12.2.3284 12.2.4285 12.3條件標簽286 12.3.1286 12.3.2287 12.4迭代標簽288 12.4.1288 12.4.2294 12.5SQL標簽295 12.5.1295 12.5.2296 12.5.3297 12.5.4298 12.5.5299 12.5.6299 12.6投票系統(tǒng)(JSTL+MySQL)299 12.6.1創(chuàng)建投票數(shù)據(jù)庫299 12.6.2數(shù)據(jù)庫連接池配置300 12.6.3投票頁面301 本章小結302 習題十二303 223章持久層框架MyBatis/305 13.1ORM和MyBatis305 13.1.1ORM相關概念305 13.1.2什么是MyBatis307 13.2MyBatis Generator307 13.2.1MyBatis Generator簡介307 13.2.2安裝MyBatis Generator308 13.2.3創(chuàng)建MySQL數(shù)據(jù)庫309 13.2.4配置和運行MyBatis Generator311 13.3使用MyBatis314 13.3.1MyBatis配置文件314 13.3.2修改生成的代碼315 13.3.3使用MyBatis訪問表316 13.4理解MyBatis319 13.4.1關于SqlSessionFactory319 13.4.2核心對象的生命周期320 本章小結321 習題十三322 224章Spring MVC/324 14.1Spring框架簡介325 14.1.1Spring框架的核心325 14.1.2Spring MVC簡介325 14.2理解控制反轉326 14.2.1添加Spring依賴326 14.2.2設計依賴注入需要的類327 14.2.3配置Spring依賴注入330 14.3Spring MVC起步331 14.3.1添加Sping MVC依賴331 14.3.2配置分發(fā)器DispatcherServlet332 14.3.3編寫Spring MVC配置文件334 14.3.4編寫Spring MVC控制器336 14.4接收多個請求參數(shù)338 14.4.1使用JavaBean接收338 14.4.2其他接收多個請求參數(shù)的方法340 14.5Spring MVC進階344 14.5.1Model和ModelMap344 14.5.2映射下一級路徑346 14.5.3控制器子包和多個控制器包347 14.5.4注入服務層組件348 14.5.5響應JSON格式的文本350 14.6Spring集成MyBatis352 14.6.1添加MyBatis相關的依賴352 14.6.2集成MyBatis的配置文件353 14.6.3MVC中使用MyBatis356 14.6.4AOP聲明式事務管理365 14.7本章pom.xml文件366 本章小結370 習題十四371
你還可能感興趣
我要評論
|