零點起飛學Java Web開發(fā)之Spring+Hibernate+Struts_第1頁
零點起飛學Java Web開發(fā)之Spring+Hibernate+Struts_第2頁
零點起飛學Java Web開發(fā)之Spring+Hibernate+Struts_第3頁
零點起飛學Java Web開發(fā)之Spring+Hibernate+Struts_第4頁
零點起飛學Java Web開發(fā)之Spring+Hibernate+Struts_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第25章 Spring+Hibernate+Struts集成實例分析本書的前面章節(jié)中對JSP、Servlet、JavaBean組件,以及Hibernate、Struts 2、Spring等框架技術進行了講解,并且講解了如何實現(xiàn)Spring和Struts 2框架集成、Spring和Hibernate的集成。本章將在這些內(nèi)容的基礎上通過一個在線購物系統(tǒng)來分析如何實現(xiàn)Spring+ Hibernate+Struts 2進行Java Web項目開發(fā)。125.1 項目需求和系統(tǒng)框架在第13章中已經(jīng)講過了在線購物系統(tǒng)的需求分析(13.5.1),并且在項目開發(fā)概述(13.4)中對系統(tǒng)的框架進行了大致的分析。

2、本節(jié)把第13章的一些知識進行回顧,并且對系統(tǒng)框架進行更加詳細的闡述。這樣讀者對在線購物系統(tǒng)就會有一個總體的認識,方便以后內(nèi)容的學習。225.1.1 項目需求概述在線購物系統(tǒng)是一個提供給用戶在網(wǎng)上選擇、購買商品的系統(tǒng) 。用戶使用它可以進行注冊、登錄、修改資料、查詢商品信息、管理購物車、建立訂單等操作;管理員使用它可以進行商品添加、商品分類、用戶管理、訂單管理等操作。詳細的信息參見本書的13.5.1節(jié)。325.1.2 系統(tǒng)框架這里對第13章的講解過的系統(tǒng)框架進行詳述,如圖所示。我們可以看出,這個框架圖和第13章所講的框架圖有些不同。使用Spring框架作為Hibernate、Struts 2框架的

3、控制器、DBOperator的容器,也即實現(xiàn)了Spring、Struts 2和Hibernate的集成。下面對該體系結構進行講解。425.1.2 系統(tǒng)框架Database:采用MySQL數(shù)據(jù)庫,數(shù)據(jù)庫的表,以及表之間的關系和第13章都一樣。所以本章對于數(shù)據(jù)庫的創(chuàng)建會略講。Hibernate:Hibernate的映射文件和第13章相同,不同的是實現(xiàn)了Hibernate和Spring的集成。本章會重點講述如何使用Hibernate+Spring開發(fā)在線購物系統(tǒng)的底層組件。JavaBeans:JavaBean類和第13章相同,本章不做詳述。DBOperator:作為數(shù)據(jù)訪問層,它們提供了保存、更新、

4、刪除以及查詢等操作。Struts 2的控制器調(diào)用它們實現(xiàn)對數(shù)據(jù)庫的操作。由于實現(xiàn)了Spring和Hibernate的集成,DBOperator的代碼也要做一些修改。讀者會看到,使用Spring+Hibernate可以只關注實際操作邏輯,讓Spring框架去控制和管理事務,這樣就可以極大降低對數(shù)據(jù)庫操作的復雜性。DBOperator也是本章講述的重點。Struts 2(控制器):該層用來實現(xiàn)業(yè)務邏輯,并且調(diào)用DBOperator去完成后數(shù)據(jù)庫操作。在本章中,會去重點講述如何實現(xiàn)Struts 2和Spring的集成。讀者會看到,集成后Struts 2的Action類可以定義在Spring的配置文件

5、中,并且在Spring配置文件把DBOperator類作為Action類的屬性注入。這樣就可以方便地實現(xiàn)插拔操作,體現(xiàn)Spring AOP的思想。視圖層:對于ShoppingOnline和ShoppingAdmin的界面開發(fā),適當?shù)夭捎昧薙truts 2的標簽進行,并且使用Struts 2的表單驗證框架驗證用戶輸入的信息,使用Struts 2的國際化去規(guī)范頁面顯示。525.2 數(shù)據(jù)庫的設計數(shù)據(jù)庫設計的過程應該包括需求分析、概念機構設計、邏輯結構設計和物理結構設計等步驟。這些在第13章中已經(jīng)有詳細的講述,這里不再講解。之所以保留這一節(jié),是為了讓讀者明白數(shù)據(jù)庫設計是進行Java Web開發(fā)的一個關

6、鍵步驟。625.3 配置開發(fā)環(huán)境對于這種復雜的項目,推薦使用MyEclipse進行開發(fā)。本項目采用Spring作為主體框架,所以首先安裝Spring框架,然后整合Struts 2和Hibernate。具體的方法在第24章中已經(jīng)做了介紹,這里筆者只列出配置后的一些相關文件。725.3.1 web.xml文件的配置代碼中使用了Struts 2的FilterDispatcher過濾所有的請求,這樣調(diào)用的就是Struts 2的MVC框架,并且配置了ContextLoaderListener。這樣Web容器會自動加載Spring的配置文件applicationContext.xml,集成了Spring框

7、架。825.3.2 Spring配置文件applicationContext.xml的配置該文件是Spring的配置文件,它定義了所有要加載的類對象就是通過這個文件,實現(xiàn)了Spring和Hibernate的集成,并且所有Struts 2的Action類也要定義在這個文件中,去實現(xiàn)Spring和Struts 2的集成,所以這個文件是至關重要的。925.3.3 Struts 2配置文件struts.xml的配置Struts.xml文件主要用來配置Struts 2的業(yè)務控制器。1025.3.4 其他文件的配置Sperties文件的配置如下所示。struts.objectFactor

