本科畢業(yè)論文web校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  安陽師范學(xué)院</b></p><p><b>  本科學(xué)生畢業(yè)論文</b></p><p>  Web校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)</p><p>  作 者 周 偉 </p><p>  院 (系) 人文管

2、理學(xué)院 </p><p>  專 業(yè) 信息管理與信息系統(tǒng) </p><p>  年 級 2007 級 </p><p>  學(xué) 號 074952024 </p><p>  指導(dǎo)教師 田喜平

3、 </p><p>  論文成績 </p><p>  日 期 2009 年 6 月 </p><p><b>  目 錄</b></p><p><b>  1引言1</b></p&

4、gt;<p>  1.1 開發(fā)背景1</p><p>  1.2 開發(fā)意義1</p><p>  1.3 可行性研究2</p><p><b>  2系統(tǒng)構(gòu)架分析2</b></p><p>  2.1 JAVA語言簡潔2</p><p>  2.2 JAVAEE技術(shù)

5、介紹2</p><p>  2.3 SERVLET/Jsp技術(shù)3</p><p>  2.4 JAVABeans技術(shù)3</p><p>  2.5 開發(fā)環(huán)境及環(huán)境配置4</p><p>  2.5.1 系統(tǒng)環(huán)境及Java/JSP環(huán)境配置4</p><p>  2.5.2 數(shù)據(jù)庫開發(fā)工具選擇及配置4

6、</p><p>  2.5.3 關(guān)系數(shù)據(jù)庫管理系統(tǒng)5</p><p>  2.5.4 對性能的一般規(guī)定5</p><p>  2.5.5 其他專門要求5</p><p>  2.5.6 對安全性的要求5</p><p>  2.5.7 運(yùn)行環(huán)境規(guī)定5</p><p><

7、;b>  3系統(tǒng)設(shè)計6</b></p><p>  3.1 系統(tǒng)總體設(shè)計6</p><p>  3.2 概要設(shè)計6</p><p>  3.2.1 系統(tǒng)功能模塊設(shè)計6</p><p>  3.2.2 系統(tǒng)結(jié)構(gòu)圖7</p><p>  3.2.3 數(shù)據(jù)流圖7</p>

8、<p>  3.3 數(shù)據(jù)庫設(shè)計8</p><p>  3.3.1 數(shù)據(jù)庫需求分析8</p><p>  3.3.2 數(shù)據(jù)庫概要設(shè)計8</p><p>  3.3.3 數(shù)據(jù)庫詳細(xì)設(shè)計9</p><p><b>  4 系統(tǒng)實現(xiàn)11</b></p><p>  4.1 程序設(shè)

9、計11</p><p>  4.2 系統(tǒng)的測試21</p><p>  4.2.1 測試的目的和作用21</p><p>  4.2.2 測試原則21</p><p>  4.2.3 測試方法和步驟21</p><p><b>  總 結(jié)22</b></p><p&

10、gt;  參 考 文 獻(xiàn)24</p><p>  Web校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b>  周偉</b></p><p> ?。ò碴枎煼秾W(xué)院 人文管理學(xué)院, 河南 安陽 455002)</p><p>  摘 要:隨著信息技術(shù)的迅速發(fā)展與網(wǎng)絡(luò)教學(xué)的普及,網(wǎng)上作業(yè)提交也成為現(xiàn)代化教學(xué)不可或缺的一部

11、分。在此背景下,用JavaEE開發(fā)了網(wǎng)上作業(yè)提交系統(tǒng)。本論文首先考慮了學(xué)生網(wǎng)上作業(yè)提交和教師網(wǎng)上作業(yè)批改的實際要求,分析了此系統(tǒng)應(yīng)該具有的功能;其次對系統(tǒng)的主要功能模塊進(jìn)行了詳細(xì)地描述,其中主要包括教師布置作業(yè),學(xué)生提交作業(yè),教師批改作業(yè)和管理員設(shè)置。最后結(jié)合系統(tǒng)開發(fā)階段和調(diào)試階段發(fā)現(xiàn)的問題,提出了系統(tǒng)需要完善的地方,總結(jié)了開發(fā)此系統(tǒng)所取得的經(jīng)驗和體會。</p><p>  關(guān)鍵詞:Web二手交易系統(tǒng);javaE

12、E;B/S結(jié)構(gòu);數(shù)據(jù)庫</p><p><b>  1 引言</b></p><p><b>  1.1 開發(fā)背景</b></p><p>  近些年來互聯(lián)網(wǎng)迅速發(fā)展,使得不同地點的人們在任何時間都可以輕松獲取自己需要的信息,同時互聯(lián)網(wǎng)的出現(xiàn)極大地推動了教育事業(yè)的發(fā)展,特別是javaEE技術(shù),以其交互性、動態(tài)性的特點,大大

13、擴(kuò)展了互聯(lián)網(wǎng)的應(yīng)用范圍,互聯(lián)網(wǎng)的廣泛應(yīng)用也深刻的影響了教育教學(xué)領(lǐng)域。</p><p><b>  1.2 開發(fā)意義 </b></p><p>  隨著全世界互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,各種基于互聯(lián)網(wǎng)技術(shù)的網(wǎng)絡(luò)應(yīng)用不斷涌現(xiàn),網(wǎng)絡(luò)技術(shù)正在不斷的深入人們的生活。人們從Internet上獲取信息、享受生活、交流感情、網(wǎng)上工作等。Internet正在迅速改變著人們的生活方式。<

