精通Struts基於MVC的Java Web設計與開發

《精通Struts基於MVC的JavaWeb設計與開發》是2004年電子工業出版社出版的圖書,作者是孫衛琴。

內容簡介

struts是目前非常流行的基於mvc的java web框架。本書詳細介紹了在最新的struts1.1以及不久將推出的struts1.2版本上設計和開發java web套用的各種技術。本書第1章到第3章為入門篇,通過兩個struts套用實例,引導讀者把握設計、開發和部署struts套用的整體流程,充分體會 struts框架在開放大型、可擴展的web套用方面發揮的優勢。第4章到第7章深入探討了struts框架的核心組件actionservlet和 requestprocessor的實現原理,詳細介紹了開發struts套用的模型、視圖和控制器的各種技術,細緻的描述了struts配置檔案的每個元素的使用方法。第8章到第9章介紹了開發struts套用的一些實用技術,如struts框架的擴展點、struts套用的國際化,validator 驗證框架和異常處理機制等。第12章到第16章結合具體的struts套用實例,詳細介紹了struts的標籤庫以及tiles框架的使用方法。第17章和第18章介紹如何採用ejb和web服務來實現struts框架的模型。第19章到第21章介紹了如何採用第三方軟體,如apache common logging api、log4j、ant和strutstestcase,來控制struts套用的輸出日誌、管理以及測試struts套用項目。

作者

孫衛琴,1997年畢業於上海交通大學,隨後一直從事基於Java的軟體開發工作,還從事過J2EE培訓和諮詢。目前在美國肯特大學作為訪問學者,研究課題包括基於Java和XML的電子商務系統、J2EE軟體架構、Web服務和網路安全等。代表著作有:

《精通Struts: 基於MVC的Java Web設計與開發》 2004

《Tomcat與Java Web開發技術詳解》2004

《Java 2認證考試指南與試題解析》 2002

目錄

第1章 struts與java web套用簡介 1

1.1 java web套用概述 1

1.1.1 servlet組件 2

1.1.2 jsp組件 3

1.1.3 共享數據在web套用中的範圍 3

1.1.4 javabean組件及其在web套用中的範圍 5

1.1.5 客戶化jsp標籤 5

1.1.6 ejb組件 6

1.1.7 xml語言 6

1.1.8 web伺服器和套用伺服器 7

1.2 web組件的三種關聯關係 7

1.2.1 請求轉發 7

1.2.2 請求重定向 8

1.2.3 包含 9

1.3 mvc概述 9

1.3.1 mvc設計模式 10

1.3.2 jsp model1和jsp model2 11

1.4 struts概述 13

1.4.1 struts實現mvc的機制 13

1.4.2 struts的工作流程 15

.1.5 小結 17

第2章 struts套用:helloapp套用 19

2.1 分析helloapp套用的需求 19

2.2 運用struts框架 19

2.3 創建視圖組件 20

2.3.1 創建jsp檔案 20

2.3.2 創建訊息資源檔案 23

2.3.3 創建actionform bean 23

2.3.4 數據驗證 25

2.4 創建控制器組件 26

2.4.1 action類的工作機制 28

2.4.2 訪問封裝在messageresources中的本地化文本 28

2.4.3 業務邏輯驗證 28

2.4.4 訪問模型組件 29

2.4.5 向視圖組件傳遞數據 30

2.4.6 把http請求轉發給合適的視圖組件 30

2.5 創建模型組件 30

2.6 創建存放常量的java檔案 31

2.7 創建配置檔案 32

2.7.1 創建web套用的配置檔案 32

2.7.2 創建struts框架的配置檔案 33

2.8 發布和運行helloapp套用 35

2.8.1 伺服器端裝載hello.jsp的流程 37

2.8.2 表單驗證的流程 37

2.8.3 邏輯驗證失敗的流程 39

2.8.4 邏輯驗證成功的流程 40

2.9 小結 41

第3章 struts套用的需求分析與設計 43

3.1 收集和分析套用需求 43

3.2 設計資料庫 44

3.3 設計套用的業務邏輯 45

3.3.1 訪問xml格式的用戶信息 45

3.3.2 訪問資料庫 47

3.4 設計用戶界面 49

3.4.1 界面風格 50

3.4.2 使用客戶化標籤 52

3.5 設計actionform 53

3.6 設計action和action映射 55

3.6.1 設計logonaction 58

3.6.2 設計logoffaction 60

3.6.3 設計insertaction 61

3.6.4 設計searchaction 62

3.6.5 設計displayallaction 63

3.7 設計客戶化標籤 64

3.7.1 設計validatesessiontag標籤 64

3.7.2 設計displaytag標籤 66

3.7.3 創建客戶化app標籤庫的tld檔案 67

3.8 小結 68

