單元8 購物網站訂單模塊設計和多模塊集成(JSP+Struts 2+Spring+Hibernate)_第1頁
單元8 購物網站訂單模塊設計和多模塊集成(JSP+Struts 2+Spring+Hibernate)_第2頁
單元8 購物網站訂單模塊設計和多模塊集成(JSP+Struts 2+Spring+Hibernate)_第3頁
單元8 購物網站訂單模塊設計和多模塊集成(JSP+Struts 2+Spring+Hibernate)_第4頁
單元8 購物網站訂單模塊設計和多模塊集成(JSP+Struts 2+Spring+Hibernate)_第5頁
已閱讀5頁,還剩92頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

單元8

購物網站訂單模塊設計和多模塊集成(JSP+Struts2+Spring+Hibernate) Spring是一個輕量級的開源框架,它為Java帶來了一種全新的編程思想,其目的是

解決企業應用開發的復雜性。 Spring以IoC和AOP兩種先進技術為基

礎完美地簡化了企業級開發的復雜度,降低

了開發成本并整合了各種流行框架。 Spring的一個最大的目的就是使JavaEE開發更加容易,Spring不同于Struts、Hibernate等單層框架,它致力于以統一的、高效的方式構造整個應用系統,并且可以將單層框架以最佳的組合揉和在一起,建立一個連貫的體系。

可以說Spring是一個提供了更完善開發環境的框架,可以為POJO(PlainOldJavaObject)對象提供企業級的服務。

輕量級JavaEE軟件架構主要由主流的開源框架Struts、Spring、Hibernate根據其各自的應用特性而進行整合而成,選擇以Spring框架為核心并整合Struts和Hibernate的框架組合。

基于SSH框架的應用系統從職責上分為4層:表示層、業務層、持久層和域模塊層,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。

其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,使用Hibernate框架對持久層提供支持,使用Spring管理struts和hibernate。 SSH分為SSH1和SSH2,區別主要在于Struts的版本,即SSH1框架集成了Struts1,SSH2框架集成了Struts2,本單元的應用程序開發是基于SSH2,即Struts2+Spring+Hibernate的集成。【知識梳理】1.Spring簡介 Spring是一個為了解決企業應用開發的復雜性而創建的開源框架,由RodJohnson創建。 Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。

然而,Spring的用途不僅限于服務器端的開發。

從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。2.Spring的特性 Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

①輕量:從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的,Spring應用中的對象不依賴于Spring的特定類。

②控制反轉:Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合,其核心是輕量級的IoC容器。當系統應用了IoC,一個對象依賴的其他對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。IoC不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。

③面向切面:Spring提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務(如審計和事務管理)進行內聚性的開發。應用對象只實現它們應該做的(完成業務邏輯)。它們并不負責其他的系統級關注點,如日志或事務支持。

④容器:Spring包含并管理應用對象的配置和生命周期,在這個意義上它是一種容器,可以基于一個可配置原型(prototype)配置每一個Bean如何被創建,Bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例。然而,Spring不應該被混同于傳統的重量級的EJB容器,EJB經常是龐大與笨重的,難以使用。

⑤框架:Spring可以將簡單的組件配置組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎功能(事務管理、持久化框架集成等),將應用邏輯的開發留給了應用開發人員。3.Spring框架的組成模塊 Spring框架由7個定義明確的模塊組成,且每個模塊或組件都可以單獨使用,或者與其他一個或多個模塊組合使用,靈活方便的部署可以使開發的程序更加簡潔。

(1)SpringCore模塊

該模塊是Spring框架的核心容器,這是Spring框架最基礎的部分,它提供了依賴注入(DependencyInjection)特征來實現容器對Bean的配置與管理。

核心容器的主要組件是BeanFactory,它是工廠模式的一個實現。 BeanFactory使用控制反轉(IoC)模

式將應用程序的配置和依賴性規范從實際

的應用程序代碼中分離出來。

(2)SpringContext(應用上下文)模塊

核心模塊的BeanFactory使Spring成為一個容器,而SpringContext模塊使它成為一個框架。

這個模塊擴展了BeanFactory的概念,增加了對事件處理、國際化(I18N)消息、資源加載及數據驗證的支持。

另外,這個模塊提供了框架式的Bean訪問方

式和許多企業級服務,如電子郵件、JNDI訪問、