14、/p><p>  在當(dāng)前社會上,許多的各種類型的電子商務(wù)類網(wǎng)站紛紛建立,可以很大程度上的解決人們信息資源的閉塞以及地域上的限制。作為大學(xué)校園,伴隨著學(xué)生的購買能力的提高和每年的升學(xué)和畢業(yè),也存在的許多各種類型的二手商品,由于信息交流的落后,很多只限于于校園公告欄或者請人代為宣傳的方式進(jìn)行交易。這種方式有很多局限性和偶然性,并不能滿足二手商品暢通交流的要求。于是一種新的二手商品信息交流的方式出現(xiàn)了,就是基于Web的校園

15、網(wǎng)二手商品交易系統(tǒng)。通過這個系統(tǒng),可以發(fā)現(xiàn)每一個校園網(wǎng)用戶都是系統(tǒng)的主人,大家可以非常方便的發(fā)布自己的信息,瀏覽別人的發(fā)布的信息,還可以對各種二手商品信息作出橫向比較,作出自己的最佳選擇。由此可見,該系統(tǒng)只是一個交流二手商品信息的平臺,與一般的電子商務(wù)類網(wǎng)站又有本質(zhì)的區(qū)別。</p><p>  1.3 可行性研究 </p><p>  設(shè)計這樣一個系統(tǒng),從根本上解決了傳統(tǒng)的校園二手信息發(fā)布

16、交流方式的弊端,使得校園各種二手商品信息得到了有效的整合,方便了廣大用戶。且擁有的客戶通常只是大學(xué)校園網(wǎng)的用戶,所有系統(tǒng)規(guī)模上來講不會很大,從經(jīng)濟(jì)上來說,由于選擇的開發(fā)工具和服務(wù)器幾乎全部為免費(fèi)的開源軟件,并且由于是開發(fā)成本較低的基于Web的B/S模式,而非成本費(fèi)用相對較高的C/S模式,所以從經(jīng)濟(jì)上來講是可行的。從技術(shù)上來說,由于是基于Web的,可以相對比較容易面對用戶的實際需求而開發(fā)。而在現(xiàn)今,各種網(wǎng)絡(luò)應(yīng)用的開發(fā)已經(jīng)相當(dāng)成熟,出現(xiàn)了幾

17、大主流的開發(fā)語言和工具,都可以非常有效的支持開發(fā)這樣一個系統(tǒng)。同時作為本系統(tǒng),也有許多成功的電子商務(wù)類網(wǎng)站的經(jīng)驗可以借鑒,所以從技術(shù)的角度來說,也是可行的。從運(yùn)行上來說,由于客戶端僅僅只是需要一個瀏覽器,通過瀏覽器來登陸系統(tǒng),而服務(wù)器端也只需要一臺服務(wù)器,服務(wù)器要求一個數(shù)據(jù)庫環(huán)境和一個網(wǎng)絡(luò)應(yīng)用開發(fā)的環(huán)境,實現(xiàn)起來比較容易,所以從運(yùn)行上來說是可行的。同時這樣一個系統(tǒng),在系統(tǒng)管理員合法管理和用戶的自覺配合下,不會違規(guī)進(jìn)行任何的不法的活動和交

18、易,發(fā)布具有危害性和不適宜的信息,也不存在任何非法牟利的行為,在法</p><p><b>  2 系統(tǒng)構(gòu)架分析</b></p><p>  2.1 Java語言簡介</p><p>  Java語言是美國Sun公司于1995年推出的一種簡單的、面向?qū)ο蟮?、分布式的、可解釋的、鍵壯的、安全的、結(jié)構(gòu)的、中立的、可移植的、性能很優(yōu)異的多線程的、動態(tài)

19、的語言。其前身為OAK語言,是SUN公司為一些消費(fèi)性電子產(chǎn)品而設(shè)計的一個通用環(huán)境。他們最初的目的只是為了開發(fā)一種獨立于平臺的軟件技術(shù)。經(jīng)過Sun公司的工程師的不懈努力以及全世界無數(shù)的編程愛好者的使用,Java終于發(fā)展成為今天這樣一個集桌面(J2SE)、網(wǎng)絡(luò)(J2EE)、移動平臺(J2ME)應(yīng)用為一體的功能強(qiáng)大的編程語言。目前Java由于其平臺無關(guān)及分布式特性,最重要的應(yīng)用是在網(wǎng)絡(luò)應(yīng)用上。</p><p>  2.