第4章 配置struts套用 71

4.1 web套用的發布描述檔案 71

4.1.1 web套用發布描述檔案的文檔類型定義(dtd) 71

4.2 為struts套用配置web.xml檔案 72

4.2.1 配置struts的actionservlet 72

4.2.2 聲明actionservlet的初始化參數 73

4.2.3 配置歡迎檔案清單 74

4.2.4 配置錯誤處理 75

4.2.5 配置struts標籤庫 76

4.3 struts 配置檔案 77

4.3.1 org.apache.struts.config包 77

4.3.2 [struts-config]元素 79

4.3.3 [data-sources]元素 80

4.3.4 [form-beans]元素 82

4.3.5 [global-exceptions]元素 83

4.3.6 [global-forwards]元素 84

4.3.7 [action-mappings]元素 85

4.3.8 [controller]元素 87

4.3.9 [message-resources]元素 87

4.3.10 [plug-in]元素 88

4.3.11 配置多套用模組 89

4.4 digester 組件 91

4.5 struts 控制臺工具 91

4.6 重新載入配置檔案 93

4.7 小結 94

第5章 struts控制器組件 95

5.1 控制器組件的控制機制 95

5.1.1 actionservlet類 96

5.1.2 requestprocessor類 99

5.1.3 action類 105

5.2 使用內置的struts action類 112

5.2.1 org.apache.struts.actions.forwardaction類 112

5.2.2 org.apache.struts.actions.includeaction類 114

5.2.3 org.apache.struts.actions.dispatchaction類 115

5.2.4 org.apache.struts.actions.lookupdispatchaction類 118

5.2.5 org.apache.struts.actions.switchaction類 121

5.3 利用token解決重複提交 121

5.4 實用類 125

5.4.1 requestutils類 125

5.4.2 tagutils類 125

5.4.3 moduleutils類 126

5.4.4 globals類 126

5.5 小結 127

第6章 struts模型組件 129

6.1 模型在mvc中的地位 129

6.2 模型的概念和類型 130

6.2.1 概念模型 130

6.2.2 設計模型 131

6.3 業務對象(bo) 133

6.3.1 業務對象的特徵和類型 133

6.3.2 業務對象的重要性 134

6.4 業務對象的持久化 134

6.4.1 對業務對象進行持久化的作用 135

6.4.2 數據訪問對象(dao)設計模式 135

6.4.3 常用的orm軟體 136

6.5 創建netstore套用的模型 137

6.5.1 為netstore套用創建模型的步驟 137

6.5.2 創建netstore套用的業務對象 138

6.5.3 創建netstore套用的資料庫 142

6.5.4 netstore套用的orm框架 145

6.5.5 聯合使用業務代理和dao模式 155

6.6 小結 167

第7章 struts視圖組件 169

7.1 視圖概述 169

7.2 在視圖中使用javabean 170

7.2.1 dto數據傳輸對象 170

7.2.2 struts框架提供的dto:actionform bean 171

7.3 使用actionform 172

7.3.1 actionform的生命周期 172

7.3.2 創建actionform 174

7.3.3 配置actionform 176

7.3.4 訪問actionform 177

7.3.5 處理表單跨頁 178

7.4 使用動態actionform 184

7.4.1 配置動態actionform 185

7.4.2 動態actionform的reset()方法 186

7.4.3 訪問動態actionform 187

7.4.4 動態actionform的表單驗證 187

7.4.5 在netstore套用中使用動態actionform 187

7.5 小結 189

第8章 擴展struts框架 191

8.1 struts外掛程式(plugin) 191

8.2 擴展struts的配置類 194

8.3 控制器擴展點 195

8.3.1 擴展actionservlet類 195

8.3.2 擴展requestprocessor類 196

8.3.3 擴展action類 198

8.4 擴展視圖組件 200

8.5 擴展模型組件 200

8.6 小結 204

第9章 struts套用的國際化 205

9.1 本地化與國際化的概念 205

9.2 web套用的中文本地化 206

9.2.1 處理http請求數據編碼 207

9.2.2 處理資料庫數據編碼 207

9.2.3 處理xml配置檔案編碼 207

9.2.4 處理回響結果的編碼 208

9.3 java對i18n的支持 208

9.3.1 locale類 208

9.3.2 resourcebundle類 214

9.3.3 messageformat類和複合訊息 214

9.4 struts框架對國際化的支持 216

9.4.1 創建struts的resource bundle 216

9.4.2 訪問resource bundle 217

9.5 對helloapp套用實現國際化 220

9.5.1 對jsp檔案的文本、圖片和按鈕進行國際化 220

9.5.2 創建臨時中文資源檔案 221

9.5.3 對臨時資源檔案進行編碼轉換 222

9.5.4 創建英文資源檔案 223