支持EJB、遠程及時序調度(scheduling)服務。

也包括了對模板框架(如Velocity和FreeMarker)

集成的支持。

(3)SpringAOP模塊 Spring在它的AOP模塊中提供了對面向切面編程的豐富支持,這個模塊是在Spring應用中實現切面編程的基礎。

為了確保Spring與其他AOP框架的互用性,Spring的AOP支持基于AOP聯盟定義的API。 AOP聯盟是一個開源項目,它的目標是通過定義一組共同的接口和組件來促進AOP的使用以及不同的AOP實現之間的互用性。

(4)SpringDAO模塊

直接使用JDBC編寫程序訪問數據庫,實現取得連接、創建語句、處理結果集,然后關閉連接等功能,會導致大量的重復代碼。 Spring的JDBC和DAO模塊抽取了這些重復代碼,因此可以保持數據庫訪問代碼的干凈簡潔,并且可以防止因關閉數據庫資源失敗而引起的問題。

(5)SpringORM(對象/關系映射)集成模塊 Spring提供的ORM模塊,對現有ORM框架提供了支持。 Spring并不試圖實現它自己的ORM解決方案,而是為幾種流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATISSQL映射。 Spring的事務管理支持這些ORM框架中的每一個(也包括JDBC)。

(6)SpringWeb模塊 SpringWeb模塊建立于SpringContext(應用

上下文)模塊之上,提供了一個適合于Web應用

的上下文。

另外,這個模塊還提供了一些面向服務支持,

如實現文件上傳的multipart請求,也提供了Spring

和其他Web框架的集成,如Struts、WebWork。

(7)SpringMVC框架 Spring為構建Web應用提供了一個功能全面的MVC框架。雖然Spring可以很容易地與其他MVC框架集成,如Struts,但Spring的MVC框架使用IoC對控制邏輯和業務對象提供了完全的分離。

此外,Spring的MVC框架還可以利用Spring的任何其他服務,如國際化信息與驗證。4.SSH框架

著名的軟件大師RalphJohnson對框架(Framework)進行了如下的定義:框架是整個系統或系統的一部分的可重用設計,由一組抽象的類及其實例間的相互作用方式組成。 SSH框架就是指Struts、Spring、Hibernate這三大流行框架的集成。(1)Struts Struts主要負責表示層的實現,它提供的豐富標簽用于View,同時Struts也充當了實現Control的功能,實現接收參數和視圖分發功能。(2)Spring Spring利用它的IoC和AOP來處理控制業務,降低層與層間耦合度的,所有的類都可以由Spring統一創建,用時只需注入即可。(3)Hibernate Hibernate主要是數據的持久化到數據庫,是底層基于JDBC的ORM(對象關系映射)持久化框架,即表與類的映射,字段與屬性的映射,記錄與對象的映射。圖8-1集成SSH框架的系統架構圖

系統的基本業務流程是:在表示層中,

首先通過JSP頁面實現交互界面,負責接收

請求(Request)和傳送響應(Response),然后Struts根據配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應的Action處理。①表示層。②業務邏輯層。③數據持久層。【應用技巧】

本單元的應用技巧如下所示。

①SSH2(Struts2+Spring3+Hibernate4)開發環境的正確配置。

②利用泛型工具類獲取實體對象的類型方法。

③利用DAO模式封裝數據庫的基本操作方法。

④隨機生成訂單號,確保訂單編號的唯一性。

⑤配置編碼過濾器,確保中文字符的正常顯示,避免產生亂碼。

⑥利用Struts2的攔截器控制用戶必須先登錄,才允許購買商品。

⑦利用Struts2的字段驗證器編寫風格針對字段進行驗證。

⑧在Struts2的配置文件struts.xml中應用通配符配置Action對象,達到簡化配置的效果。

⑨應用Hibernate的find()方法實現數據分頁。

⑩利用Session對象實現購物車功能。

?應用Hibernate框架中的多對一和一對一關聯關系映射。【環境創設】

①下載與配置Spring。 Spring官方網站的網址是http://www.,在該網站上可以獲取Spring的最新版本的jar包及幫助文檔,本書所使用的Spring開發包為spring3.1.1版本。圖8-2

Spring的支持類庫

②下載Servlet支持類庫servlet-api.jar、JDBC支持類庫sqljdbc4.jar、Struts2支持類庫的jar包和Hibernate支持類庫的jar包。