20、2 J2EE技術(shù)介紹</p><p>  J2EE技術(shù)是Java網(wǎng)絡(luò)應(yīng)用的技術(shù),廣泛應(yīng)用于企業(yè)級的應(yīng)用。它是由一套規(guī)范(shannin,2001)和建立在J2SE平臺上的應(yīng)用編程接口(API)組成。J2EE擁有Sun公司提供免費(fèi)開發(fā)工具,稱為J2EE軟件開發(fā)工具包(Software Development Kit,SDK )(http://java.sun.com/j2ee)。J2EE技術(shù)是一種Java網(wǎng)絡(luò)應(yīng)用技

21、術(shù)的組合,包含有遠(yuǎn)程方法調(diào)用(Remote Method Invocation,RMI)、Java消息服務(wù)(Java Message Service,JMS)、JavaMail等通信服務(wù),JDBC、Java命名和目錄接口(Java naming and Directory Interface,JNDI)、Java連接器體系結(jié)構(gòu)(Java Connector Architecture,JCA)、Java事務(wù)API/Java事務(wù)服務(wù)(JTA

22、/JTS)、XML處理API等通用服務(wù)以及Servlet、Java服務(wù)器頁面(JSP)、企業(yè)級JavaBean(EJB)等組件技術(shù)。任何J2EE的實現(xiàn)都必須要在其特定容器中實現(xiàn)。 </p><p>  2.3 Servlet/JSP技術(shù)</p><p>  Servlet是JSP技術(shù)的基礎(chǔ),JSP本身就是預(yù)先被編譯成Servlet,然后再運(yùn)行的,而且大型的Web應(yīng)用程序的開發(fā)需要Java

23、Servlet和JSP配合才能完成。 Servlet其實和傳統(tǒng)的CGI程序和ISAPI、NSAPI等Web程序開發(fā)工具的作用是相同的,在使用Java Servlet以后,用戶不必再使用效率低下的CGI方式,也不必使用只能在某個固定Web服務(wù)器平臺運(yùn)行的API方式來動態(tài)生成Web頁面。許多Web服務(wù)器都支持Servlet,即使不直接支持Servlet的Web服務(wù)器也可以通過附加的應(yīng)用服務(wù)器和模塊來支持Servlet。得益于Java的跨平臺

24、的特性,Servlet也是平臺無關(guān)的,實際上,只要符合Java Servlet規(guī)范,Servlet是完全平臺無關(guān)且是Web服務(wù)器無關(guān)的。由于Java Servlet內(nèi)部是以線程方式提供服務(wù),不必對于每個請求都啟動一個進(jìn)程,并且利用多線程機(jī)制可以同時為多個請求服務(wù),因此Java Servlet效率非常高。但Java Servlet也不是沒有缺點,和傳統(tǒng)的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用輸</p&

25、gt;<p>  JSP(JavaServer Pages)是一種基于Java的腳本技術(shù)。在JSP 的眾多優(yōu)點之中,其中之一是它能將 HTML 編碼從 Web 頁面的業(yè)務(wù)邏輯中有效地分離出來。用 JSP 訪問可重用的組件,如 Servlet、JavaBean 和基于 Java 的 Web 應(yīng)用程序。JSP 還支持在 Web 頁面中直接嵌入 Java 代碼。可用兩種方法訪問 JSP 文件:瀏覽器發(fā)送 JSP 文件請求、發(fā)送至

26、 Servlet 的請求。 1. JSP 文件訪問 Bean 或其它能將生成的動態(tài)內(nèi)容發(fā)送到瀏覽器的組件。</p><p>  2. 發(fā)送至 Servlet 的請求生成動態(tài)內(nèi)容,并調(diào)用 JSP 文件將內(nèi)容發(fā)送到瀏覽器。該訪問使得將內(nèi)容生成從內(nèi)容顯示中分離出來更為方便。</p><p>  JSP最大的優(yōu)點在于其與平臺無關(guān)性,并且具有“一次編寫,處處運(yùn)行”的特點。</p>

27、;<p>  2.4 JavaBeans技術(shù)</p><p>  JavaBeans就是Java的可重用組件技術(shù)。ASP通過COM來擴(kuò)充復(fù)雜的功能,如文件上載、發(fā)送email以及將業(yè)務(wù)處理或復(fù)雜計算分離出來成為獨立可重復(fù)利用的模塊。JSP通過JavaBeans實現(xiàn)了同樣的功能擴(kuò)充。JSP對于在Web應(yīng)用中集成JavaBeans組件提供了完善的支持。這種支持不僅能縮短開發(fā)時間(可以直接利用經(jīng)測試和可信

28、任的已有組件,避免了重復(fù)開發(fā)),也為JSP應(yīng)用帶來了更多的可伸縮性。JavaBeans組件可以用來執(zhí)行復(fù)雜的計算任務(wù),或負(fù)責(zé)與數(shù)據(jù)庫的交互以及數(shù)據(jù)提取等。在實際的JSP開發(fā)過程中,和傳統(tǒng)的ASP或PHP頁面相比,JSP頁面將會是非常簡潔的,由于JavaBeans開發(fā)起來簡單,又可以利用Java語言的強(qiáng)大功能,許多動態(tài)頁面處理過程實際上被封裝到了JavaBeans中。</p><p>  2.5 開發(fā)環(huán)境及環(huán)境配置

29、</p><p>  2.5.1 系統(tǒng)環(huán)境及Java/JSP環(huán)境配置</p><p>  開發(fā)及測試的系統(tǒng)環(huán)境,我選擇了Microsoft Windows Advanced Server 2000。由于其本身就是為服務(wù)器版的,適合用于搭設(shè)成為服務(wù)器端。要開發(fā)JSP,首先必須要求有Java環(huán)境,我選擇了Java 2 Platform,Enterprise Edition 1.4 SDK(即j

30、2eesdk-1_4_03-windows)。</p><p>  作為JSP的容器,選擇了目前非常流行的Tomcat 5.5。而IDE工具則選擇了Eclipse。各種軟件和工具安裝完成后,必須相應(yīng)的配置Windows 2000的系統(tǒng)環(huán)境變量。</p><p>  2.5.2 數(shù)據(jù)庫開發(fā)工具選擇及配置</p><p>  ORACLE系統(tǒng)主要是由Oracle dat

31、abase和Oracle Application Server兩大拳頭產(chǎn)品及ORACLE 管理程序包等其他產(chǎn)品組成,下面主要例一下10g的產(chǎn)品:</p><p>  Oracle Database 10g 提供了四個版本,每個版本適用于不同的開發(fā)和部署環(huán)境。Oracle 還提供了額外的幾種可選數(shù)據(jù)庫產(chǎn)品,這些產(chǎn)品針對特殊的應(yīng)用需求增強(qiáng)了 Oracle Database 10g 的功能。下面是 Oracle Dat

32、abase 10g 的可用版本:</p><p>  􀁺 Oracle數(shù)據(jù)庫10g企業(yè)版(Oracle Database 10g Enterprise Edition )為關(guān)鍵任務(wù)的應(yīng)用程序(如大業(yè)務(wù)量的在線事務(wù)處理 (OLTP) 環(huán)境、查詢密集的數(shù)據(jù)倉庫和要求苛刻的互聯(lián)網(wǎng)應(yīng)用程序)提供了高效、可靠、安全的數(shù)據(jù)管理。Oracle 數(shù)據(jù)庫企業(yè)版為企業(yè)提供了滿足當(dāng)今關(guān)鍵任務(wù)應(yīng)用程序的可用性和可伸縮

33、性需求的工具和功能。它包含了 Oracle 數(shù)據(jù)庫的所有組件,并且能夠通過購買選項和程序包(本文稍后將加以說明)來進(jìn)一步得到增強(qiáng)。</p><p>  Oracle 數(shù)據(jù)庫個人版、Oracle 數(shù)據(jù)庫標(biāo)準(zhǔn)版、標(biāo)準(zhǔn)版1和 Oracle 數(shù)據(jù)庫企業(yè)版包含了一系列常見的應(yīng)用程序開發(fā)功能(包括與 SQL 對象相關(guān)的功能、用于編寫存儲過程和觸發(fā)器的 PL/SQL 和 Java 編程接口)。Oracle 數(shù)據(jù)庫這些版本中的任

34、意一個編寫的應(yīng)用程序?qū)⑴c其它的應(yīng)用程序一起運(yùn)行,Oracle數(shù)據(jù)庫10g企業(yè)版提供了額外的性能</p><p>  2.5.3關(guān)系數(shù)據(jù)庫管理系統(tǒng)</p><p>  關(guān)系數(shù)據(jù)庫所使用關(guān)系語言班的特點是高度非過程化,即用戶只需說明"做什么"而不必說明"怎么做"。用戶不必請求數(shù)據(jù)庫管理員為其建立特殊的存取路徑,存取路徑的選擇是由DBMS(數(shù)據(jù)庫管理系統(tǒng))

