作者簡介
IAL Roughley著名Java技術專家,Apache Struts項目管理委員會成員,From Down & Around公司創始人,著名技術網站IntoQ Java領域的編輯。他在軟體架構、開發和過程改進方面都有豐富的經驗。
內容簡介
本書由淺入深、循序漸進地介紹了使用Struts 2框架進行Web套用開發的基本原理和方法。全書共分為4篇,第一篇Struts 2快速入門,主要介紹了基本的Web開發技術,Struts 2的基礎知識,並通過簡單套用實例,講解了Struts 2的框架結構。第二篇Struts 2框架核心,包括Action、interceptor、Result、多視圖和數據持久化支持等方面的知識。第三篇Struts 2高級特性,介紹了數據驗證、類型轉換和國際化等方面的內容。第四篇Struts 2綜合項目實踐,介紹了3個綜合實例(網路商店系統、網路檔案管理系統、網路購書系統)的開發過程,每個實例均按照需求分析、項目設計、代碼開發、程式測試及項目部署等實際開發流程編寫,力求使讀者在學習理論的同時,能夠進一步通過現有的程式實例加深理解,提升實戰能力。隨書附贈光碟上有本書全部已經調試通過的程式原始碼。本書重點突出,理論與實踐並重,適合於具有一定Java基礎,進行Web套用開發的程式設計師閱讀,也可作為相關培訓機構的教材,以及高等院校相關專業師生的參考用書。
圖書目錄
第1篇 Struts 2快速入門
第1章 Web套用開發概覽
1.1 Web套用與Web開發框架
1.1.1 Web套用開發歷程
1.1.2 為什麼需要Web框架
1.2 MVC模式和Struts
1.2.1 什麼是MVC模式
1.2.2 MVC模式的Web框架映射
1.2.3 Struts 2對MVC模式的改進
1.3 Struts 2框架概覽
1.3.1 Struts 2框架的演變
1.3.2 Struts 2的特性
1.3.3 與其他Web框架的比較
1.4 小結
第2章 第一個Struts 2套用
2.1 Struts 2開發環境配置
2.1.1 JDK1.5.10和Tomcat的安裝與配置
2.1.2 MyEclipse的安裝和配置
2.1.3 Struts 2的安裝
2.2 創建配置檔案
2.2.1 配置web.xml檔案
2.2.2 配置Struts 2的xml檔案
2.2.3 配置Struts 2的properties檔案
2.3 第一個Action
2.3.1 創建helloworld.action
2.3.2 在struts.xml中配置Action
2.3.3 創建視圖hello.jsp
2.3.4 測試Action
2.4 體驗Struts 2更高級功能
2.4.1 處理輸入
2.4.2 執行結果
2.4.3 攔截器
2.5 小結
第2篇 Struts 2框架核心
第3章 Action
3.1 Action簡介
3.1.1 返回類型
3.1.2 execute()方法
3.2 Action接口
3.3 ActionSupport基類
3.4 Action實例
3.4.1 實現Action接口的實例
3.4.2 實現ActionSupport基類的實例
3.5 在Action中實現基本校驗
3.5.1 使用Action的execute()方法
3.5.2 使用ActionSupport的validate()方法
3.5.3 使用注釋實現校驗
3.6 ActionContext
3.7 小結
第4章 Interceptor
4.1 Interceotor基礎
4.1.1 理解Interceptor
4.1.2 Interceptor何時調用
4.1.3 Interceptor接口
4.1.4 Interceptor相關類
4.2 使用預定義的Interceptor
4.2.1 預定義Interceptor類
4.2.2 LoggingInterceptor示例
4.3 使用自定義的Interceptor
4.3.1 自定義Interceptor的配置
4.3.2 實現自己的Interceptor
4.4 Interceptor套用實例
4.4.1 execAndWait攔截器源碼分析
4.4.2 項目概述
4.4.3 Action實現檔案
4.4.4 頁面檔案
4.4.5 配置檔案
4.4.6 運行
4.5 小結
第5章 Result
5.1 自定義Result
5.1.1 實現自定義Result
5.1.2 配置自己的Result
5.1.3 運行測試Result
5.2 常用的Result
5.2.1 Dispatcher
5.2.2 Redirect
5.2.3 Chain
5.3 其他的Result
5.4 小結
第6章 標籤
6.1 標籤介紹
6.2 自定義標籤
6.2.1 標籤的實現
6.2.2 標籤的配置
6.2.3 運行
6.3 Struts 2標籤概覽
6.3.1 標籤簡介
6.3.2 使用標籤的準備
6.4 非UI標籤
6.4.1 數據標籤
6.4.2 控制標籤
6.4.3 其他標籤
6.5 UI標籤
6.5.1 通用屬性
6.5.2 簡單UI標籤
6.5.3 高級UI標籤
6.6 小結
第7章 表達式語言OGNL
7.1 OGNL的基本特性
7.1.1 常量的聲明
7.1.2 方法調用
7.1.3 變數引用
7.2 操作集合
7.2.1 操作列表Lists
7.2.2 操作映射Maps
7.2.3 運算元組 Array
7.2.4 集合操作
7.3 OGNL的高級特性
7.3.1 類型轉換
7.3.2 與值棧的聯繫
7.3.3 lamuda表達式
7.3.4 Java和OGNL的比較
7.4 在JSP中使用OGNL
7.4.1 項目概述
7.4.2 工程代碼編寫
7.4.3 運行
7.5 小結
第8章 多視圖
8.1 Velocity
8.1.1 Velocity簡介
8.1.2 語法
8.1.3 Velocity實例分析
8.2 FreeMarker
8.2.1 FreeMarker簡介
8.2.2 語法
8.2.3 FreeMarker實例分析
8.2.4 FreeMarker和Velocity的比較
8.3 JasperReports
8.3.1 JasperReports介紹
8.3.2 JasperReports實例分析
8.4 小結
第9章 數據持久化——使用Hibernate
9.1 數據持久化與Hibernate基礎
9.1.1 數據持久化基礎
9.1.2 Hibernate基礎
9.2 Hibernate簡單套用
9.3 Hibernate核心
9.3.1 Hibernate的核心接口
9.3.2 Hibernate的配置檔案
9.3.3 Hibernate的對象關係映射
9.3.4 Hibernate的檢索方式
9.4 Hibernate實例
9.5 小結
第3篇 Struts 2高級特性
第10章 校驗框架
10.1 使用Struts 2自帶的校驗器
10.1.1 配置攔截器
10.1.2 配置校驗器
10.1.3 自帶校驗器實例
10.2 使用自定義校驗器
10.2.1 創建自定義校驗器
10.2.2 自定義校驗器的註冊
10.2.3 自定義校驗器實例
10.3 小結
第11章 類型轉換
11.1 為什麼需要類型轉換
11.1.1 沒有類型轉換的實例
11.1.2 類型轉換帶來的好處
11.2 Struts 2自帶的轉換器
11.2.1 自帶轉換器的數據類型
11.2.2 轉換器的源碼分析
11.3 自定義轉換器
11.3.1 編寫轉換器類
11.3.2 配置
11.4 高級類型轉換
11.4.1 空值屬性處理
11.4.2 類型轉換錯誤處理
11.5 小結
第12章 國際化
12.1 國際化基礎
12.2 Struts 2與國際化
12.2.1 Struts 2對國際化的支持
12.2.2 資源包相關
12.2.3 國際化信息的獲取
12.3 Struts 2國際化實現
12.3.1 初始頁面的國際化
12.3.2 Action的國際化
12.3.3 校驗的國際化
12.4 國際化實例
12.4.1 項目配置與開發
12.4.2 結果測試
12.5 小結
第13章 Struts 2調試
13.1 MyEclipse中的Java程式調試
13.1.1 調試配置
13.1.2 調試視圖
13.1.3 控制程式執行
13.2 調試Struts 2程式
13.2.1 調試入門
13.2.2 連線Struts 2的原始碼
13.3 Struts 2調試套用
13.3.1 實例的概述
13.3.2 實例工程的源檔案
13.3.3 調試工程
13.4 小結
第14章 Struts 2原理探究
14.1 控制反轉(IOC)
14.1.1 什麼是控制反轉
14.1.2 控制反轉的設計方式
14.1.3 Struts 2中的控制反轉
14.2 源碼探究
14.2.1 Struts 2啟動
14.2.2 Action處理過程
14.2.3 Interceptor工作機制
14.2.4 ActionContext
14.3 小結
第15章 Struts 2與其他網路框架整合
15.1 與sitemesh整合
15.1.1 SiteMesh簡介
15.1.2 SiteMesh的安裝
15.1.3 SiteMesh套用實例
15.2 Quartz作業調度
15.2.1 Quartz簡介
15.2.2 作業調度簡介
15.2.3 Quartz套用實例
15.3 acegi-Security用戶管理
15.3.1 Acegi-Security簡介
15.3.2 Acegi認證過程
15.3.3 保護Web應用程式
15.4 小結
第16章 Ajax與Struts
16.1 Ajax入門
16.1.1 Ajax發展過程
16.1.2 Ajax魅力所在
16.2 Ajax核心
16.2.1 使用XMLHttpRequest對象
16.2.2 傳送請求與處理回響
16.2.3 實現基本的Ajax技術
16.3 Struts 2與Ajax框架的整合
16.3.1 Dojo框架
16.3.2 DWR框架
16.3.3 使用JSON外掛程式
16.4 Struts 2的Ajax標籤
16.5 小結
第17章 Struts 2測試
17.1 軟體測試與junit基礎
17.1.1 軟體測試基礎
17.1.2 JUnit基礎
17.2 JUnit的使用
17.2.1 JUnit的安裝
17.2.2 創建測試類
17.2.3 創建被測試類
17.2.4 運行測試
17.3 在Eclipse中使用JUnit測試Action
17.3.1 創建Struts 2項目
17.3.2 創建測試類
17.3.3 運行測試
17.4 JUnit高級
17.4.1 類級別的fixture
17.4.2 限時測試
17.4.3 異常測試
17.4.4 忽略測試
17.4.5 測試運行器
17.4.6 測試套件
17.4.7 參數化測試
17.5 小結
第18章 Spring整合
18.1 Spring初步
18.1.1 Spring 概述
18.1.2 Spring準備
18.1.3 入門實例
18.2 Spring基礎特性
18.2.1 依賴注入
18.2.2 Spring 封裝機制
18.3 Spring高級特性
18.3.1 Spring MVC
18.3.2 數據持久層
18.4 小結
第4篇 Struts 2綜合項目實戰
第19章 網路商店實例編程(Struts 2+Hibernate+Velocity)
19.1 項目概述
19.1.1 網路商店概況
19.1.2 網路商店的需求分析
19.1.3 網路商店的業務建模
19.1.4 疊代式開發介紹
19.1.5 項目功能模組分割
19.2 疊代一遊客瀏覽商品
19.2.1 本階段疊代的目標
19.2.2 本階段頁面概述
19.2.3 商品的數據模型和資料庫設計
19.2.4 實現步驟
19.3 疊代二用戶管理
19.3.1 本階段疊代的目標
19.3.2 本階段頁面概述
19.3.3 用戶數據模型和資料庫設計
19.3.4 實現步驟
19.4 疊代三購物車管理
19.4.1 本階段的疊代目標
19.4.2 本階段頁面概述
19.4.3 購物車的功能需求和設計實現
19.4.4 實現步驟
19.5 疊代四後台管理員功能
19.5.1 本階段的疊代目標
19.5.2 本階段頁面概述
19.5.3 實現步驟
19.6 小結
第20章 網路檔案管理系統(Struts 2+Hibernate+FreeMarker)
20.1 項目概述
20.1.1 網路檔案管理系統概況
20.1.2 網路檔案管理系統需求分析
20.1.3 網路檔案管理系統業務建模
20.1.4 項目功能模組分割
20.2 疊代一實現上傳、下載、刪除檔案
20.2.1 本階段疊代的目標
20.2.2 本階段頁面概述
20.2.3 檔案的數據模型
20.2.4 實現步驟
20.3 疊代二添加用戶管理
20.3.1 本階段疊代的目標
20.3.2 本階段頁面概述
20.3.3 用戶以及用戶空間的數據模型
20.3.4 實現步驟
20.4 疊代三添加訊息處理,備忘錄管理
20.4.1 本階段疊代的目標
20.4.2 本階段頁面概述
20.4.3 訊息和備忘錄的數據模型
20.4.4 實現步驟
20.5 疊代四添加管理員功能
20.5.1 本階段疊代的目標
20.5.2 本階段頁面概述
20.5.3 管理員的數據模型
20.5.4 實現步驟
20.6 小結
第21章 基於Struts 2和Ajax的網上購書系統(Struts 2+Hibernate+Ajax+FreeMarker)
21.1 項目概述
21.1.1 購書系統概況
21.1.2 購書系統需求分析
21.1.3 購書系統業務建模
21.1.4 項目功能模組分割
21.2 疊代一用戶登錄,書籍瀏覽
21.2.1 本階段疊代目標
21.2.2 本階段頁面概述
21.2.3 本階段數據模型
21.2.4 實現步驟
21.3 疊代二用戶購書
21.3.1 本階段疊代目標
21.3.2 本階段頁面概述
21.3.3 實現步驟
21.4 疊代三管理員登錄,用戶信息查看
21.4.1 本階段疊代目標
21.4.2 本階段頁面概述
21.4.3 本階段數據模型
21.4.4 實現步驟
21.5 疊代四管理員添加書籍以及添加用戶
21.5.1 本階段疊代目標
21.5.2 本階段頁面概述
21.5.3 實現步驟
21.6 小結
圖書章節
第1章 Web套用開發概覽
本章從Web開發的基礎講起,將Web開發的來龍去脈展現給各位讀者。同時讀者還將了解Web套用中採用MVC模式的根本原因以及MVC模式在Web開發框架中的發展現狀,Web套用開發的各種開源框架及其比較,Struts 2高級特性介紹。幾種流行的開源框架和Struts2的比較,明確Struts 2的優缺點,使Web開發套用更具有針對性。
1.1 Web套用與Web開發框架
1.1.1 Web套用開發歷程
Java技術是目前流行的Web開發語言,特別是基於J2EE平台的Java web開發模式已經被廣泛使用,用戶接觸的很多動態網站都是採用了Java技術開發的。而Java web開發技術的發展是和Internet、瀏覽器的發展密不可分的。
Internet是一個遵循一定協定自由發展的國際網際網路,它利用覆蓋全球的通信系統使各類計算機網路及個人計算機聯通,從而實現智慧型化的信息交流和資源共享。
Internet早已從最初學術科研網路變成了一個擁有眾多商業用戶、政府部門、機構團體和個人的綜合的計算機信息網路。在發展規模上,目前Internet已經是世界上規模最大、發展最快的計算機網際網路。TCP/IP協定簇是目前Imemet主流網路協定,它可提供任意互聯的網路間的通信,幾乎所用的網路作業系統都支持TCP/IP協定簇。在TCP/IP協定簇中,Web服務以其使用的方便性占據了TCP/IP套用的絕大部分。Web服務所採用的HTTP位於套用層,如同TCP/IP成為事實上的標準Imemet網路協定一樣,HTTP所支持的Web套用成為Intemct的最主要套用有一定的歷史機遇和偶然性,而這種偶然性在很大程度上與瀏覽器的發展密不可分,瀏覽器的發展在一定程度上也決定了web技術的發展。