基于JEE的網(wǎng)絡(luò)商城_第1頁
基于JEE的網(wǎng)絡(luò)商城_第2頁
基于JEE的網(wǎng)絡(luò)商城_第3頁
基于JEE的網(wǎng)絡(luò)商城_第4頁
基于JEE的網(wǎng)絡(luò)商城_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 J2EE課程設(shè)計 實驗題目 基于J2EE的網(wǎng)絡(luò)商城 專業(yè)班級 12軟件工程(1)班 姓 名 薄文正 學(xué) 號 2012110606 指導(dǎo)教師 張锏老師 目錄第一章 緒 論11.1背景11.2開發(fā)工具與技術(shù)11.3參考文獻(xiàn)2第二章 需求分析32.1 項目描述32.2 功能分析3第三章 數(shù)據(jù)庫設(shè)計43.1 數(shù)據(jù)庫設(shè)計平臺43.2 數(shù)據(jù)庫ER模型圖43.3 數(shù)據(jù)庫設(shè)計及內(nèi)容簡介6第四章 項目環(huán)境搭建74.1 配置Struts274.2配置Hibernate84.3 配置Spring94.4 配置web.xml10第五章 功能概要設(shè)計115.1 登陸界面115.2 主界面115.3 商品預(yù)覽115.4

2、 購物車模塊125.5訂單模塊12第六章 課程設(shè)計小結(jié)12第一章 緒 論1.1背景近年來,隨著 Internet 的迅速崛起,互聯(lián)網(wǎng)用戶的爆炸式增長以及互聯(lián)網(wǎng)對傳統(tǒng)行業(yè)的沖擊讓其成為了人們快速獲取、發(fā)布和傳遞信息的重要渠道,于是電子商務(wù)逐漸流行起來,越來越多的商家在網(wǎng)上建起網(wǎng)上商城,向消費者展示出一種全新的購物理念,同時也有越來越多的網(wǎng)友加入到了網(wǎng)上購物的行列,阿里巴巴旗下的淘寶的成功展現(xiàn)了電子商務(wù)網(wǎng)站強(qiáng)大的生命力和電子商務(wù)網(wǎng)站更加光明的未來。筆者充分利用 Internet 這個平臺,實現(xiàn)一種全新的購物方式網(wǎng)上購物,其目的是方便廣大網(wǎng)友購物,讓網(wǎng)友足不出戶就可以逛商城買商品,為此構(gòu)建網(wǎng)絡(luò)商城系

3、統(tǒng)。1.2開發(fā)環(huán)境主要開發(fā)工具為:MyEclipse10、Mysql、Tomcat6.0。主要技術(shù)包括:J2EE輕量級框架SSH。S2SH集成框架是Struts、Spring 和Hibernate 三種技術(shù)的有機(jī)融合, 是目前應(yīng)用最廣泛的Java EE 架構(gòu)。在S2SH集成框架中,Struts 的作用是提供MVC 模型, 將界面、業(yè)務(wù)邏輯和數(shù)據(jù)分離, 并提供一個高可擴(kuò)展的架構(gòu)。Spring作為核心,向上整合MVC框架,向下整合ORM框架,使用Spring的IoC容器來管理各組件之間之間的依賴關(guān)系,Spring的聲明事務(wù)將負(fù)責(zé)邏輯層組件的事務(wù)管理。而Hibernate 提供了一個抽象的數(shù)據(jù)服務(wù)視

4、圖,將用戶對數(shù)據(jù)庫的訪問進(jìn)行高度抽象。 Struts 是目前創(chuàng)建Web 應(yīng)用最常用的表現(xiàn)層MVC 框架實現(xiàn),是Jakarta Apache 的一個開源項目。基于Model2 的Struts 框架利用控制器和定制標(biāo)簽庫將應(yīng)用中的模型和視圖分離,達(dá)到了層間松散耦合的效果,同時提高系統(tǒng)的靈活性、重用性和維護(hù)性。作為開源項目,Struts 經(jīng)受了大量實踐的檢驗,功能越來越強(qiáng)大,體系也日臻完善,并且對其他技術(shù)和框架顯示出良好的融合性。1.Model部分由ActionForm和JavaBean組成,其中ActionForm用于封裝用戶的請求參數(shù),封裝成ActionForm對象,該對象被ActionServ