35、自動完成的。這也是關(guān)系數(shù)據(jù)庫的主要優(yōu)點之一。 </p><p>  早期關(guān)系操作有兩種表示方式:關(guān)系代數(shù)與關(guān)系演算。理論上,關(guān)系代數(shù)和關(guān)系演算被證明是完全等價的。</p><p>  關(guān)系代數(shù)通過對關(guān)系的運(yùn)算來表達(dá)查詢,其操作對象是關(guān)系,操作結(jié)果亦為關(guān)系。</p><p>  全關(guān)系系統(tǒng)十二準(zhǔn)則:一個關(guān)系形的關(guān)系數(shù)據(jù)庫系統(tǒng)必須能完全通過它的關(guān)系能力來管理數(shù)據(jù)庫;關(guān)系

36、數(shù)據(jù)庫系統(tǒng)的所有信息都應(yīng)該在邏輯一級上用表中的值這一種方法顯式的表示;依靠表名、主碼和列名的組合,保證能以邏輯方式訪問關(guān)系數(shù)據(jù)庫中的每個數(shù)據(jù)項;全關(guān)系的關(guān)系數(shù)據(jù)庫系統(tǒng)支持空值的概念,并用系統(tǒng)化的方法處理空值;數(shù)據(jù)庫的描述在邏輯級上和普通數(shù)據(jù)采用同樣的表述方式;一個關(guān)系數(shù)據(jù)庫系統(tǒng)可以具有幾種語言和多種終端訪問方式,但必須有一種語言,它的語句可以表示為嚴(yán)格語法規(guī)定的字符串,并能全面的支持各種規(guī)則;所有理論上可更新的視圖也應(yīng)該允許由系統(tǒng)更新;