③在MicrosoftSQLServer2008數據庫eshop中創建本單元所需多個數據表,其中“商品數據表”已在前面的單元中創建完成。本單元只創建“訂單信息表”、“訂單商品詳情表”和“注冊信息表”。字段名數據類型字段名數據類型訂單編號nvarchar(30)送貨方式nvarchar(20)收貨人姓名nvarchar(30)訂單總金額money送貨地址nvarchar(80)下單時間datetime聯系電話varchar(11)訂單狀態nvarchar(20)支付方式nvarchar(20)客戶IDint表8-1“訂單信息表”的結構信息字段名數據類型字段名數據類型商品條目IDint商品價格money訂單編號nvarchar(30)優惠價格money商品IDint購買數量int商品名稱nvarchar(50)表8-2“訂單商品詳情表”的結構信息字段名數據類型字段名數據類型注冊用戶IDint地址nvarchar(100)注冊名稱nvarchar(30)Emailnvarchar(50)密碼nvarchar(20)聯系電話varchar(11)真實姓名nvarchar(30)表8-3“注冊信息表”的結構信息

④準備開發Web應用程序所需的圖片文件、CSS樣式文件和JavaScript文件。

⑤在計算機的【資源管理器】中創建文件夾unit08。

⑥啟動Eclipse,設置工作空間為unit08,然后進入Eclipse的開發環境。

⑦在Eclipse集成開發環境中配置與啟動Tomcat服務器。

⑧新建動態Web項目,命名為project08。

⑨將Jar包文件servlet-api.jar和sqljdbc4.jar、Struts2支持類庫的jar包、Hibernate支持類

庫的jar包、Spring支持類庫的jar包拷貝到Web項目project08的文件夾“WebContent\WEB-

INF\lib”下,并在Eclipse集成開發環境的“項目資源管理器”刷新各個Web項目。

⑩為了便于應用程序的管理和維護,建立好Java類的包結構,本單元的Web項目project08的包結構如圖8-3所示。其中包action存放基本的action類,包dao存放DAO類,包model存放基本的實體類,包tools和util存放工具類。圖8-3

Web項目project08的包結構圖8-4

Web項目project08頁面資源的文件夾【任務描述】

基于SSH2創建JavaWeb應用程序,實現購物網站的用戶注冊、用戶登錄、商品瀏覽、商品查詢和購物功能,購物網站的部分功能結構及購物流程如圖8-5所示。圖8-5購物網站的部分功能結構及購物流程【任務8-1】基于SSH2的商品瀏覽與查詢模塊的設計

基于SSH2創建JavaWeb應用程序,實現購物網站的瀏覽與查詢商品功能。【任務8-2】基于SSH2的用戶登錄模塊的設計

基于SSH2創建JavaWeb應用程序,實現購物網站的普通用戶登錄功能。【任務8-3】基于SSH2的用戶注冊模塊的設計

基于SSH2創建JavaWeb應用程序,實現購物網站的用戶注冊功能。【任務8-4】基于SSH2的購物車模塊的設計

基于SSH2創建JavaWeb應用程序,實現購物網站的購物車功能。【任務8-5】基于SSH2的訂單模塊的設計

基于SSH2創建JavaWeb應用程序,實現購物網站的訂單功能。【任務實施】【網頁結構設計】

購物網站主要包括商品瀏覽與查詢、商品詳情瀏覽、用戶注冊、用戶登錄、購物車商品瀏覽、訂單添加、訂單確認、訂單查看等頁面,其中商品瀏覽與查詢、商品詳情瀏覽、用戶注冊、用戶登錄等頁面的主體結構及靜態網頁設計在前面單元中已予以介紹,這里不再贅述。【網頁CSS設計】

在DreamweaverCS6開發環境中創建多

個CSS文件:module.css、cart.css、ticket.css、base.css、view.css和member.css。

這6個CSS文件具體的代碼見本書提供的

電子資源。【靜態網頁設計】 1.創建購物車商品瀏覽的靜態網頁cart_list.html

在DreamweaverCS6中創建靜態網頁cart_list.html,該網頁的初始HTML代碼如表1-5所示。