5、let轉(zhuǎn)發(fā)給Action,Action根據(jù)ActionForm里面的請求參數(shù)處理用戶的請求。JavaBean則封裝了底層的業(yè)務(wù)邏輯,包括數(shù)據(jù)庫訪問等。2.View部分該部分采用JSP實現(xiàn)。3.Controller組件Controller組件有兩個部分組成系統(tǒng)核心控制器,業(yè)務(wù)邏輯控制器。系統(tǒng)核心控制器,對應(yīng)上圖的ActionServlet。該控制器由Struts框架提供,繼承HttpServlet類,因此可以配置成標(biāo)注的Servlet。該控制器負(fù)責(zé)攔截所有的HTTP請求,然后根據(jù)用戶請求決定是否要轉(zhuǎn)給業(yè)務(wù)邏輯控制器。業(yè)務(wù)邏輯控制器,負(fù)責(zé)處理用戶請求,本身不具備處理能力,而是調(diào)用Model來完成處

6、理。對應(yīng)Action部分。Spring 由Rod Johnson 創(chuàng)建,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring 使用基本的JavaBean 來完成以前只可能由EJB 完成的事情。然而,Spring 的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java 應(yīng)用都可以從Spring 中受益。簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。1.輕量從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Sprin

7、g是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類。2.控制反轉(zhuǎn)Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進(jìn)來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。3.面向切面Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實現(xiàn)它們應(yīng)該做的完成業(yè)務(wù)邏輯僅此而已。它們并

8、不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點,例如日志或事務(wù)支持。4.容器Spring包含并管理應(yīng)用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。5.框架Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等)

9、,將應(yīng)用邏輯的開發(fā)留給了你。Hibernate 是一個開放源代碼的對象關(guān)系映射框架,它對JDBC 進(jìn)行了非常輕量級的對象封裝,使得Java 程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate 可以應(yīng)用在任何使用JDBC 的場合, 既可以在Java 的客戶端程序使用, 也可以在Servlet/JSP 的Web 應(yīng)用中使用。Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下

10、面對這五個核心接口分別加以介紹。1.Session接口Session接口負(fù)責(zé)執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個術(shù)語時,其實指的是Hibernate中的session,而以后會將HttpSesion對象稱為用戶session。2.SessionFactory接口SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建Session對象

11、。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當(dāng)需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory。3.Configuration接口Configuration接口負(fù)責(zé)配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對象。4.Transaction接口Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)

12、人員也可以設(shè)計編寫自己的底層事務(wù)處理代碼。5.Query和Criteria接口Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達(dá)方式。1.3參考文獻(xiàn)1李剛.輕量級JavaEE企業(yè)應(yīng)用實戰(zhàn).北京: 電子工業(yè)出版社,2009.92孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計開發(fā).北京: 電子工業(yè)出版社,2004 3 Dava Crane, Eric Pascarelo,Darren James 著.AJAX實戰(zhàn).人民郵電出版社,2006.4 4 鄧子云, 張賜.Jsp網(wǎng)絡(luò)編程從基礎(chǔ)到實戰(zhàn).北京:電子工業(yè)出版社,2005 5 郭志學(xué).易學(xué)設(shè)

13、計模式.北京:人民郵電出版社,2009.46蔣衛(wèi)祥.J2EE案例開發(fā)教程.北京: 化學(xué)工業(yè)出版社,2013.5第二章 需求分析2.1 項目描述網(wǎng)絡(luò)商城系統(tǒng)是基于 B/S 模式的電子商務(wù)網(wǎng)站,用于滿足不同人群的購物需求,筆者通過對現(xiàn)有的商務(wù)網(wǎng)站的考察和研究,從經(jīng)營者和消費者的角度出發(fā),以高效管理、滿足消費者需求為原則,要求本系統(tǒng)滿足以下要求:統(tǒng)一友好的操作界面,具有良好的用戶體驗;商品分類詳盡,可按不同類別查看商品信息;推薦產(chǎn)品、人氣商品以及熱銷產(chǎn)品的展示;會員信息的注冊及驗證;用戶可通過關(guān)鍵字搜索指定的產(chǎn)品信息;用戶可通過購物車一次購買多件商品;實現(xiàn)收銀臺的功能,用戶選擇商品后可以在線提交訂單