37、系統(tǒng)應(yīng)該對各種操作進(jìn)行查詢優(yōu)化;無論數(shù)據(jù)庫的數(shù)據(jù)在存儲表示或存取方法上作任何變化,應(yīng)用程序和終端活動都保持邏輯上的不變性;當(dāng)對基本關(guān)系進(jìn)行理論上信息不受損害的任何改變時,應(yīng)用程序和終端活動都保持邏輯上的不變性;關(guān)系數(shù)據(jù)庫的完整性約束條件必須是用數(shù)據(jù)庫語言定義并存儲在數(shù)據(jù)字典中的;關(guān)系數(shù)據(jù)庫系統(tǒng)在引入分布數(shù)據(jù)或數(shù)據(jù)重新分布時保持邏輯不變;如果一個關(guān)系數(shù)據(jù)庫系統(tǒng)具有一個低級語言,那么這個低級語言不能違背或繞過完整性準(zhǔn)則。</p>

38、<p>  2.5.4對性能的一般規(guī)定</p><p><b>  一、硬件服務(wù)器</b></p><p>  硬件要求有一臺可以滿足日常辦公的PCServer,可以同時滿足全體員工同時在線使用該系統(tǒng)。公司內(nèi)部可以通過交換機(jī)、集線器等設(shè)備連接到硬件服務(wù)器上,通過瀏覽器訪問使用。</p><p><b>  二、軟件服務(wù)器

39、</b></p><p>  Tomcat6,本身就可以作為服務(wù)器使用,雖然性能上沒有WebLogic、Server、 Apache、WebSphere等大型服務(wù)器功能強(qiáng)大,但是,作為一個中小型公司OA的服務(wù)器,完全可以滿足日常訪問和使用的需求,并保持一定的性能。 </p><p>  2.5.5 其他專門要求</p><p>  《WEB校園二手交易

40、系統(tǒng)》對數(shù)據(jù)庫操作不是很頻繁,可以使用SQLServer2000、mySQL、Oracle等做數(shù)據(jù)庫服務(wù)器就均可以滿足用戶的訪問操作需求。</p><p>  2.5.6 對安全性的要求</p><p>  在配置服務(wù)器時會保障軟,硬服務(wù)器的的相對安全性?!禬EB校園二手交易系統(tǒng)》的使用者分為兩種權(quán)限的級別(管理員和普通用戶),但是這兩種權(quán)限與部門的權(quán)利體系并沒進(jìn)行對應(yīng),可以減少程序復(fù)雜性

41、,降低程序出錯和安全風(fēng)險。程序代碼的安全性通過封裝JavaBean 而減少原代碼泄露的危險。</p><p>  2.5.7 運(yùn)行環(huán)境規(guī)定</p><p>  2.5.7.1設(shè)備及分布</p><p>  1)主機(jī)類型 </p&g

42、t;<p>  服務(wù)器:2*P4 CPU以上/2G內(nèi)存以上 </p><p>  客戶端:P4 CPU以上/128內(nèi)存以上</p><p>  2)網(wǎng)絡(luò)類型 </p

43、><p>  基于企業(yè)內(nèi)部的Intenet和廣域Internet</p><p>  3)存貯器容量 服務(wù)器:80G硬盤以上

44、 客戶端:10G硬盤以上</p><p>  2.5.7.2 支撐軟件</p><p><b>  操作系統(tǒng)</b></p><p>  服務(wù)器端:Windows98/Windows2k/WindowsNT/Linux/Unix</p><p>  客戶端:Windows98/Windo

45、ws2k/WindowsNT/Linux/Unix</p><p><b>  數(shù)據(jù)庫管理系統(tǒng)</b></p><p>  在服務(wù)器端使用oracle10g,也可以分布式應(yīng)用,使Web服務(wù)器和數(shù)據(jù)庫服務(wù)器分別在安裝兩臺計算機(jī)上。</p><p>  3) 其他支撐軟件</p><p>  客戶端瀏覽器在IE 4.0以上

46、。</p><p>  2.5.7.3 接口</p><p>  《WEB校園二手交易系統(tǒng)》的各個功能模塊之間通過相應(yīng)的JavaBean進(jìn)行關(guān)聯(lián)和相互的數(shù)據(jù)調(diào)用。</p><p>  2.5.7.4 程序運(yùn)行方式</p><p>  《WEB校園二手交易系統(tǒng)》獨立運(yùn)行在服務(wù)器端,客戶端通過IE,或者NetScape瀏覽器進(jìn)行訪問操作。&l

47、t;/p><p><b>  3.系統(tǒng)設(shè)計</b></p><p><b>  3.1系統(tǒng)總體設(shè)計</b></p><p><b>  圖1 總體設(shè)計</b></p><p>  系統(tǒng)主要運(yùn)行在Tomcat這個Web容器中,各個模塊對數(shù)據(jù)庫的訪問都通過JavaBeans來實現(xiàn),Ja

48、vaBeans為數(shù)據(jù)庫的連接建立一個連接池,將對數(shù)據(jù)庫的連接請求池化,控制有效連接數(shù),可確保系統(tǒng)及數(shù)據(jù)庫管理系統(tǒng)的穩(wěn)定運(yùn)行。 </p><p>  系統(tǒng)安全可靠也是一個重要的設(shè)計原則。本系統(tǒng)的配置是采用Windows XP作為網(wǎng)絡(luò)操作系統(tǒng),Oracle 10g作為數(shù)據(jù)庫服務(wù)