8、y=perties文件的代碼如下所示。jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:/:3306/shoppingonlinejdbc.username=rootjdbc.password=123456hibernate.dialect=org.hibernate.dialect.MySQLDialect1125.4 編寫JavaBean組件JavaBean在該項目中充當著業(yè)務實體層和數(shù)據(jù)持續(xù)層的作用,它通過Hibernate和數(shù)據(jù)表建立了對應關系,所以在應用程序中可以通

9、過操作它來實現(xiàn)數(shù)據(jù)庫管理。該項目的JavaBean類和第13章相同,這里不再詳述。1225.5 建立數(shù)據(jù)庫訪問組件(DBOperator)DBOperator用來連接數(shù)據(jù)庫,并且執(zhí)行查詢、插入、更新、刪除等操作??刂破髡{(diào)用該層去操作數(shù)據(jù)庫,從而完成業(yè)務邏輯操作。由于實現(xiàn)了Hibernate和Spring的集成,該層的文件和第13章的DBOperate.java以及HibernateUtil.java不同。下面進行講解。1325.5.1 定義接口Shopping在使用Spring框架時,一般都要給配置文件中定義的類創(chuàng)建一個接口類。在接口類中聲明要實現(xiàn)的函數(shù),并在要配置的類中實現(xiàn)該接口,重寫接口中

10、的函數(shù),這樣就可以通過配置文件很方便地實現(xiàn)插拔操作。1425.5.2 定義接口的實現(xiàn)類HibernateShopping本項目的HibernateShopping.java文件實現(xiàn)了Shopping接口,該類繼承了HibernateDaoSupport類,并且實現(xiàn)了Shopping接口,對每個類都進行了重寫。這個類的函數(shù)通過getHibernateTemplate()獲取HibernateTemplate對象,然后使用它進行數(shù)據(jù)庫操作。比較第13章的DBOperate.java和這個類,讀者就會發(fā)現(xiàn)該類的函數(shù)很簡單。所有對事務控制的操作都由HibernateTemplate進行,程序員不需要關

11、心,這就是實現(xiàn)Spring和Hibernate集成的好處之一。1525.5.3 在Action類中調(diào)用HibernateShopping類Action類接收到視圖層的請求后,需要調(diào)用DBOperator層進行數(shù)據(jù)庫操作。那么怎樣才能在Action類中調(diào)用到HibernateShopping類呢?由于實現(xiàn)了Spring和Struts 2的集成,可以在Spring控制文件中將HibernateShopping注入到Action類中,如圖所示。可以看出,在Spring容器中,由于同時存在Action類、HibernateShopping以及HibernateShopping的事務代理,所以就可以將H

12、ibernateShopping通過transactionProxy注入到Action類中去使用。1625.5.3 在Action類中調(diào)用HibernateShopping類下面看如何實現(xiàn)注入。(1)Action類中都有一個屬性shoppingOperator,它是Shopping接口類型的,并且該屬性有getter和setter方法。(2)在Spring的配置文件中通過ref實現(xiàn)注入, 1725.6 創(chuàng)建業(yè)務控制器在線購物系統(tǒng)的業(yè)務控制器充當著非常重要的角色。由于該系統(tǒng)的業(yè)務邏輯相對簡單,大部分業(yè)務邏輯的實現(xiàn)都放在了控制器中,所以Action類不僅充當著控制器的角色,而且還必須完成邏輯控制。

13、下面對在線購物系統(tǒng)的業(yè)務控制進行介紹。1825.6.1 業(yè)務控制器的執(zhí)行流程該系統(tǒng)的業(yè)務控制器用來接收視圖請求,然后調(diào)用HibernateShopping中的方法完成后數(shù)據(jù)庫操作,其基本流程如圖所示。1925.6.1 業(yè)務控制器的執(zhí)行流程可以看出,該系統(tǒng)中的Action類有控制、調(diào)度的作用,并且由于業(yè)務邏輯比較簡單,所以可以在Action類中進行邏輯控制,僅在需要進行數(shù)據(jù)庫操作時,才調(diào)用HibernateShopping的方法。下面通過LoginAction里的Action類來進行講解。2025.6.2 在線購物系統(tǒng)Action類分析下面通過struts.xml對該系統(tǒng)的Action類進行分析

14、。2125.7 創(chuàng)建視圖組件要想在線購物系統(tǒng)吸引用戶,就必須建立美觀、方便實用的界面。本項目比較復雜,使用的JSP文件很多。下面只對顯示用戶注冊、修改用戶信息、瀏覽商品詳細信息和顯示用戶訂單列表的JSP文件進行講解。2225.7.1 用戶注冊界面該界面用于顯示用戶注冊的表單。 2325.7.2 修改用戶信息界面該界面用于顯示用戶修改個人資料的表單。 2425.7.3 瀏覽商品詳細信息界面該界面用戶顯示主要商品的列表。2525.7.4 顯示用戶訂單列表界面該界面用于把某用戶的所有訂單顯示出來。 2625.8 運行在線購物系統(tǒng)讀者可以按照如下步驟運行該系統(tǒng)。(1)啟動Tomcat,在瀏覽器中輸入,即可訪問到該系統(tǒng)。(2)單擊左側的“注冊”按鈕。在彈出的注冊頁面中創(chuàng)建一個新用戶。(3)填寫用戶名和密碼,單擊左側的“登錄”按鈕,登錄到該系統(tǒng)中。(4)在左側的“搜索”文本框中輸入一些包含商品名字的字符串,提交。這樣就可以進行模糊搜索。(5)單擊某一產(chǎn)品下方的“訂購”按鈕,就可以把該商品加入購物車。(6)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論