《電子商務(wù)網(wǎng)站》java web課程設(shè)計資料報告材料
word曉莊學(xué)院電子商務(wù)開發(fā)與設(shè)計課程設(shè)計報告題 目:B-C電子商城系統(tǒng)的設(shè)計與實(shí)現(xiàn)姓 名: 國濤學(xué) 號: 10130211班 級: 10網(wǎng)絡(luò)工程指導(dǎo)教師: 王潔完成時間2013/6/25 成 績:數(shù)學(xué)與信息技術(shù)學(xué)院2013年6月16 / 19摘要隨著網(wǎng)絡(luò)的普與和其技術(shù)的日趨成熟,在世界圍,作為一種新的經(jīng)濟(jì)形態(tài),電子商務(wù)將在日常生活中扮演越來越重要的角色,在采購供應(yīng)鏈條所構(gòu)成的經(jīng)濟(jì)活動中,電子商務(wù)將不僅僅承擔(dān)輔助渠道的角色,更將成為一種獨(dú)立的產(chǎn)業(yè),在整個經(jīng)濟(jì)結(jié)構(gòu)中,占據(jù)越來越重要的地位。網(wǎng)上購物也逐漸成為一種趨勢,這對電子商場的開展起到了很在的推進(jìn)作用。本文主要通過對電子商城的應(yīng)用環(huán)境和主要實(shí)現(xiàn)功能進(jìn)展分析,表示了本電子商城的設(shè)計與實(shí)現(xiàn)過程,并對其總結(jié)。項(xiàng)目主要應(yīng)分層架構(gòu)思想,通過J2EE的struts2框架和hibernate框架相結(jié)合來實(shí)現(xiàn)。在設(shè)計種過中全方位的應(yīng)用軟件工程的開發(fā)思想,因?yàn)橄到y(tǒng)是基于B-C結(jié)構(gòu),所以適應(yīng)圍廣闊。關(guān)鍵詞:網(wǎng)上購物,框架,struts2,hibernateABSTRACTWith the popularity of the network and its technology matures, in the world, as a new economic form, e-merce in daily life will play an increasingly important role in procurement - supply chain posed of economic activity, e-merce will not only assume the role of auxiliary channels, but will bee an independent industry in the whole economic structure, occupy an increasingly important position. Online shopping is being a trend, which is the development of electronic mall played a role in the promotion. This paper mainly through the electronic mall application environment and the main achievement of functional analysis describes the electronic mall design and implementation process, and its summary. Project ideas should mainly be layered architecture, through the J2EE framework and hibernate framework struts2 bined to achieve. Planted in the design of a full range of applications in software engineering development thinking, because the system is based on the BC structure, adapt to a broad range.Key words:Online shopping, frames, struts2, hibernate目錄1 引言11.1 系統(tǒng)開發(fā)背景11.2 系統(tǒng)開發(fā)的目的和意義11.3 完成的主要工作12 需求分析和總體設(shè)計1需求分析與設(shè)計思路1需求分析和設(shè)計思路1設(shè)計方案與技術(shù)選擇22.2 系統(tǒng)結(jié)構(gòu)圖42.3 系統(tǒng)功能分析53 詳細(xì)設(shè)計53.1 數(shù)據(jù)庫設(shè)計53.2 特價商品模塊實(shí)現(xiàn)73.2.1 模塊功能實(shí)現(xiàn)和關(guān)鍵代碼說明73.2.2 分層結(jié)構(gòu)和文件調(diào)用關(guān)系83.3 暢銷商品塊實(shí)現(xiàn)93.3.1 模塊功能實(shí)現(xiàn)和關(guān)鍵代碼說明93.3.2 分層結(jié)構(gòu)和文件調(diào)用關(guān)系103.4 查看訂單模塊實(shí)現(xiàn)113.4.1 模塊功能實(shí)現(xiàn)和關(guān)鍵代碼說明113.4.2 分層結(jié)構(gòu)和文件調(diào)用關(guān)系114 系統(tǒng)運(yùn)行結(jié)果135 課程設(shè)計總結(jié)16誠欣網(wǎng)上商城的設(shè)計與實(shí)現(xiàn)1 引言 系統(tǒng)開發(fā)背景隨著計算機(jī)的高度普與和網(wǎng)絡(luò)技術(shù)的飛速開展,網(wǎng)上購物已成為新興的購物方式,網(wǎng)購已經(jīng)正在改變著我們傳統(tǒng)的消費(fèi)行為,網(wǎng)上購物迅猛開展,導(dǎo)致電子商城大量的涌現(xiàn),而電子商城的出現(xiàn)不僅改變了人們傳統(tǒng)的購物方式,也逐漸的影響著人們的消費(fèi)觀,一個好的電子商城不僅能給客戶帶來方便,更能給企業(yè)帶來巨大的財富。 1.2 系統(tǒng)開發(fā)的目的和意義隨著信息化技術(shù)在生活中的應(yīng)用越來越廣泛,網(wǎng)上購物也逐漸成為人們的一種生活方式。本系統(tǒng)正是基于這樣一種環(huán)境下應(yīng)運(yùn)而生。本電子商城為前臺局部,前臺主要實(shí)現(xiàn)會員的網(wǎng)上購物業(yè)務(wù)流程、用戶注冊、用戶資料修改。本商城主要利用J2EE的框架技術(shù)進(jìn)展開發(fā),有很強(qiáng)的安全性、可靠性、可擴(kuò)展性?;跁r間原因,只實(shí)現(xiàn)了前臺功能,就整體功能而言,根本能滿足根本的網(wǎng)上購物需求,相信一定能讓用戶感到便捷、快速,讓企業(yè)管理、維護(hù)更簡單。1.3 完成的主要工作實(shí)現(xiàn)了特價和暢銷模塊、查看訂單模塊、會員資料修改模塊。2 需求分析和總體設(shè)計需求分析與設(shè)計思路需求分析和設(shè)計思路分析的特點(diǎn),對所完成模塊的功能需求和設(shè)計思路進(jìn)展總體介紹,并對模塊的包結(jié)構(gòu)和文件結(jié)構(gòu)進(jìn)展說明。在互聯(lián)網(wǎng)日益流行的今天,網(wǎng)絡(luò)已經(jīng)變得越來越重要,而在網(wǎng)絡(luò)這個大家庭里,網(wǎng)上購物如此是一個熱點(diǎn),網(wǎng)上購物商城的出現(xiàn),給消費(fèi)者的消費(fèi)觀念帶來了重要的變化。功能強(qiáng)大的購物就成了大家一致的選擇。根據(jù)需求分析本系統(tǒng)主要包括以下功能模塊:登錄模塊、商品顯示模塊、購物車模塊、訂單管理模塊、賬戶注冊和修改模塊。商品顯示模塊:特價、暢銷模塊:在主頁面顯示特價商品和暢銷商品。訂單管理模塊:訂單詳細(xì)信息模塊:顯示已保存的訂單的詳細(xì)信息。賬戶注冊和修改模塊:創(chuàng)建新登錄用戶,修改已創(chuàng)建的用戶的詳細(xì)信息。系統(tǒng)包結(jié)構(gòu)包名作用定義系統(tǒng)的POJO類與其映射文件,這些類與數(shù)據(jù)表一一對應(yīng),可使用Hibernate反向工程自動生成。定義各個類對于數(shù)據(jù)庫增、刪、改、查操作的接口。定義各接口的實(shí)現(xiàn)類設(shè)計方案與技術(shù)選擇介紹系統(tǒng)中采用的主要方案和技術(shù),重點(diǎn)介紹JSP技術(shù)、JDBC技術(shù)、JavaBean技術(shù)、struts框架、Hibernate框架、MVC模式等。系統(tǒng)開發(fā)時主要使用的是MyEclipse軟件,并且使用Java語言進(jìn)展編程。運(yùn)用了Struts2框架以與hibernate框架進(jìn)展分層。用MySQL進(jìn)展數(shù)據(jù)庫的連接。還有采用了Tomcat和JDK作為輔助的工具。1、jsp技術(shù)JSPJava Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計的顯示別離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 JSP(JavaServer Pages)是一種動態(tài)頁面技術(shù),它的主要目的是將表示邏輯從Servlet中別離出來。2、jdbc技術(shù)JDBCJava Data Base Connectivity,java數(shù)據(jù)庫連接是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應(yīng)用程序,同時,JDBC也是個商標(biāo)名。3、JavaBean技術(shù)JavaBean是Sun公司為了進(jìn)入因特網(wǎng)、企業(yè)網(wǎng)以與萬維網(wǎng)上進(jìn)展分布式計算的組件結(jié)構(gòu)入口。按照Sun公司的定義,JavaBean是一個可重復(fù)使用的軟件部件。JavaBean體系結(jié)構(gòu)是第一個全面地基于組件的標(biāo)準(zhǔn)模型之一,該組件是Java類,這些類遵循一個接口格式,以便于使方法命名、底層行為以與繼承或?qū)崿F(xiàn)的行為能夠把類看做標(biāo)準(zhǔn)的JavaBean組件的方式進(jìn)展構(gòu)造7。在Java模型中,通過JavaBean可以無限擴(kuò)大Java程序的功能,通過JavaBean的組合可以快速生成新的應(yīng)用程序。JavaBean具有以下特點(diǎn):a可以實(shí)現(xiàn)代碼的重復(fù)利用。b易維護(hù)性、易使用性、易編寫性。c可以在Java的任何平臺上工作,不需要重新編譯。d可以在部網(wǎng)或者網(wǎng)絡(luò)之間進(jìn)展傳輸。e可以以其它部件的模式進(jìn)展工作。JavaBean在JSP程序中常用來封裝事務(wù)邏輯、數(shù)據(jù)庫操作等,可以很好的實(shí)現(xiàn)業(yè)務(wù)邏輯和前臺程序的別離,使得系統(tǒng)具有更好的健壯性和靈活性。4、struts框架Struts是Apache軟件組織提供的一項(xiàng)開放源碼項(xiàng)目,它為Java Web應(yīng)用提供了模型-視圖-控制器Model-View- Controller,簡稱MVC框架,尤其適用于開發(fā)大型可擴(kuò)展的Web應(yīng)用。Struts這個名字來源于在建筑和舊式飛機(jī)中使用的支持金屬架。 Struts為Web 應(yīng)用提供了一個通用的框架,使得開發(fā)人員可以把精力集中在如何解決實(shí)際業(yè)務(wù)問題上。此外, Struts 框架提供了許多供擴(kuò)展和定制的地方,應(yīng)用程序可以方便的擴(kuò)展框架,來更好的適應(yīng)用戶的實(shí)際需求。5、Hibernate框架Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)展了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用E的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。6、MVC模式MVC是 模型(Model),視圖(View)和控制Controller)的縮寫,其目的實(shí)現(xiàn)Web系統(tǒng)的職能分工。其中Model層實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通??梢杂肑avaBean或E來實(shí)現(xiàn); View層用于與用戶的交互,通常用JSP來實(shí)現(xiàn); Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。2.2 系統(tǒng)結(jié)構(gòu)圖電子商城前臺新品上市模塊特價商品模塊暢銷商品模塊購物車模塊查看訂單模塊用戶注冊模塊資料修改模塊查看詳單模塊用戶登錄模塊收銀臺結(jié)賬模塊圖2.1 系統(tǒng)整體框圖2.3 系統(tǒng)功能分析用戶登錄模塊:實(shí)現(xiàn)用戶登錄新品上市模塊:在首頁框架中顯示新品列表特價商品模塊:在首頁框架中顯示特價列表暢銷商品模塊:在首頁框架中顯示暢銷列表購物車模塊:顯示已點(diǎn)擊購置但沒結(jié)賬的商品到收銀臺結(jié)賬模塊:直接保存當(dāng)前訂單查看訂單模塊:顯示當(dāng)前訂單列表查看詳單模塊:點(diǎn)擊訂單號顯示詳單信息用戶注冊模塊:實(shí)現(xiàn)用戶注冊資料修改模塊:實(shí)現(xiàn)修改當(dāng)前用戶資料3 詳細(xì)設(shè)計3.1 數(shù)據(jù)庫設(shè)計member表會員表supertype表(商品大分類表)subtype表商品小分類表goods表商品信息表order表訂單信息表manager表管理員信息表3.2 特價商品模塊實(shí)現(xiàn)3.2.1 模塊功能實(shí)現(xiàn)和關(guān)鍵代碼說明Begin 返回GoodsAction查詢數(shù)據(jù)庫end圖3.1 特價商品模塊流程圖代碼如下:public String getSaleGoods() throws ExceptionGoodsDaoImpl gdao=new GoodsDaoImpl();ArrayList saleGoods=(ArrayList)gdao.findSaleGoods();Map request=(Map)ActionContext.getContext().get("request");request.put("saleGoods", saleGoods);return "success"public List findSaleGoods() Session session=null;ArrayList al=new ArrayList();try session=HibernateSessionFactory.getSession();Query query=session.createQuery("from Goods where sale=1");al=(ArrayList)query.list(); catch (HibernateException e) / TODO Auto-generated catch blocke.printStackTrace();finallysession.close();return al;<actionname="saleGoodsAction"class="org.action.GoodsAction" method="getSaleGoods"> <result name="success">saleGoods.jsp</result> </action>3.2.2 分層結(jié)構(gòu)和文件調(diào)用關(guān)系先由JSP頁面發(fā)出請求調(diào)用org.action包下saleGoodsAction,調(diào)用里面的 getSaleGoods方法,然后調(diào)用org.daoimpl包里的findSaleGoods方法,查詢數(shù)據(jù)庫,查到特價商品的列表,保存進(jìn)requese對象的saleGoods變量里,然后通過調(diào)用取出其中的值,顯示到主頁面。3.3 暢銷商品塊實(shí)現(xiàn)3.3.1 模塊功能實(shí)現(xiàn)和關(guān)鍵代碼說明Begin 返回GoodsAction查詢數(shù)據(jù)庫end圖3.1 暢銷商品模塊流程圖代碼如下:public String getHitGoods() throws ExceptionGoodsDaoImpl gdao=new GoodsDaoImpl();ArrayList hitGoods=(ArrayList)gdao.findHitGoods();Map request=(Map)ActionContext.getContext().get("request");request.put("hitGoods", hitGoods);return "success"public List findHitGoods() Session session=null;ArrayList al=new ArrayList();try session=HibernateSessionFactory.getSession();Query query=session.createQuery("from Goods order by id desc");al=(ArrayList)query.list(); catch (HibernateException e) / TODO Auto-generated catch blocke.printStackTrace();finallysession.close();return al;<action name="hitGoodsAction" class="org.action.GoodsAction" method="getHitGoods"> <result name="success">hitGoods.jsp</result> </action>3.3.2 分層結(jié)構(gòu)和文件調(diào)用關(guān)系先由JSP頁面發(fā)出請求調(diào)用org.action包下hitGoodsAction,調(diào)用里面的 getHitGoods方法,然后調(diào)用org.daoimpl包里的findHitGoods方法,查詢數(shù)據(jù)庫,查到特價商品的列表,保存進(jìn)requese對象的HitGoods變量里,然后通過調(diào)用取出其中的值,顯示到主頁面。3.4 查看訂單模塊實(shí)現(xiàn)3.4.1 模塊功能實(shí)現(xiàn)和關(guān)鍵代碼說明BeginfindOederById方法 返回OrderAction查詢數(shù)據(jù)庫end圖3.1 查看訂單模塊流程圖3.4.2 分層結(jié)構(gòu)和文件調(diào)用關(guān)系findId方法,findId調(diào)用DaoImpl包里的findOrderById,把得到的結(jié)果,保存到session里取名order1通過orderdetail里取變量得到這個值,顯示到主頁面。代碼如下:public String findId() throws ExceptionOrderDaoImpl odao=new OrderDaoImpl();List<Orderdetail> list2=odao.findOrderById(onumber);Ordertable order1=odao.findOrder(onumber);Map request=(Map)ActionContext.getContext().get("request");request.put("orderlist2", list2);request.put("order1", order1);return "success"public List<Orderdetail> findOrderById(long id) Session session=null;List<Orderdetail> g=null;try session=HibernateSessionFactory.getSession();Query query=session.createQuery("from Orderdetail where orderid=?");query.setLong(0,id);/設(shè)置第一個問號g=(List<Orderdetail>)query.list(); catch (HibernateException e) / TODO Auto-generated catch blocke.printStackTrace();finallysession.close();return g;<action name="findIdOrderAction" class="org.action.OrderAction" method="findId"> <result name="success">order_detail.jsp</result></action>4 系統(tǒng)運(yùn)行結(jié)果主頁面,默認(rèn)顯示新品上市頁面:特價商品頁面:暢銷商品頁面:按倒序排列查看訂單頁面:5 課程設(shè)計總結(jié)通過本次課程設(shè)計,使我更加深刻的了解了這么課程的重要性,由于我們知識有限,這次開發(fā)的也存在著很多的不足,在這次的課程設(shè)計中不僅檢驗(yàn)了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情在此感我們的教師.,教師您嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;教師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪;這次設(shè)計的細(xì)節(jié)和每個數(shù)據(jù),都離不開教師您的細(xì)心指導(dǎo)。而您開朗的個性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計。參考文獻(xiàn)1孟彩霞.計算機(jī)軟件根底M.:電子科技大學(xué),2003.2繆勇,亞輝,新峰高立輝.JSP網(wǎng)絡(luò)開發(fā)逐步深入M.:清華大學(xué),2007.