49、器。所以操作系統(tǒng)Windows XP的安全防護(hù)機(jī)制及數(shù)據(jù)庫Oracle 10g的安全機(jī)制是本系統(tǒng)采用的安全防護(hù)方式。</p><p><b>  3.2 概要設(shè)計</b></p><p>  3.2.1 系統(tǒng)功能模塊設(shè)計</p><p>  系統(tǒng)主要設(shè)計了用戶設(shè)置功能、發(fā)布信息功能、信息管理功能、搜索信息功能,留言功能,及系統(tǒng)管理功能模塊。&l

50、t;/p><p>  用戶設(shè)置功能主要是用戶注冊必須填寫所要求的個人資料,完成個人資料登入。</p><p>  發(fā)布信息功能主要是為已注冊用戶的服務(wù),登陸的用戶可以即時發(fā)布自己的二手商品信息,立刻就能瀏覽到。這是本系統(tǒng)的主要功能。</p><p>  信息管理功能是幫助已發(fā)表信息的的用戶管理自身發(fā)布的二手商品信息的同時也管理短消息信息。此項功能也主要是服務(wù)于注冊用戶。

51、</p><p>  搜索信息功能是面向所有登陸到本系統(tǒng)的人員的,采用模糊查詢的方法,篇歷所有二手商品信息,搜索出瀏覽者感興趣的內(nèi)容。</p><p>  留言功能分為兩種,一種是對某一二手商品信息進(jìn)行留言,還可以查看該信息的其他留言;另一種是短消息的,可以在用戶與用戶之間,也可以在系統(tǒng)管理員與用戶之間進(jìn)行短消息聯(lián)系。</p><p>  留言功能可在信息管理功能中

52、進(jìn)行相應(yīng)的管理。該項功能也主要是面向注冊用戶的。</p><p>  系統(tǒng)管理功能是系統(tǒng)管理員對系統(tǒng)所有信息資源進(jìn)行統(tǒng)一管理的一個模塊。只針對系統(tǒng)管理員帳戶,登陸方式采用了帳戶加驗證碼機(jī)制,提高該模塊的安全級別。</p><p>  3.2.2 系統(tǒng)結(jié)構(gòu)圖</p><p><b>  圖2 系統(tǒng)結(jié)構(gòu)圖</b></p><p&

53、gt;  3.2.3 數(shù)據(jù)流圖 </p><p><b>  圖3 數(shù)據(jù)流圖</b></p><p><b>  3.3 數(shù)據(jù)庫設(shè)計</b></p><p>  3.3.1 數(shù)據(jù)庫需求分析</p><

54、p>  對于數(shù)據(jù)庫的需求主要體現(xiàn)在對數(shù)據(jù)庫的提交信息、更新信息、刪除信息、保存信息等。這些信息的存在都取決于各個功能模塊的對信息的需求。通過對功能模塊的具體操作,實現(xiàn)對數(shù)據(jù)庫中信息的輸入和輸出。所以,針對各個功能模塊的需求,設(shè)計如下的數(shù)據(jù)表和數(shù)據(jù)結(jié)構(gòu):</p><p>  用戶信息:包括用戶名、密碼、及用戶的相關(guān)信息等。</p><p>  商品信息表:包括信息序號、發(fā)布信息的用戶名

55、,信息相關(guān)內(nèi)容等。</p><p>  商品留言信息:包括信息序號、商品信息相關(guān)、留言內(nèi)容相關(guān)等。</p><p>  用戶消息:包括發(fā)消息和接消息的用戶名、消息相關(guān)內(nèi)容等。</p><p>  系統(tǒng)管理員信息:包括帳戶名和帳戶密碼等。</p><p>  通過以上的信息,完成數(shù)據(jù)庫對各項需求的實現(xiàn)。</p><p>

56、  3.3.2 數(shù)據(jù)庫概要設(shè)計</p><p>  使用ER-WRING進(jìn)行建模:</p><p><b>  邏輯模型為: </b></p><p><b>  圖4 邏輯模型圖</b></p><p><b>  物理模型為:</b></p><p>

57、;<b>  圖5 物理模型圖</b></p><p>  3.3.3 數(shù)據(jù)庫詳細(xì)設(shè)計</p><p>  表1 (會員信息表)</p><p><b>  表2 (身份表)</b></p><p><b>  表3 (狀態(tài)表)</b></p><p>

58、<b>  表4 (權(quán)限)</b></p><p><b>  表5</b></p><p>  表6(登錄安全表) </p><p>  表7 (我要買的商品)</p><p><b>  表8(狀態(tài)表)</b></p><p>  表9 (我要賣的東

59、西)</p><p><b>  表10(狀態(tài)表)</b></p><p>  表11(商品的類型)</p><p>  表12(留言模塊表)</p><p><b>  4 系統(tǒng)實現(xiàn)</b></p><p><b>  4.1 程序設(shè)計</b><