9.5.5 採用servlet過濾器設定請求數據的字元編碼 223

9.5.6 運行國際化的helloapp套用 225

9.6 異常處理的國際化 226

9.7 小結 226

第10章 validator驗證框架 229

10.1 安裝和配置validator框架 229

10.1.1 validator-rules.xml檔案 229

10.1.2 validation.xml檔案 233

10.1.3 validator外掛程式 237

10.2 validator框架和actionform 238

10.3 validator框架和struts客戶化標籤 240

10.4 在netstore套用中使用validator框架 241

10.5 創建自定義的驗證規則 245

10.6 在validator框架中使用javascript 247

10.7 validator框架的國際化 250

10.8 小結 251

第11章 異常處理 253

11.1 java異常處理 253

11.1.1 java異常 253

11.1.2 jvm的方法調用堆疊 254

11.1.3 異常處理對性能的影響 255

11.1.4 系統異常和套用異常 256

11.1.5 使用異常鏈 256

11.1.6 處理多樣化異常 258

11.2 struts框架異常處理機制概述 260

11.3 struts框架異常處理機制的細節 261

11.3.1 java web容器處理異常的機制 261

11.3.2 actionservlet類處理異常的機制 261

11.3.3 requestprocessor類處理異常的機制 262

11.3.4 exceptionhandler類處理異常的機制 263

11.4 在struts套用中處理異常的各種方式 266

11.4.1 創建異常類 266

11.4.2 由java web容器捕獲異常 269

11.4.3 以配置方式處理異常 271

11.4.4 以編程方式處理異常 277

11.5 小結 282

第12章 struts html標籤庫 283

12.1 用於生成基本的html元素的標籤 283

12.1.1 [html:html]標籤 288

12.1.2 [html:base]標籤 288

12.1.3 [html:link]和[html:rewrite]標籤 289

12.1.4 [html:img]標籤 292

12.2 基本的表單標籤 293

12.2.1 [html:form]標籤 296

12.2.2 [html:text]標籤 296

12.2.3 [html:cancel]標籤 297

12.2.4 [html:reset]標籤 298

12.2.5 [html:submit]標籤 298

12.2.6 [html:hidden]標籤 299

12.3 檢查框和單選按鈕標籤 299

12.3.1 [html:checkbox]標籤 304

12.3.2 [html:multibox]標籤 305

12.3.3 [html:radio]標籤 306

12.4 下拉列表和多選列表標籤 307

12.4.1 [html:select]標籤 311

12.4.2 [html:option]標籤 312

12.4.3 [html:options]標籤 313

12.4.4 [html:optionscollection]標籤 314

12.5 在表單中上傳檔案標籤 315

12.5.1 [html:file]標籤 319

12.5.2 在actionform bean中設定formfile屬性 319

12.5.3 在action類中處理檔案上傳 319

12.6 [html:errors]標籤 320

12.6.1 錯誤訊息的來源 324

12.6.2 格式化地顯示錯誤訊息 326

12.6.3 [html:errors]標籤的用法 326

12.7 [html:messages]標籤 328

12.8 小結 330

第13章 struts bean標籤庫 331

13.1 訪問http請求信息或jsp隱含對象 331

13.1.1 [bean:header]標籤 334

13.1.2 [bean:parameter]標籤 334

13.1.3 [bean:cookie]標籤 335

13.1.4 [bean:page]標籤 336

13.2 訪問web套用資源 337

13.2.1 [bean:message]標籤 339

13.2.2 [bean:resource]標籤 341

13.2.3 [bean:struts]標籤 341

13.2.4 [bean:include]標籤 342

13.3 定義或輸出javabean 342

13.3.1 [bean:define]標籤 344

13.3.2 [bean:size]標籤 345

13.3.3 [bean:write]標籤 346

13.4 小結 347

第14章 struts logic標籤庫 349

14.1 進行比較運算的logic標籤 349

14.2 進行字元串匹配的logic標籤 354

14.3 判斷指定內容是否存在的logic標籤 356

14.3.1 [logic:empty]和[logic:notempty]標籤 359

14.3.2 [logic:present]和[logic:notpresent]標籤 360

14.3.3 [logic:messagespresent]和[logic:messagesnotpresent]標籤 361

14.4 進行循環遍歷的logic標籤 363

14.4.1 遍歷集合 366

14.4.2 遍歷map 367

14.4.3 設定被遍歷的變數 369

14.5 進行請求轉發或重定向的logic標籤 369

14.5.1 [logic:forward]標籤 369

14.5.2 [logic:redirect]標籤 370

14.6 小結 370

第15章 struts nested標籤庫 373

15.1 [nested:nest]和[nested:writenesting]標籤 373

15.2 [nested:root]標籤 379