14、;提供簡單的安全模型,用戶必須先登錄,才允許購買商品;用戶可查看自己的訂單信息;設(shè)計網(wǎng)站后臺,管理網(wǎng)站的各項基本數(shù)據(jù);系統(tǒng)運(yùn)行安全穩(wěn)定、響應(yīng)及時。2.2 功能分析網(wǎng)絡(luò)商城系統(tǒng)分為前臺和后臺兩個部分的操作。前臺主要有兩大功能,分別是展示產(chǎn)品信息的各種瀏覽操作和會員用戶購買商品的操作,當(dāng)會員成功登錄后,就可以使用購物車進(jìn)行網(wǎng)上購物。網(wǎng)絡(luò)商城前臺功能結(jié)構(gòu)圖如圖1 所示。圖1 網(wǎng)絡(luò)商城系統(tǒng)前臺功能結(jié)構(gòu)圖后臺的主要功能是當(dāng)管理員成功登錄后臺后,用戶可以對網(wǎng)站的基本信息進(jìn)行維護(hù)。例如,管理員可以對商品的類別進(jìn)行管理,如可以刪除和添加產(chǎn)品的類別;如可以對商品信息進(jìn)行維護(hù),如可以添加、刪除、修改和查詢產(chǎn)品信息

15、,并上傳產(chǎn)品的相關(guān)圖片;如可以對會員的訂單進(jìn)行集中管理,管理員可以對訂單信息進(jìn)行自定義的條件查詢并修改制定的產(chǎn)品信息。網(wǎng)絡(luò)商城后臺功能結(jié)構(gòu)圖如圖2 所示。圖2 網(wǎng)絡(luò)商城系統(tǒng)后臺功能結(jié)構(gòu)圖第三章 數(shù)據(jù)庫設(shè)計3.1 數(shù)據(jù)庫設(shè)計平臺 MySQL數(shù)據(jù)庫3.2 數(shù)據(jù)庫ER模型圖 會員信息表 tb_customer 的 E-R 圖,如下圖 所示。訂單信息表 tb_order 的 E-R 圖,如下圖 所示。訂單條目信息表 tb_orderitem 的 E-R 圖,如下圖 所示。商品信息表 tb_productinfo 的 E-R 圖,如下圖 所示。商品類別信息表 tb_productcategory 的 E

16、-R 圖,如下圖 所示。3.3 數(shù)據(jù)庫設(shè)計及內(nèi)容簡介本系統(tǒng)采用 MySQL 數(shù)據(jù)庫,創(chuàng)建的數(shù)據(jù)庫名稱為 db_database19,數(shù)據(jù)庫 db_database19 中包含 7張數(shù)據(jù)表。所有數(shù)據(jù)表的定義如下:tb_customer(會員信息表)用于存儲會員的注冊信息,該表的結(jié)構(gòu)如下表 所示。tb_customer 信息表的表結(jié)構(gòu)tb_order(訂單信息表)用于存儲會員的訂單信息,該表的結(jié)構(gòu)如表 14.2 所示。tb_order 信息表的表結(jié)構(gòu)tb_orderitem(訂單條目信息表)用于存儲會員訂單的條目信息,該表的結(jié)構(gòu)如下表 所示。tb_orderitem 信息表的表結(jié)構(gòu)tb_produ

17、ctinfo(商品信息表)用于存儲商品信息,該表的結(jié)構(gòu)如下表 所示。tb_productinfo 信息表的表結(jié)構(gòu)tb_productcategory(商品類別信息表)用于存儲商品的類別信息,該表的結(jié)構(gòu)如下表 所示。tb_productcategory 信息表的表結(jié)構(gòu)tb_user(管理員信息表)用于存儲網(wǎng)站后臺管理員信息,該表的結(jié)構(gòu)如下表 所示。tb_productcategory 信息表的表結(jié)構(gòu)tb_uploadfile(上傳文件信息表)用于存儲上傳文件的路徑信息,該表的結(jié)構(gòu)如下表 所示。tb_uploadfile 信息表的表結(jié)構(gòu)第四章 項目環(huán)境搭建4.1配置Struts2struts.xm