在網頁cart_list.html中<head>和</head>之間編寫如下所示的代碼,引入所需的CSS樣式文件。圖8-6網頁cart_list.html的瀏覽效果 2.創建訂單確認的靜態網頁order_confirm.html

在DreamweaverCS6中創建靜態網頁order_confirm.html,該網頁的初始HTML代碼如表1-5所示。

在網頁order_confirm.html中<head>和</head>之間編寫如下所示的代碼,引入所需的CSS樣式文件。圖8-7網頁order_confirm.html的瀏覽效果【網頁功能實現】 1.創建與編寫配置文件

(1)創建與編寫Struts2的配置文件Struts2.xml

(2)創建與編寫配置文件struts-default.xml(3)創建與編寫配置文件struts-front.xml(4)創建與編寫Hibernate的配置文件hibernate.cfg.xml(5)創建與編寫Spring的配置文件applicationContext-common.xml(6)創建與編寫配置文件web.xml 2.創建與設計公共類(1)創建泛型工具類GenericsUtils(2)創建字符串工具類StringUitl(3)創建頁面錯誤提示信息類AppException及其方法(4)創建編碼過濾器類CharacterEncodingFilter(5)創建數據庫操作與分頁的接口BaseDao和類DaoSupport及其方法 3.創建基本Action類BaseAction

在包package08.action中創建一個基本Action類BaseAction,該類是其他Action的父類。 4.創建普通用戶登錄攔截器CustomerLoginInteceptor

在包erceptor中創建普

通用戶登錄攔截器,即Action類CustomerLogin

Inteceptor,該類繼承自AbstractInterceptor類。5.創建與設計公共JSP頁面(1)創建JSP頁面top08.jsp(2)創建JSP頁面bottom08.jsp(3)創建JSP頁面page08.jsp(4)創建JSP頁面error08.jsp 6.基于SSH2的商品瀏覽與查詢模塊的設計(1)創建與設計商品實體類文件ProductInfo.java(2)創建與設計商品實體對象的映射文件ProductInfo.hbm.xml(3)創建與設計分頁實體類文件PageModel.java(4)創建起始JSP頁面task08.jsp(5)創建Action類indexAction(6)創建與設計接口ProductDao(7)創建與設計類ProductDaoImpl(8)在配置文件struts-front.xml中添加有關商品Action的配置內容(9)創建與設計JSP頁面index.jsp(10)創建與設計Action類ProductAction(11)創建與設計JSP頁面product_list.jsp(12)創建與設計JSP頁面product_select.jsp(13)運行程序輸出結果圖8-8頁面加載中所顯示的頁面圖8-9商品信息瀏覽頁面的外觀圖8-10商品詳細信息瀏覽頁面的外觀 7.基于SSH2的用戶注冊模塊和用戶登錄模塊的設計(1)創建與設計普通用戶實體類文件Customer.java(2)創建與設計普通用戶實體對象的映射文件Customer.hbm.xml(3)在配置文件struts-default.xml中添加有關用戶注冊和用戶登錄的配置內容(4)在配置文件struts-front.xml中添加有關客戶Action的配置內容(5)創建與設計接口CustomerDao(6)創建與設計類CustomerDaoImpl(7)創建與設計Action類CustomerAction(8)創建驗證文件CustomerAction-customer_save-validation.xml(9)創建與設計JSP頁面customer_register08.jsp(10)創建與設計JSP頁面customer_login08.jsp(11)運行程序輸出結果圖8-11

JSP頁面product_list.jsp的底部導航欄

圖8-12在“用戶注冊”頁面的各個表單控件中輸入合適的數據圖8-13在【用戶登錄】頁面輸入用戶名和密碼 8.基于SSH2的購物車模塊的設計(1)在配置文件struts-front.xml中添加有關購物車Action的配置內容(2)創建與設計Action類CartAction(3)創建與設計JSP頁面cart_list.jsp(4)運行程序輸出結果圖8-14購物車頁面cart_list.jsp的瀏覽效果 9.基于SSH2的訂單模塊的設計(1)創建與設計訂單實體類文件Order.java(2)創建與設計訂單實體對象的映射文件Order.hbm.xml(3)創建與設計訂單中的商品條目實體類文件OrderItem.java(4)創建與設計訂單中的商品條目實體對象的映射文件OrderItem.hbm.xml(5)在配置文件struts-default.x

溫馨提示

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

評論

0/150

提交評論