Java EE是目前應用相當廣泛的一種軟件開發技術,已經成為主要的企業應用解決方案之一,它與市場、企業需求緊密聯系,并且不斷改進升級,將新思想、新技術、新方法融入其中,學習該技術能夠掌握前沿技術,理解和掌握新的軟件開發思想,有利于培養讀者面向實際的綜合開發能力和應用能力。目前,無論是高校的計算機專業、計算機相關專業,還是IT培訓機構,都將其作為教學的重要內容,也是從事軟件開發人員應當掌握的一門專業技術。
在Java EE平臺上,整合應用Spring、Struts 2、Hibernate三大開發框架技術是目前最主流、最普遍使用的應用開發方式。Spring框架可以支持多種Java EE技術和框架,使得Java EE應用的開發變得更簡單、更有效;Struts 2是基于MVC設計模式的、開源的Java EE編程框架,已得到了廣泛應用,已經成為主流的Web編程框架;Hibernate基于ORM實現了對數據庫的訪問與管理,已經成為訪問數據庫的主要框架技術。
針對這些框架技術,應該有一本能夠簡明介紹它們的原理、技術、應用,以及它們的整合應用的書籍。這樣可以大大節約讀者,特別是初學者的學習時間,提高學習質量和學習效果,真正掌握這些框架的使用與應用,為此,編者編寫了本書。
本書的編寫特別突出了三點:提高學生系統認知能力和系統設計能力的思想;貫穿項目驅動、設計主導、案例教學的思想;及時引進新思想、新方法、新內容,使讀者適應社會需求和市場需求。
1)突出“系統觀點和系統設計”的思想:Java EE應用的開發實際上是一個應用系統的開發,需要讀者有一個整體的系統觀念來組織、理解各部分的功能及其所使用的技術,在內容組織上圍繞著提高“系統能力”,以提高讀者的“系統設計能力”為目標。
2)貫穿“項目驅動、設計主導、案例教學”的思想:通過典型的案例,將知識要點融入案例中,在求解案例時,利用有關的技術知識,使技術方法和知識與案例相輔相成;同時,每個案例都是一個Java EE應用系統,在設計中采用工程、系統的思想與方法。
3)Java EE 及其相關的框架技術是不斷改進升級的,在本書的編寫過程中,將其新思想、新技術、新方法融入其中,使讀者能夠掌握前沿應用技術,理解和掌握新的軟件開發思想、技術與方法,有利于培養讀者適應社會需求和市場需求的能力。本書采用了Java EE的新規范(Java EE 7),以及三大框架的新版本(Spring 4.0、Hibernate 4.0、Struts 2.3.24)。
書中的每個案例都按軟件工程的思想給出了詳細的設計思想、設計方法、實現步驟的分析和描述,使讀者在閱讀學習中逐漸培養應用系統的開發方法和技能,提高讀者的設計能力,這也是本書不同于其他同類書的突出特點。
本書的編寫是按Java EE應用所需技術的次序設置章節的,每種開發技術都提供了與其相關的開發案例。對每種技術,采用“技術的基本知識”→“技術的應用案例”→“使用該技術所遇到的問題及其解決方法”的線路組織內容,在應用中提出問題,解決問題,引導讀者探討并解決問題,提高讀者的學習興趣和積極性。
本書從實用的角度出發,同時為了利于讀者學習,通過案例由淺入深地介紹了Java EE及Struts 2、Hibernate、Spring框架的基本原理、技術、使用方法和開發應用,以及它們的整合應用。
全書共12章,第1~2章介紹了Java EE應用開發所必需的開發環境和最基本的開發技術,主要包括:Java EE開發環境的搭建、視圖設計技術(HTML、JavaScript、CSS和JSP等)、控制器技術(Servlet、過濾器及監聽器等)、JavaBean技術、JDBC技術、MVC+DAO模式的應用開發;第3~5章介紹了Struts 2框架技術,重點給出了該框架核心組件的使用與應用技巧,特別是第5章,基于軟件工程的思想方法,給出了較完成的應用開發案例,引導讀者理解和掌握應用程序的開發過程。第6~7章介紹了Hibernate框架技術,重點給出了該框架的使用方法,基于Hibernate的通用訪問數據庫的工具類,并對實體類之間的各類關系映射通過案例給出了較詳細的介紹,進一步給出Hibernate事務管理、緩存管理的方法與處理;第8~11章介紹了Spring框架技術,重點介紹了Spring IoC、AOP編程技術、Spring的數據庫訪問框架、Spring的Web框架,以及Spring與Struts 2整合應用,Spring與Hibernate整合應用;第12章給出了整合Spring+ Struts 2+Hibernate的綜合應用案例。
本書中所介紹的案例和例題都是在Windows 7、Eclipse Java EE 4.2、MySQL數據庫環境下進行的,使用的框架為Spring 4.0、Hibernate 4.0和Struts 2.3.24給出的開發設計,并調試運行通過。每個案例都按軟件工程的思想,給出了完整的設計思想和設計步驟,以幫助讀者順利地完成開發任務。從應用程序的設計到應用程序的發布,讀者都可以按照書中所講述的內容實施。作為教材,每章后面都附有習題。
本書主要面向初學者,特別適合高等院校和職業院校的學生作為學習Java EE框架技術開發應用程序相關課程的教材,也可作為基于Java EE框架技術開發應用系統的開發人員的學習資料或參考書。
為了方便教師備課和學生的學習,本書還配有電子教案(PPT文件)和案例的源代碼。如有需要,可在機械工業出版社網站www.cmpedu.com下載。
感謝讀者選擇使用本書,由于時間倉促,加之作者水平有限,書中難免存在不妥之處,敬請廣大讀者原諒,并歡迎對本書內容提出意見和建議,不勝感激。
編 者
前言
第1章 Java EE概述
1.1 Java EE簡介
1.1.1 Java EE組件與應用模型
1.1.2 Java EE API及主要技術
1.2 Java EE開發環境與開發工具
1.2.1 Java JDK的下載與安裝
1.2.2 Tomcat服務器的安裝與配置
1.2.3 Eclipse集成開發工具的下載、安裝與使用
本章小結
習題
第2章 Java EE Web應用開發基礎技術
2.1 表示層(視圖層)技術
2.1.1 HTML技術與應用案例
2.1.2 CSS技術與應用案例
2.1.3 JavaScript技術與應用案例
2.1.4 JSP技術與應用案例
2.1.5 EL表達式與應用案例
2.2 控制層技術
2.2.1 Servlet技術與應用案例
2.2.2 過濾器技術與應用案例
2.2.3 監聽器技術與應用案例
2.3 業務邏輯(模型)層技術
2.4 持久層(JDBC)技術
2.5 MVC+DAO設計模式與應用案例
2.5.1 基于MVC模式算術運算的Web程序設計
2.5.2 基于MVC模式用戶注冊與登錄系統的開發
本章小結
習題
第3章 Struts 2框架基礎
3.1 Struts 2簡介
3.2 搭建Struts 2開發環境
3.3 Struts 2入門案例
3.3.1 入門案例1——基于Struts 2計算任意兩個數據的和
3.3.2 入門案例2——基于Struts 2實現用戶注冊與登錄
3.4 Struts 2的配置
3.4.1 web.xml配置文件
3.4.2 struts-default.xml配置文件
3.4.3 struts.xml配置文件
3.5 Struts 2的控制層及Action設計與配置
3.5.1 Action類的實現與傳值
3.5.2 基于XML配置文件的Action配置與訪問
3.5.3 多方法的Action設計與配置訪問
3.5.4 Action訪問Web資源
3.5.5 基于注解的Action配置
3.6 案例——基于注解配置Action實現用戶注冊與登錄系統
本章小結
習題
第4章 Struts 2框架的視圖與攔截器技術
4.1 Struts 2的值棧及訪問
4.2 Struts 2的OGNL表達式與應用案例
4.3 Struts 2常用標簽
4.3.1 Struts 2的通用標簽與應用案例
4.3.2 Struts 2的控制標簽與應用案例
4.3.3 Struts 2的表單標簽與應用案例
4.4 Struts 2的攔截器
4.4.1 Struts 2攔截器的自定義實現
4.4.2 案例——文字過濾器的設計與應用
4.5 Struts 2的國際化與應用案例
4.5.1 資源文件
4.5.2 資源文件的訪問
4.5.3 Struts 2的國際化應用案例
4.6 Struts 2數據輸入驗證
4.6.1 Struts 2的聲明式輸入驗證
4.6.2 Struts 2聲明式輸入驗證案例——實現客戶注冊輸入驗證
4.6.3 Struts 2的編程驗證
4.6.4 Struts 2編程驗證案例——實現客戶注冊輸入驗證
4.7 Struts 2文件上傳及下載
4.7.1 文件上傳與應用案例
4.7.2 文件下載與應用案例
本章小結
習題
第5章 基于Struts 2的名片管理系統
5.1 項目的需求說明
5.2 系統分析與設計
5.3 創建工程并搭建開發環境
5.4 數據庫與數據表的設計與實現
5.5 訪問數據庫的通用工具類的設計與實現
5.5.1 數據庫連接屬性文件——c3p0.properties
5.5.2 數據庫連接工具類——JdbcPoolUtils
5.5.3 數據庫訪問接口——DAO接口
5.6 用戶注冊與登錄模塊的開發
5.6.1 用戶模型類的實現
5.6.2 訪問用戶數據表DAO的實現類
5.6.3 用戶Action類的實現與基于XML的Action的配置與驗證
5.6.4 用戶注冊、登錄管理視圖的設計與實現
5.7 名片管理模塊的開發
5.7.1 名片模型類的實現
5.7.2 訪問名片數據表DAO的實現
5.7.3 名片管理Action類的實現與基于注釋的Action的配置
5.7.4 名片管理的視圖設計與實現
5.7.5 Excel與數據庫之間的數據交互及上傳、下載的實現
5.7.6 名片回收站管理模塊的設計與實現
5.8 討論與思考
本章小結
習題
第6章 Hibernate框架基礎
6.1 Hibernate概述
6.1.1 數據持久化與ORM
6.1.2 Hibernate框架的結構體系
6.1.3 Hibernate的核心組件
6.1.4 Hibernate運行過程
6.2 搭建Hibernate開發環境
6.3 Hibernate入門案例——數據庫中添加記錄
6.4 Hibernate的核心組件及其應用
6.4.1 Hibernate配置文件
6.4.2 Hibernate的PO對象
6.4.3 Hibernate映射文件
6.4.4 Hibernate核心類(接口)與應用
6.5 HQL語言與Query接口及應用
6.5.1 HQL語言
6.5.2 Query接口與應用
6.6 Hibernate操作輔助類的設計
6.7 Struts 2與Hibernate整合的名片管理系統開發案例
本章小結
習題
第7章 Hibernate框架的高級特性
7.1 Hibernate的QBC查詢
7.2 Native SQL
7.3 Hibernate實體關聯關系映射
7.3.1 一對一映射
7.3.2 一對多映射和多對一映射
7.3.3 多對多映射
7.4 Hibernate組件映射
7.5 Hibernate繼承映射
7.6 基于注解方式實現映射
7.6.1 基于注解方式映射的簡單案例
7.6.2 基于注解的實體對象映射
7.6.3 基于注解的實體關聯關系映射
7.6.4 Hibernate的注解映射應用案例
7.7 Hibernate的事務管理
7.8 Hibernate的Cache管理
7.8.1 一級Cache
7.8.2 二級Cache
本章小結
習題
第8章 Spring框架基礎
8.1 Spring概述
8.2 搭建Spring開發環境
8.2.1 下載Spring
8.2.2 安裝Springsource-tool-suite插件
8.3 Spring框架的工作原理與應用案例
8.3.1 Spring的控制反轉
8.3.2 Spring框架的工作原理
8.3.3 應用案例1——采用Java 工程實現Hello World!的顯示
8.3.4 應用案例2——采用Web工程實現Hello World!的顯示
8.4 Spring IoC容器及其實例化與使用
8.5 基于XML文件方式的Bean配置
8.6 Spring表達式——SpEL
8.7 基于注釋方式的Bean配置
8.7.1 使用注釋定義Bean
8.7.2 基于注釋的Bean自動裝配
8.7.3 配置類組件掃描路徑
本章小結
習題
第9章 Spring AOP—面向切面編程
9.1 Spring AOP的基本概念與入門案例
9.1.1 AOP的基本概念和工作流程
9.1.2 Spring AOP編程的環境搭建與入門案例
9.2 基于XML配置的AOP編程
9.2.1 Spring AOP的通知與切入點
9.2.2 基于XML的切面配置
9.2.3 基于XML配置的AOP編程案例
9.3 基于AspectJ注解配置的AOP編程
9.3.1 在Spring中啟用AspectJ注解支持
9.3.2 基于AspectJ注解聲明切面
9.3.3 基于AspectJ注解聲明通知
9.3.4 基于AspectJ 注解AOP編寫案例
本章小結
習題
第10章 Spring的數據庫訪問框架
10.1 Spring數據庫訪問框架概述
10.2 Spring對JDBC的支持
10.2.1 Spring+JDBC與DataSource的整合應用
10.2.2 Spring+JDBC與C3P0的整合應用
10.2.3 Spring+JDBC與數據庫連接屬性文件的整合應用
10.3 Spring與Hibernate的配置整合
10.3.1 Spring與Hibernate整合的基本思想與整合步驟
10.3.2 Hibernate數據源的配置與注入
10.3.3 Hibernate的SessionFactory實例的配置創建
10.4 Spring中的事務管理
10.4.1 Spring 中的事務管理方法與事務管理器
10.4.2 Spring編程式管理事務方式
10.4.3 基于XML的聲明式管理事務
10.4.4 基于注解的聲明式管理事務
10.4.5 事務屬性的配置
10.5 Spring與Hibernate整合的應用案例
10.5.1 基于XML配置的用戶注冊與登錄的開發
10.5.2 基于注釋配置的用戶注冊與登錄的開發
本章小結
習題
第11章 Spring對Web應用的支持
11.1 Web應用訪問Spring
11.1.1 實例化Spring IoC
11.1.2 在JSP中訪問Spring IoC實例對象
11.1.3 在Servlet中訪問Spring IoC實例對象
11.2 Spring與Struts 2的集成
11.2.1 Spring與Struts 2集成的方法與步驟
11.2.2 Spring與Struts 2集成的配置
11.3 Spring與Struts 2集成應用案例
11.3.1 基于注釋聲明的集成應用——人員信息的添加與刪除
11.3.2 基于XML配置的整合應用——人員信息的添加與刪除
本章小結
習題
第12章 Spring、Struts 2、Hibernate整合與應用案例
12.1 Spring、Struts 2和Hibernate框架整合與環境搭建
12.1.1 整合jar包
12.1.2 整合配置文件
12.2 案例——基于SSH整合的名片管理系統
12.2.1 項目需求說明
12.2.2 系統分析與設計
12.2.3 創建工程并搭建開發環境
12.2.4 數據庫與數據表的設計與實現
12.2.5 屬性文件與配置文件
12.3 訪問數據庫的通用接口及實現類
12.4 用戶注冊與登錄子系統的實現
12.4.1 用戶實體類的實現
12.4.2 訪問用戶數據表DAO的實現類
12.4.3 用戶Service層的接口與實現類
12.4.4 用戶Action類的實現與基于XML的Action的配置與驗證
12.4.5 用戶注冊、登錄管理視圖的設計與實現
12.5 名片管理子系統的實現
12.5.1 名片實體類的實現
12.5.2 訪問名片數據表card的DAO實現類
12.5.3 名片Service層的接口與實現類
12.5.4 名片Action類的實現與基于注解方式配置Action
12.5.5 名片管理視圖的設計與實現
12.6 其他相關模塊的設計與實現
12.7 討論與思考
本章小結
習題
參考文獻