在前幾年JSP+Servlet+JavaBean是采用Java語言進行Web開發(fā)的常用技術,但后來Struts 2框架逐漸流行起來,再后來Spring框架成了當仁不讓的霸主,而Hibernate框架則成了持久層處理技術的代表。如果細細比較,可以發(fā)現(xiàn)這幾種技術各有千秋,因此 Struts 2+Spring+Hibernate的組合成了采用Java語言進行Web開發(fā)的主流。為了使讀者盡快了解和掌握如何使用Struts 2+Spring+Hibernate 這3個框架整合的方式來開發(fā)Web應用系統(tǒng),筆者花費了大量的時間來完成這本關于Struts 2 + Spring +Hibernate 整合的書。為了盡可能保證內容的準確和權威性,筆者查閱了大量的官方文檔,并針對關鍵部分閱讀了相應的源代碼。
本書的寫作目標就是力爭讓讀者盡可能地掌握JSP+Servlet+JavaBean和Struts 2+ Spring+Hibernate這兩個解決方案,以及相關框架整合的相關知識。本書以現(xiàn)實職場中經典模塊和完整系統(tǒng)的項目為背景,通過多種前臺技術和后臺技術的不同組合,讓讀者深入地了解這些流行架構的使用方法。
本書有何特色
1.從基礎開始,由淺入深
JSP/Servlet技術是Java Web技術的基礎,很多初學者在學習SSH之前并沒有很好地掌握該技術,因此本書考慮這個原因,在第1篇講解了如何搭建Java Web開發(fā)環(huán)境,第2篇介紹了JSP+Servlet+JavaBean技術解決方案,使讀者對Java Web開發(fā)技術有一個初步的了解。同時每一篇的章節(jié)按照由淺入深、循序漸進的順序編排,從而可以使讀者漸進式地學習本書的知識。
2.各篇獨立,內容完整
本書的每一篇都是相對獨立的。如第3篇講解了Struts 2的各種技術;第4篇講解了Hibernate的主要技術,而且每一篇講解的技術比較完整。這樣就會給想學習SSH整合技術,但卻未掌握SSH中的一項或幾項技術的讀者帶來方便,至少不需要同時準備幾本書,從而給讀者節(jié)省了大量的時間和金錢。
3.各章實例豐富,使讀者更容易理解書中的知識
本書幾乎在每一章都提供了大量的實例。這些實例充分展現(xiàn)了相關知識點的實現(xiàn)細節(jié)。讀者可以在學習相關知識點后,通過上機實踐這些例子來更深入地了解并掌握這些知識點。
4.提供了完整的實例,使讀者更進一步體會SSH開發(fā)模式的精髓
本書以現(xiàn)實職場中經典模塊和完整系統(tǒng)的項目為背景,結合當前Java Web技術的主流開發(fā)技能需求,組織和編寫最后兩個完整的實例(網絡硬盤和論壇系統(tǒng))。這兩個實例都采用了SSH模式進行開發(fā)。通過對這兩個實例的深入研究,讀者可以比較全面地掌握基于SSH模式的Web應用程序的開發(fā)步驟和開發(fā)方法,并可將實例中所采用的技術應用到自己的項目中。
5.使用最新版本的開發(fā)工具和框架
本書所使用的開發(fā)工具和相關的框架在筆者寫作本書時都是最新版本,如MyEclipse 10.6、Struts 2.3、Hibernate 4.1和Spring 3.2等。讀者可以在學習SSH開發(fā)技術的同時,接觸到目前最新版本的開發(fā)工具和框架。即使讀者目前所使用的軟件版本低于本書所使用的軟件版本,也可以為未來的工作奠定基礎。
6.配有源代碼與視頻光盤,方便讀者使用
為了方便讀者實驗本書提供的實例程序,特將所有的源代碼都收錄到了配書光盤中,以方便讀者使用。另外,作者特別為本書錄制了近20小時高清教學視頻,將書中的一些相關操作直觀地展示給讀者,以達到更好的學習效果。另外,光盤中還贈送了大量的進階學習視頻和實例源代碼。
本書內容
本書共28章,分為5篇,結合目前最新軟件開發(fā)環(huán)境MyEclipse 10.6,全方位介紹了關于Java Web開發(fā)的基本概念和各種解決方案。從搭建Java Web環(huán)境講起,然后詳細介紹了JSP+Servelt+JavaBean解決方案、Struts 2框架、Hibernate框架和Spring框架,最后結合筆者的經驗,利用Struts 2+Spring+Hibernate解決方案講解了兩個完整項目。
第1篇 Web開發(fā)基礎篇(第1~6章)
本篇首先介紹了Java Web環(huán)境的搭建過程,包括JDK 7、Eclipse 4、MyEclipse 10、Eclipse IDE for Java EE Developers和Tomcat 7等軟件的下載、安裝和配置,然后詳細講解了Windows平臺下數(shù)據(jù)庫MySQL軟件和數(shù)據(jù)庫客戶端SQLyog軟件的安裝和配置過程。接著重點介紹了JSP+Servlet+JavaBean技術解決方案和通過該方案實現(xiàn)項目的過程。其中前者首先介紹了Web技術的發(fā)展歷史和JSP的兩種模型,然后詳細介紹了Java Web的客戶端技術、Servlet技術和JSP技術。為了便于讀者掌握JSP+Servlet+JavaBean技術解決方案,最后以用戶注冊登錄系統(tǒng)為例,詳細講解了其開發(fā)過程。
第2篇 Struts 2篇(第7~16章)
本篇主要介紹了Struts 2框架和通過該框架實現(xiàn)項目的過程。其中前者首先介紹了Struts 2框架的體系結構、MVC模式和相關基礎知識,例如Struts 2 Action、處理結果、模型驅動和異常處理;然后詳細介紹了Struts 2框架的各種高級知識,如攔截器技術、類型轉換器、輸入校驗技術、文件上傳技術、國際化技術和Struts 2標簽。為了便于讀者掌握Struts 2框架,最后以用戶注冊登錄系統(tǒng)為例,詳細講解了其開發(fā)過程。
第3篇 Hibernate篇(第17~21章)
本篇主要介紹了Hibernate框架的基礎知識和高級知識。其中前者首先介紹了Hibernate框架基礎知識,例如ORM技術、Hibernate與EJB關系等;然后詳細介紹了Hibernate框架的各種核心知識,通過配置文件和注釋,對Hibernate進行配置、O/R映射、會話的基本操作、標準(Criteria)查詢API技術等。最后又簡單介紹了Hibernate框架的一些高級技術,例如事務、鎖、攔截器、事件和過濾器。
第4篇 Spring篇(第22~25章)
本篇主要介紹了Spring框架和通過該框架實現(xiàn)項目的過程。其中前者首先介紹了Spring框架的主要特性和核心技術;然后詳細介紹了Spring框架的各種核心知識,如反向控制技術(Ioc)、數(shù)據(jù)庫技術和AOP技術。
第5篇 綜合實例篇(第26~28章)
本篇首先介紹了SSH 5三大框架的整合思路和流程,然后重點介紹了Java Web技術的應用和實戰(zhàn)開發(fā)。其中,用Struts 2+Hibernate 4+Spring 3技術解決方案實現(xiàn)網絡硬盤項目。為了便于讀者掌握該項目,在具體講解時按照面向應用的方式對該系統(tǒng)分成4層,即持久對象層、數(shù)據(jù)訪問層、業(yè)務邏輯層和Web表示層,然后詳細介紹了各層。最后介紹了一個網絡論壇系統(tǒng)的實現(xiàn),該系統(tǒng)不僅使用Struts 2+Hibernate 4+Spring 3技術解決方案實現(xiàn),而且還涉及一個Web編輯器(FCKEditor)的安裝和使用。
本書超值DVD光盤內容
* 本書各章涉及的實例源文件;
* 19.4小時本書配套教學視頻;
* 15.5小時Struts 2+Hibernate+Spring整合開發(fā)教學視頻;
* 19個Java Web典型模塊源程序及9.2小時教學視頻;
* 5個Java Web項目案例源程序及1.3小時教學視頻。
適合閱讀本書的讀者
* 需要全面學習Java Web開發(fā)技術的讀者;
* 初步掌握Java技術,想進一步學習Java Web開發(fā)的讀者;
* 對SSH整合技術有了一定的了解,想進一步提高的讀者;
* 正在使用SSH整合技術開發(fā)項目,想作為參考的程序員;
* 大中專院校的學生;
* 社會培訓學生;
* 需要作為案頭必備手冊的程序員。
本書作者
本書第1~8章主要由李寧編寫,第9~16章主要由南陽理工學院的劉巖編寫,第17~28章主要由張國平編寫。其他參與編寫的人員有陳一東、高陽、蔣欣、盧曉洋、秦婧、張婉婉、周萌、祝翠、賓光富、陳非凡、陳泓石、陳曦、崔曉明、房偉、高素芳、高志雷、郭靖、郭曉博、胡敏、黃翌、姜艷麗、黎敬碩、李海濤、李槐、李銳、林映紅、馬航、寧偉斌、邵明洋、孫瀏毅、唐頌侃、王倩、王永靜。
本書的編寫對筆者而言是一個“浩大的工程”。雖然作者投入了大量的精力和時間,但只怕百密難免一疏。若有任何疑問或疏漏,請發(fā)郵件至bookservice2008@163.com。最后祝讀者讀書快樂!
編著者
第1篇 Web開發(fā)基礎篇
第1章 搭建開發(fā)環(huán)境( 教學視頻:23分鐘)
1.1 各種軟件和框架的版本
1.2 下載與安裝JDK 7
1.3 下載與安裝Eclipse 4
1.4 下載與安裝MyEclipse 10
1.5 下載與安裝Eclipse IDE for Java EE Developers
1.6 下載與安裝Tomcat 7
1.7 在MyEclipse中配置Tomcat
1.8 在Eclipse IDE for Java EE Developers中配置Tomcat
1.9 下載與安裝MySQL 5數(shù)據(jù)庫
1.10 下載與安裝數(shù)據(jù)庫客戶端軟件SQLyog
1.11 小結
1.12 實戰(zhàn)練習
第2章 Java Web應用開發(fā)基礎( 教學視頻:14分鐘)
2.1 Web技術的發(fā)展
2.2 了解Java Web技術
2.2.1 認識Java Web程序的基本組成
2.2.2 認識Java Web程序的目錄結構
2.2.3 了解Java Web程序的配置文件
2.3 了解MVC模式與MVC框架
2.3.1 認識JSP模型1和JSP模型2
2.3.2 認識Web應用程序的基礎服務
2.3.3 MVC模式概述
2.3.4 了解常用的MVC框架
2.4 小結
2.5 實戰(zhàn)練習
第3章 Web開發(fā)必會的客戶端技術( 教學視頻:82分鐘)
3.1 學習客戶端技術的開發(fā)工具
3.1.1 在MyEclipse中使用HTML技術
3.1.2 在MyEclipse中使用JavaScript技術
3.1.3 在MyEclipse中使用CSS技術
3.2 學習超文本標簽語言HTML
3.2.1 HTML基本構成
3.2.2 HTML基本標簽——段落格式設置標簽
3.2.3 HTML基本標簽——超級鏈接標簽
3.2.4 HTML基本標簽——圖像標簽
3.2.5 HTML基本標簽——表格標簽
3.2.6 HTML基本標簽——框架標簽
3.2.7 HTML基本標簽——表單標簽
3.3 學習JavaScript技術
3.3.1 實例:編寫第一個JavaScript程序:Greet
3.3.2 學習變量
3.3.3 學習原始類型
3.3.4 掌握類型轉換
3.3.5 學習函數(shù)與函數(shù)調用
3.3.6 學習類和對象
3.4 其他客戶端技術
3.4.1 了解DOM
3.4.2 獲得HTML元素的3種方法
3.4.3 實例:圖像自動切換
3.4.4 了解正則表達式
3.4.5 實例:表格排序
3.5 學習CSS技術
3.5.1 了解CSS
3.5.2 在Style屬性中定義樣式
3.5.3 在HTML中定義樣式
3.5.4 在外部文件中定義樣式
3.5.5 實現(xiàn)樣式的繼承
3.6 學習AJAX技術
3.6.1 了解AJAX技術
3.6.2 實例:使用XMLHttpRequest獲得Web資源
3.6.3 實例:使用XMLHttpRequest跨域訪問Web資源
3.6.4 實例:AJAX的3種交換數(shù)據(jù)方法
3.7 小結
3.8 實戰(zhàn)練習
第4章 Java Web的核心技術——Servlet( 教學視頻:79分鐘)
4.1 編寫Servlet的Helloworld程序
4.1.1 實例:用MyEclipse工具編寫第一個Servlet程序——Helloworld
4.1.2 實例:手工編寫第一個Servlet程序——Helloworld
4.2 學習Servlet技術
4.2.1 配置Tomcat 7服務器的數(shù)據(jù)庫連接池
4.2.2 實例:通過數(shù)據(jù)庫連接池連接MySQL數(shù)據(jù)庫
4.2.3 實例:處理客戶端HTTP GET請求——doGet方法
4.2.4 實例:處理客戶端HTTP POST請求——doPost方法
4.2.5 實例:處理客戶端各種請求——service方法
4.2.6 實例:初始化(init)和銷毀(destroy)Servlet
4.2.7 實例:輸出字符流響應消息——PrintWriter類
4.2.8 實例:輸出字節(jié)流響應消息——ServletOutputStream類
4.2.9 實例:包含Web資源——RequestDispatcher.include方法
4.2.10 實例:轉發(fā)Web資源——RequestDispatcher.forward方法
4.3 掌握HttpServletResponse類
4.3.1 產生狀態(tài)響應碼
4.3.2 設置響應消息頭
4.3.3 實例:驗證響應消息頭設置情況
4.4 掌握HttpServletRequest類
4.4.1 獲取請求行消息
4.4.2 獲取網絡連接消息
4.4.3 獲取請求頭消息
4.5 處理Cookie
4.5.1 什么是Cookie
4.5.2 認識操作Cookie的方法
4.5.3 實例:通過Cookie技術讀寫客戶端信息
4.5.4 實例:通過Cookie技術讀寫復雜數(shù)據(jù)
4.6 處理Session
4.6.1 什么是Session
4.6.2 認識操作Session的方法
4.6.3 創(chuàng)建Session對象
4.6.4 實例:通過Cookie跟蹤Session
4.6.5 實例:通過重寫URL跟蹤Session
4.7 解決Web開發(fā)的亂碼問題
4.7.1 認識Java語言編碼原理
4.7.2 實例:解決輸出亂碼問題
4.7.3 實例:解決服務端程序讀取中文請求消息的亂碼問題
4.7.4 實例:用AJAX技術發(fā)送和接收中文信息
4.7.5 實例:實現(xiàn)請求消息頭和響應消息頭中轉輸中文
4.8 小結
4.9 實戰(zhàn)練習
第5章 JSP技術( 教學視頻:62分鐘)
5.1 通過MyEclipse工具編寫第一個JSP程序
5.1.1 實例:編寫顯示服務器當前時間的JSP程序
5.1.2 調試JSP程序
5.1.3 改變JSP的訪問路徑和擴展名
5.1.4 手動發(fā)布JSP程序
5.2 了解JSP的運行原理
5.2.1 了解Tomcat處理JSP頁過程
5.2.2 分析由JSP生成的Servlet代碼
5.3 學習JSP基本語法
5.3.1 學習JSP表達式
5.3.2 實現(xiàn)在JSP中嵌入Java代碼
5.3.3 學習JSP聲明
5.3.4 學習JSP表達式語言(EL)
5.3.5 實例:利用EL函數(shù)替換HTML中的特殊字符
5.3.6 學習JSP頁面中的注釋
5.4 學習JSP指令
5.4.1 了解JSP指令
5.4.2 JSP指令page
5.4.3 JSP指令include
5.5 學習JSP內置對象
5.5.1 內置對象out
5.5.2 內置對象pageContext
5.5.3 其他內置對象
5.6 學習JSP標簽
5.6.1 包含標簽
5.6.2 轉發(fā)標簽
5.6.3 傳參標簽
5.6.4 創(chuàng)建Bean標簽
5.6.5 設置屬性值標簽
5.6.6 獲取屬性值標簽
5.7 學習JSP的標準標簽庫(JSTL)
5.7.1 了解JSTL
5.7.2 JSTL中的條件標簽
5.7.3 JSTL中的循環(huán)標簽
5.8 小結
5.9 實戰(zhàn)練習
第6章 用Servlet和JSP實現(xiàn)注冊登錄系統(tǒng)( 教學視頻:28分鐘)
6.1 系統(tǒng)概述
6.1.1 系統(tǒng)功能簡介
6.1.2 系統(tǒng)總體結構
6.2 設計數(shù)據(jù)庫
6.3 實現(xiàn)系統(tǒng)的基礎類
6.3.1 實現(xiàn)訪問數(shù)據(jù)庫的DBServlet類
6.3.2 實現(xiàn)MD5加密
6.3.3 實現(xiàn)圖形驗證碼
6.4 實現(xiàn)注冊系統(tǒng)
6.4.1 實現(xiàn)注冊Servlet類
6.4.2 實現(xiàn)注冊系統(tǒng)的主頁面
6.4.3 實現(xiàn)結果JSP頁面
6.5 實現(xiàn)登錄系統(tǒng)
6.5.1 實現(xiàn)登錄Servlet
6.5.2 實現(xiàn)登錄系統(tǒng)主頁面
6.6 小結
6.7 實戰(zhàn)練習
第2篇 Struts 2篇
第7章 編寫Struts 2第一個程序( 教學視頻:28分鐘)
7.1 Struts 2的MVC模式
7.2 Struts 2的體系結構
7.2.1 工作流程
7.2.2 配置文件
7.2.3 控制器
7.3 Struts 2實例:圖書查詢系統(tǒng)
7.3.1 下載和安裝Struts 2
7.3.2 編寫數(shù)據(jù)處理類
7.3.3 編寫和配置Action類
7.3.4 編寫顯示查詢結果的JSP頁面
7.3.5 編寫輸入查詢信息的JSP頁面
7.4 小結
7.5 實戰(zhàn)練習
第8章 Struts 2進階( 教學視頻:72分鐘)
8.1 認識Struts 2的基本配置
8.1.1 配置web.xml
8.1.2 配置struts.xml
8.1.3 配置struts.properties
8.1.4 學習Struts 2的DTD
8.2 深入認識Struts 2的配置元素
8.2.1 配置Bean
8.2.2 配置常量(constant)
8.2.3 配置包含(include)
8.2.4 配置包(package)
8.2.5 配置命名空間
8.2.6 配置攔截器
8.3 掌握Struts 2注釋(Annotation)
8.3.1 設置當前包的父包——ParentPackage注釋
8.3.2 指定當前包的命名空間——Namespace注釋
8.3.3 指定當前Action結果——Results與Result注釋
8.3.4 實例:通過注釋配置Action
8.4 掌握Struts 2的Action
8.4.1 了解Action類的getter和setter方法
8.4.2 實現(xiàn)Action接口
8.4.3 繼承ActionSupport類
8.4.4 實例:用ActionContext訪問Servlet API
8.4.5 實例:通過aware攔截器訪問Servlet API
8.4.6 實例:利用動態(tài)方法處理多個提交請求
8.4.7 實例:利用method屬性處理多個提交請求
8.4.8 使用通配符
8.4.9 設置默認的Action
8.5 配置跳轉結果
8.5.1 了解Struts 2的配置結果
8.5.2 Struts 2支持的處理結果類型
8.5.3 配置帶有通配符的結果
8.5.4 通過請求參數(shù)指定結果
8.6 掌握模型驅動
8.6.1 了解模型驅動——ModelDriven
8.6.2 實例:使用模型驅動改進登錄程序
8.7 處理Struts 2中的異常
8.7.1 了解Struts 2處理異常的原理
8.7.2 實例:登錄系統(tǒng)的異常處理
8.8 小結
8.9 實戰(zhàn)練習
第9章 Struts 2的攔截器( 教學視頻:32分鐘)
9.1 理解攔截器
9.1.1 掌握攔截器的實現(xiàn)原理
9.1.2 實例:模擬Struts 2實現(xiàn)一個攔截器系統(tǒng)
9.2 配置Struts 2攔截器
9.2.1 配置攔截器
9.2.2 使用攔截器
9.2.3 設置默認攔截器
9.3 實例:自定義攔截器
9.3.1 編寫攔截器類
9.3.2 配置自定義攔截器
9.4 理解攔截器的高級技術
9.4.1 過濾指定的方法
9.4.2 攔截器的執(zhí)行順序
9.4.3 應用結果監(jiān)聽器
9.5 理解Struts 2內建的攔截器
9.5.1 認識內建攔截器
9.5.2 掌握內建攔截器的配置
9.6 實例:編寫權限驗證攔截器
9.6.1 編寫權限驗證攔截器類
9.6.2 配置權限控制攔截器
9.7 小結
9.8 實戰(zhàn)練習
第10章 Struts 2的類型轉換( 教學視頻:48分鐘)
10.1 為什么要進行類型轉換
10.1.1 了解客戶端和服務端之間的數(shù)據(jù)處理過程
10.1.2 了解傳統(tǒng)的類型轉換
10.2 使用Struts 2類型轉換器
10.2.1 了解Struts 2內建的類型轉換器
10.2.2 實例:實現(xiàn)基于OGNL的類型轉換器
10.2.3 配置全局類型轉換器
10.2.4 實例:實現(xiàn)基于Struts 2的類型轉換器
10.2.5 實例:實現(xiàn)數(shù)組類型轉換器
10.2.6 實例:實現(xiàn)集合類型轉換器
10.3 實例:使用OGNL表達式進行類型轉換
10.4 Struts 2對Collection和Map的支持
10.4.1 指定集合元素的類型
10.4.2 掌握Set和索引屬性
10.5 掌握類型轉換的錯誤處理
10.6 小結
10.7 實戰(zhàn)練習
第11章 Struts 2的輸入校驗( 教學視頻:39分鐘)
第12章 文件的上傳和下載( 教學視頻:44分鐘)
第13章 程序的國際化( 教學視頻:27分鐘)
第14章 Struts 2的標簽庫( 教學視頻:67分鐘)
第15章 Struts 2對AJAX的支持( 教學視頻:56分鐘)
第16章 用Struts 2實現(xiàn)注冊登錄系統(tǒng)( 教學視頻:26分鐘)
第3篇 Hibernate篇
第17章 Hibernate的Helloworld程序( 教學視頻:33分鐘)
第18章 實現(xiàn)Hibernate基本配置( 教學視頻:32分鐘)
第19章 Hibernate的會話與O/R映射( 教學視頻:61分鐘)
第20章 Hibernate的查詢與更新技術( 教學視頻:43分鐘)
第21章 Hibernate的高級技術( 教學視頻:40分鐘)
第4篇 Sping篇
第22章 Spring的第一個Helloworld程序( 教學視頻:16分鐘)
第23章 反向控制(Ioc)與裝配JavaBean( 教學視頻:30分鐘)
第24章 Spring中的數(shù)據(jù)庫技術( 教學視頻:25分鐘)
第25章 Spring的其他高級技術( 教學視頻:39分鐘)
第5篇 綜合實例篇
第26章 Struts 2與Hibernate、Spring的整合( 教學視頻:12分鐘)
第27章 網絡硬盤( 教學視頻:57分鐘)
2第28章 論壇系統(tǒng)( 教學視頻:50分鐘)