60、/p><p><b>  用戶登錄界面:</b></p><p><b>  圖6 用戶登錄界面</b></p><p><b>  用戶登錄核心代碼:</b></p><p>  public ActionForward execute(ActionMapping mapping

61、, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response)</p><p><b>  {</b></p><p>  String key = request.getParameter("key");</

62、p><p>  List list = new ArrayList();</p><p>  if (key == null)</p><p><b>  {</b></p><p>  firstUser f = (firstUser) form;</p><p>  String name = f

63、.getNames();</p><p>  String password = f.getPwd();</p><p>  String regx = "[0-9a-zA-Z_]{2,9}$";</p><p>  ActionMessages ms = new ActionMessages();</p><p>  b

64、oolean flag = true;</p><p>  if (!(name.matches(regx)))</p><p><b>  {</b></p><p>  ActionMessage m = new ActionMessage("username.wrong");</p><p> 

65、 ms.add("username.wrong", m);</p><p>  flag = false;</p><p><b>  }</b></p><p>  if (!(password.matches(regx)))</p><p><b>  {</b></p

66、><p>  ActionMessage m = new ActionMessage("userpwd.wrong");</p><p>  ms.add("userpwd.wrong", m);</p><p>  flag = false;</p><p><b>  }</b>&

67、lt;/p><p>  BysjService bs = new BysjServiceImpl();</p><p>  if (flag == true)</p><p><b>  {</b></p><p><b>  try</b></p><p><b> 

68、 {</b></p><p>  Users u = bs.seachName(name, password)</p><p>  Set<Funs> set = (Set) bs.LockUser(u.getIdentitys().getId()); list.add(u);</p><p>  list.add(set);

69、</p><p>  HttpSession session = request.getSession();</p><p>  session.setAttribute("key", list);</p><p>  } catch (DataAccessException e)</p><p><b>  {

70、</b></p><p>  ActionMessage m = new ActionMessage("nameerror");</p><p>  ms.add("nameerror", m);</p><p>  flag = false;</p><p>  } catch (Data

71、ErrorException e)</p><p><b>  {</b></p><p>  ActionMessage m = new ActionMessage("pwderror");</p><p>  ms.add("pwderror", m);</p><p>  f

72、lag = false;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (!flag)</p><p><b>  {</b></p><p>  saveErrors(request, ms)

73、;</p><p>  return mapping.getInputForward();</p><p><b>  }</b></p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p>

74、<p>  return mapping.findForward("oks");</p><p><b>  }</b></p><p><b>  1)會員登錄模塊:</b></p><p><b>  會員發(fā)布出售信息:</b></p><p&g

75、t;  圖7 發(fā)布出售信息平臺界面</p><p>  發(fā)布出售信息核心代碼:</p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse respons

76、e) {</p><p><b>  try</b></p><p><b>  {</b></p><p>  AddMysaleFrom amf = (AddMysaleFrom) form;</p><p>  HttpSession session = request.getSession(

77、);</p><p>  File file = null;</p><p>  List list = (List) session.getAttribute("key");</p><p>  Users u = (Users) list.get(0);</p><p>  BysjService bs = new B

78、ysjServiceImpl();</p><p>  String str = bs.addMysale(amf, u.getLoaduser());</p><p>  ServletContext sc = getServlet().getServletContext();</p><p>  String fileurl = sc.getRealPath(&

79、quot;\\upload" + "\\" + u.getLoaduser());</p><p>  file = new File(fileurl);</p><p>  if (file.isDirectory())</p><p><b>  {</b></p><p>  // S

80、ystem.out.println("````");</p><p><b>  } else</b></p><p><b>  {</b></p><p>  file.mkdir();</p><p><b>  }</b></p>&l

81、t;p>  String fileurls = fileurl + "\\" + str;</p><p>  System.out.println(fileurl);</p><p>  byte[] b = new byte[1024];</p><p>  FormFile ff = amf.getUploads();</p&g

82、t;<p><b>  try</b></p><p><b>  {</b></p><p>  InputStream is = ff.getInputStream();</p><p>  OutputStream os = new FileOutputStream(fileurls);</p&g

83、t;<p>  while (true)</p><p><b>  {</b></p><p>  int c = is.read(b);</p><p>  os.write(b);</p><p>  if (c < 1024)</p><p><b>  {&

84、lt;/b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  String tempUrl = "upload" + "//" +

85、 u.getLoaduser() + "//" + str;</p><p>  BysjService bss = new BysjServiceImpl();</p><p>  bss.addMysales(amf, tempUrl, u.getId());</p><p>  } catch (FileNotFoundException

86、e)</p><p><b>  {</b></p><p>  e.printStackTrace();</p><p>  } catch (IOException e)</p><p><b>  {</b></p><p>  e.printStackTrace();

87、</p><p><b>  }</b></p><p>  } catch (DataAccessException e)</p><p><b>  {</b></p><p>  return mapping.findForward("error");</p>

88、<p><b>  }</b></p><p>  return null;</p><p><b>  }</b></p><p><b>  會員個人資料管理:</b></p><p>  圖8 會員個人資料管理界面</p><p>  

89、會員個人資料管理核心代碼:</p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response) {</p><p>  String id=r

90、equest.getParameter("key");</p><p>  Users users=new AjaxUserDaoImpl().findById(id);</p><p>  request.setAttribute("Users", users);</p><p>  return null;</p&g

91、t;<p><b>  }</b></p><p><b>  留言模塊:</b></p><p><b>  圖9 留言功能界面</b></p><p><b>  留言的后臺代碼:</b></p><p>  public ActionF

92、orward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response)</p><p><b>  {</b></p><p>  HttpSession session

93、= request.getSession();</p><p>  SavemsgForm sm = (SavemsgForm) form;</p><p>  String mysaleid = request.getParameter("mysaleid");</p><p>  Message ms = new Message();<

94、/p><p>  ms.setAuthor(sm.getAuthor());</p><p>  ms.setContent(sm.getContent());</p><p>  ms.setMysaleid(sm.getMysaleid());</p><p>  Mysale mysaleids = new Mysale();</p&

95、gt;<p>  mysaleids.setId(mysaleid);</p><p>  DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");</p><p>  String time = df.format(new Date());</p><p>  ms.

96、setTime(time);</p><p>  MessageImpl msg = new MessageImpl();</p><p>  ms.setMaysale(mysaleids);</p><p>  msg.insert(ms);</p><p>  List list = msg.getMessagebyMysaleId(s

97、m.getMysaleid());</p><p>  request.setAttribute("list", list);</p><p>  request.setAttribute("id", sm.getMysaleid());</p><p>  return mapping.findForward("o

98、k");</p><p><b>  }高級查詢模塊:</b></p><p>  圖10 高級查詢模塊界面</p><p><b>  高級查詢模塊代碼:</b></p><p>  public ActionForward execute(ActionMapping mapping,

99、ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response)</p><p><b>  {</b></p><p>  String pageIndex=request.getParameter("pageIndex"

100、;);</p><p>  AllMysall am= new AllMysall();</p><p>  if (pageIndex==null){</p><p>  pageIndex="1";</p><p><b>  }</b></p><p>  String

101、shoppingname=request.getParameter("shoppingname");</p><p>  String where=request.getParameter("where");</p><p>  String sql="from Mysale m where 1=1";</p>&l

102、t;p>  if(shoppingname!=null&&shoppingname.length()>0)</p><p><b>  {</b></p><p>  sql+=" and m.MerchandiseName='"+shoppingname+"'";</p>

103、;<p><b>  }</b></p><p>  if(where!=null && where.length()>0)</p><p><b>  {</b></p><p>  sql+=" and m.MerchandiseType.id="+where;&

104、lt;/p><p><b>  }</b></p><p>  Page<Mysale>page=(Page<Mysale>)am.seachMysall(sql, Integer.parseInt(pageIndex));</p><p>  request.setAttribute("page", p

105、age);</p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p><p><b>  2)管理員模塊:</b></p><p><b>  商品類別管理:</b></p&

106、gt;<p>  圖11 商品類別管理界面</p><p><b>  商品管理后臺代碼:</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request,

107、 HttpServletResponse response)</p><p><b>  {</b></p><p>  List list = new AjaxMerchandiseTypeImpl().seachMerchandise();</p><p>  request.setAttribute("list", l

108、ist);</p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><

109、;p>  HttpServletRequest request, HttpServletResponse response)</p><p><b>  {</b></p><p>  String id = request.getParameter("ids");</p><p>  String type = re

110、quest.getParameter("type");</p><p>  MerchandiseType mt = new AjaxMerchandiseTypeImpl().findById(id);</p><p>  mt.setType(type);</p><p>  return mapping.findForward("

111、ok");</p><p><b>  }</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse respo

112、nse) {</p><p>  String type=request.getParameter("type");</p><p>  MerchandiseType mt=new MerchandiseType();</p><p>  mt.setType(type);</p><p>  new AjaxMerch

113、andiseTypeImpl().insert(mt);</p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p><p><b>  留言信息管理:</b></p><p>  圖12 留言信息管理界

114、面</p><p><b>  留言管理后臺代碼:</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse respon

115、se)</p><p><b>  {</b></p><p>  String id=request.getParameter("id");</p><p>  MessageImpl msg = new MessageImpl();</p><p>  msg.deleteById(id);<

116、;/p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  

117、HttpServletRequest request, HttpServletResponse response)</p><p><b>  {</b></p><p>  MessageImpl mi= new MessageImpl();</p><p>  List list=mi.getMessagebyAll();</p>

118、;<p>  request.setAttribute("list", list);</p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p><p><b>  出售信息管理:</b><

119、;/p><p>  圖13 出售信息管理界面</p><p><b>  出售信息核心代碼:</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest requ

120、est, HttpServletResponse response) {</p><p>  String id=request.getParameter("key");</p><p>  Mysale ms=new MysalePersistImpl().findById(id);</p><p>  request.setAttribute

121、("key", ms);</p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm for

122、m,</p><p>  HttpServletRequest request, HttpServletResponse response) {</p><p>  HttpSession session=request.getSession();</p><p>  List list=(List)session.getAttribute("key&qu

123、ot;);</p><p>  Users u=(Users)list.get(0);</p><p>  BysjService bs= new BysjServiceImpl();</p><p>  Users ut=bs.showMysale(u);</p><p>  request.setAttribute("key&q

124、uot;,ut);</p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p><p><b>  用戶注冊模塊:</b></p><p>  圖14 用戶注冊界面</p><p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論