15.3 和其他標籤庫中的標籤功能相同的nested標籤 381

15.4 小結 382

第16章 tiles框架 383

16.1 採用基本的jsp語句創建複合式網頁 383

16.2 採用jsp的include指令創建複合式網頁 387

16.3 採用[tiles:insert]標籤創建複合式網頁 391

16.4 採用tiles模板創建複合式網頁 394

16.5 採用tiles模板和tiles組件創建複合式網頁 396

16.5.1 tiles組件的基本使用方法 397

16.5.2 通過struts action來調用tiles組件 399

16.5.3 tiles組件的組合 399

16.5.4 tiles組件的擴展 402

16.6 小結 403

第17章 struts與ejb組件 405

17.1 j2ee體系結構簡介 405

17.2 創建ejb組件 406

17.2.1 編寫remote接口 407

17.2.2 編寫home接口 408

17.2.3 編寫enterprise java bean類 408

17.3 在struts套用中訪問ejb組件 413

17.3.1 創建業務代理實現類netstoreejbdelegate 413

17.3.2 運用ejbhomefactory模式 416

17.4 發布j2ee套用 419

17.4.1 在jboss-tomcat上部署ejb組件 419

17.4.2 在jboss-tomcat上部署web套用 421

17.4.3 在jboss-tomcat上部署j2ee套用 422

17.5 小結 424

第18章 struts與soap web服務 425

18.1 soap簡介 425

18.2 建立apache axis環境 427

18.3 創建和發布soap服務 428

18.3.1 創建實現soap服務的java類 428

18.3.2 創建web服務發布描述檔案 429

18.3.3 發布soap服務 432

18.4 在struts套用中訪問soap服務 432

18.5 小結 438

第19章 struts與apache通用日誌包 439

19.1 apache通用日誌包概述 439

19.1.1 log接口 439

19.1.2 logfactory接口 441

19.2 常用的日誌實現 441

19.2.1 nooplog日誌器 441

19.2.2 simplelog日誌器 442

19.2.3 log4j日誌器 442

19.3 配置通用日誌接口 443

19.3.1 準備jar檔案 443

19.3.2 指定日誌器 443

19.3.3 設定日誌器的屬性 444

19.4 配置log4j 444

19.4.1 配置log4j的一般步驟 444

19.4.2 log4j的配置樣例 446

19.4.3 log4j對套用性能的影響 447

19.5 在struts套用中訪問通用日誌接口 447

19.5.1 在action類中訪問通用日誌接口 448

19.5.2 在jsp中訪問通用日誌接口 450

19.6 小結 454

第20章 用ant工具管理struts套用 455

20.1 web套用常用的開發目錄結構 455

20.2 安裝配置ant 455

20.3 創建build.xml檔案 456

20.3.1 設定公共屬性 462

20.3.2 設定classpath 463

20.3.3 定義help target 463

20.3.4 定義clean-all target 463

20.3.5 定義prepare target 464

20.3.6 定義compile target 464

20.3.7 定義build target 465

20.3.8 定義deploy target 466

20.3.9 定義javadoc target 466

20.4 運行ant 466

20.4.1 運行help target 466

20.4.2 運行deploy target 467

20.4.3 運行javadoc target 468

20.5 小結 468

第21章 用strutstestcase測試struts套用 469

21.1 strutstestcase簡介 469

21.2 制訂單元測試用例 469

21.3 創建strutstestcase測試類 470

21.4 用ant工具運行測試程式 471

21.4.1 準備必要的jar檔案 471

21.4.2 在build.xml檔案中定義test target 471

21.4.3 運行測試程式 472

21.5 創建包含多個單元測試用例的測試類 473

21.6 小結 475

附錄a struts1.1的uml類框圖 476

附錄b struts資源 477

b.1 struts郵件列表 477

b.2 struts資源web站點 477

b.3 tiles標籤庫站點 477

b.4 nested 標籤庫站點 478

b.5 struts gui工具 478

b.6 easy struts 工程 478

附錄c 發布和運行addressbook套用 479

c.1 發布addressbook套用 479

c.2 運行addressbook套用 479

附錄d 發布和運行netstore套用 482

d.1 運行netstore所需的軟體 482

d.2 netstore套用的目錄結構 483

d.3 安裝netstore資料庫 484

d.4 發布netstore套用 484

d.4.1 在工作模式1下發布netstore套用 484

d.4.2 在工作模式2下發布netstore套用 485

d.4.3 在工作模式3下發布netstore套用 485

d.4.4 在工作模式4下發布netstore套用 486

d.4.5 在工作模式5下發布netstore套用 486

d.5 運行netstore套用 487

附錄e 編譯本書的java web樣例 491

附錄f struts 1.2 api的新特徵 492

相關詞條

相關搜尋

熱門詞條

聯絡我們