18、l 文件是 Struts 2 重要的配置文件,通過對該文件的配置實現(xiàn)程序的 Action 與用戶請求之間的映射、視圖映射等重要的配置信息。在項目的 ClassPath 下創(chuàng)建 struts.xml 文件,其配置代碼如下:<struts><!- 前后臺公共視圖的映射 -><include file="com/lyq/action/struts-default.xml" /><!- 后臺管理的Struts2配置文件 -><include file="com/lyq/action/struts-admin.xml&q

19、uot; /><!- 前臺臺管理的Struts2配置文件 -><include file="com/lyq/action/struts-front.xml" /></struts>4.2配置HibernateHibernate 配置文件主要用于配置數(shù)據(jù)庫連接和 Hibernate 運(yùn)行時所需的各種屬性,這個配置文件位于應(yīng)用程序或 Web 程序的類文件夾 classes 中。Hibernate 配置文件支持兩種形式,一種是 Xml 格式的配置文件,另一種是 Java 屬性文件格式的配置文件,采用“鍵=值”的形式。建議采用 Xml 格式

20、的配置文件。在 Hibernate 的配置文件中配置連接的數(shù)據(jù)庫的連接信息,數(shù)據(jù)庫方言以及打印 SQL 語句等屬性,其關(guān)鍵代碼如下:<hibernate-configuration><session-factory><!- 數(shù)據(jù)庫方言 -><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!- 數(shù)據(jù)庫驅(qū)動 -><property name="hibernate.connecti

21、on.driver_class">com.mysql.jdbc.Driver</property><!- 數(shù)據(jù)庫連接信息 -><property name="hibernate.connection.url">jdbc:mysql:/localhost:3306/db_database24</property><property name="hibernate.connection.username">root</property><property name=

22、"hibernate.connection.password">111111</property><!- 打印SQL語句 -><property name="hibernate.show_sql">true</property><!- 不格式化SQL語句 -><property name="hibernate.format_sql">false</property><!- 為Session指定一個自定義策略 -><propert

23、y name="hibernate.current_session_context_class">thread</property><!- C3P0 JDBC連接池 -><property name="hibernate.c3p0.max_size">20</property><property name="hibernate.c3p0.min_size">5</property><property name="hibernate.c3p0.

24、timeout">120</property><property name="hibernate.c3p0.max_statements">100</property><property name="hibernate.c3p0.idle_test_period">120</property><property name="hibernate.c3p0.acquire_increment">2</property><propert

25、y name="hibernate.c3p0.validate">true</property><!- 映射文件 -><mapping resource="com/lyq/model/user/User.hbm.xml"/><mapping resource="com/lyq/model/user/Customer.hbm.xml"/><mapping resource="com/lyq/model/product/ProductInfo.hbm.xml"

26、/><mapping resource="com/lyq/model/product/ProductCategory.hbm.xml"/><mapping resource="com/lyq/model/product/UploadFile.hbm.xml"/><mapping resource="com/lyq/model/order/Order.hbm.xml"/><mapping resource="com/lyq/model/order/OrderItem.hbm.xm

27、l"/></session-factory></hibernate-configuration>4.3 配置Spring利用 Spring 加載 Hibernate 配置文件以及 Session 管理類,在配置 Spring 的時候,只需配置 Spring 的核心文applicationContext-common.xml,其代碼如下:<!- 配置sessionFactory -><bean id="sessionFactory"class="org.springframework.orm.hibernat

28、e3.LocalSessionFactoryBean"><property name="configLocation"><value>classpath:hibernate.cfg.xml</value></property></bean><!- 配置事務(wù)管理器 -><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionMan

29、ager"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><tx:annotation-driven transaction-manager="transactionManager" /><!- 定義Hibernate模板對象 -><bean id="hibernateTemplate" class="

30、org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"/></bean></beans>4.4 配置web.xml任何 MVC 框架都需要與 Servlet 應(yīng)用整合, Servlet 則必須在 web.xml 文件中進(jìn)行配置。web.xml的配置文件是項目的基本配置文件,通過該文件設(shè)置實例化 Spring 容器、過濾器、配置 Struts 2 及

31、設(shè)置程序默認(rèn)執(zhí)行的操作,其關(guān)鍵代碼如下:<!- 對Spring容器進(jìn)行實例化 -><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext-*.xml</param-value>

溫馨提示

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

評論

0/150

提交評論