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

下載本文檔

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

文檔簡介

1、<p>  Web校園二手交易系統(tǒng)的設計與實現(xiàn)</p><p>  院 (系) 人文管理學院 </p><p>  專 業(yè) 信息管理與信息系統(tǒng) </p><p><b>  目 錄</b></p><p><b>  1引言1</b>&

2、lt;/p><p>  1.1 開發(fā)背景1</p><p>  1.2 開發(fā)意義1</p><p>  1.3 可行性研究2</p><p><b>  2系統(tǒng)構架分析2</b></p><p>  2.1 JAVA語言簡潔2</p><p>  2.2 JA

3、VAEE技術介紹2</p><p>  2.3 SERVLET/Jsp技術3</p><p>  2.4 JAVABeans技術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、擇及配置4</p><p>  2.5.3 關系數(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 運行環(huán)境規(guī)定5</p><p&

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

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

7、.1 程序設計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>  總 結22</b></p>

8、<p>  參 考 文 獻24</p><p>  Web校園二手交易系統(tǒng)的設計與實現(xiàn)</p><p>  摘 要:隨著信息技術的迅速發(fā)展與網(wǎng)絡教學的普及,網(wǎng)上作業(yè)提交也成為現(xiàn)代化教學不可或缺的一部分。在此背景下,用JavaEE開發(fā)了網(wǎng)上作業(yè)提交系統(tǒng)。本論文首先考慮了學生網(wǎng)上作業(yè)提交和教師網(wǎng)上作業(yè)批改的實際要求,分析了此系統(tǒng)應該具有的功能;其次對系統(tǒng)的主要功能模塊進行了詳細地

9、描述,其中主要包括教師布置作業(yè),學生提交作業(yè),教師批改作業(yè)和管理員設置。最后結合系統(tǒng)開發(fā)階段和調試階段發(fā)現(xiàn)的問題,提出了系統(tǒng)需要完善的地方,總結了開發(fā)此系統(tǒng)所取得的經驗和體會。</p><p>  關鍵詞:Web二手交易系統(tǒng);javaEE;B/S結構;數(shù)據(jù)庫</p><p>  The Design and Realization of Campus Network Secondhand

10、Merchandise System Based on Web</p><p>  Abstract:This system is a set of platform software of the campus-wide system secondhand transaction. It adopts the JSP/J2EE technique, and programmed with Java progra

11、mming language. It also adopts the B/S development mode, which is based on Web and popularize in recent years. It runs in internet ways. Only when the server install this system and the client can visit it, browse and re

12、lease some secondhand conveniently and speedily when they go on-line. And so it dispenses with such operation as t</p><p>  The system development is divided into three parts. That is using JavaBeans to proc

13、ess business logic; using JSP+HTML+JavaScript and Servlet to process interface; and visiting the SQL Server 2000 database through JDBC-ODBC Bridge.</p><p>  Keywords:JSP;JavaBeans;Java;B/S</p><p&g

14、t;<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技術,以其交互性、動態(tài)性的特點,大大擴展了互聯(lián)網(wǎng)的應用范圍,互聯(lián)網(wǎng)的廣泛應用也深刻的影響了教育教

15、學領域。</p><p><b>  1.2 開發(fā)意義 </b></p><p>  隨著全世界互聯(lián)網(wǎng)技術的不斷發(fā)展,各種基于互聯(lián)網(wǎng)技術的網(wǎng)絡應用不斷涌現(xiàn),網(wǎng)絡技術正在不斷的深入人們的生活。人們從Internet上獲取信息、享受生活、交流感情、網(wǎng)上工作等。Internet正在迅速改變著人們的生活方式。</p><p>  在當前社會上,許多的各

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

17、是系統(tǒng)的主人,大家可以非常方便的發(fā)布自己的信息,瀏覽別人的發(fā)布的信息,還可以對各種二手商品信息作出橫向比較,作出自己的最佳選擇。由此可見,該系統(tǒng)只是一個交流二手商品信息的平臺,與一般的電子商務類網(wǎng)站又有本質的區(qū)別。</p><p>  1.3 可行性研究 </p><p>  設計這樣一個系統(tǒng),從根本上解決了傳統(tǒng)的校園二手信息發(fā)布交流方式的弊端,使得校園各種二手商品信息得到了有效的整合,方

18、便了廣大用戶。且擁有的客戶通常只是大學校園網(wǎng)的用戶,所有系統(tǒng)規(guī)模上來講不會很大,從經濟上來說,由于選擇的開發(fā)工具和服務器幾乎全部為免費的開源軟件,并且由于是開發(fā)成本較低的基于Web的B/S模式,而非成本費用相對較高的C/S模式,所以從經濟上來講是可行的。從技術上來說,由于是基于Web的,可以相對比較容易面對用戶的實際需求而開發(fā)。而在現(xiàn)今,各種網(wǎng)絡應用的開發(fā)已經相當成熟,出現(xiàn)了幾大主流的開發(fā)語言和工具,都可以非常有效的支持開發(fā)這樣一個系統(tǒng)

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

20、,在法</p><p><b>  2 系統(tǒng)構架分析</b></p><p>  2.1 Java語言簡介</p><p>  Java語言是美國Sun公司于1995年推出的一種簡單的、面向對象的、分布式的、可解釋的、鍵壯的、安全的、結構的、中立的、可移植的、性能很優(yōu)異的多線程的、動態(tài)的語言。其前身為OAK語言,是SUN公司為一些消費性電子產品

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

22、;  J2EE技術是Java網(wǎng)絡應用的技術,廣泛應用于企業(yè)級的應用。它是由一套規(guī)范(shannin,2001)和建立在J2SE平臺上的應用編程接口(API)組成。J2EE擁有Sun公司提供免費開發(fā)工具,稱為J2EE軟件開發(fā)工具包(Software Development Kit,SDK )(http://java.sun.com/j2ee)。J2EE技術是一種Java網(wǎng)絡應用技術的組合,包含有遠程方法調用(Remote Method I

23、nvocation,RMI)、Java消息服務(Java Message Service,JMS)、JavaMail等通信服務,JDBC、Java命名和目錄接口(Java naming and Directory Interface,JNDI)、Java連接器體系結構(Java Connector Architecture,JCA)、Java事務API/Java事務服務(JTA/JTS)、XML處理API等通用服務以及Servlet、J

24、ava服務器頁面(JSP)、企業(yè)級JavaBean(EJB)等組件技術。任何J2EE的實現(xiàn)都必須要在其特定容器中實現(xiàn)。 </p><p>  2.3 Servlet/JSP技術</p><p>  Servlet是JSP技術的基礎,JSP本身就是預先被編譯成Servlet,然后再運行的,而且大型的Web應用程序的開發(fā)需要Java Servlet和JSP配合才能完成。 Servlet其實和傳

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

26、a Servlet規(guī)范,Servlet是完全平臺無關且是Web服務器無關的。由于Java Servlet內部是以線程方式提供服務,不必對于每個請求都啟動一個進程,并且利用多線程機制可以同時為多個請求服務,因此Java Servlet效率非常高。但Java Servlet也不是沒有缺點,和傳統(tǒng)的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用輸</p><p>  JSP(JavaServer

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

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

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

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

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

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

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

34、t;p>  􀁺 Oracle數(shù)據(jù)庫10g企業(yè)版(Oracle Database 10g Enterprise Edition )為關鍵任務的應用程序(如大業(yè)務量的在線事務處理 (OLTP) 環(huán)境、查詢密集的數(shù)據(jù)倉庫和要求苛刻的互聯(lián)網(wǎng)應用程序)提供了高效、可靠、安全的數(shù)據(jù)管理。Oracle 數(shù)據(jù)庫企業(yè)版為企業(yè)提供了滿足當今關鍵任務應用程序的可用性和可伸縮性需求的工具和功能。它包含了 Oracle 數(shù)據(jù)庫的所有組件

35、,并且能夠通過購買選項和程序包(本文稍后將加以說明)來進一步得到增強。</p><p>  Oracle 數(shù)據(jù)庫個人版、Oracle 數(shù)據(jù)庫標準版、標準版1和 Oracle 數(shù)據(jù)庫企業(yè)版包含了一系列常見的應用程序開發(fā)功能(包括與 SQL 對象相關的功能、用于編寫存儲過程和觸發(fā)器的 PL/SQL 和 Java 編程接口)。Oracle 數(shù)據(jù)庫這些版本中的任意一個編寫的應用程序將與其它的應用程序一起運行,Oracle

36、數(shù)據(jù)庫10g企業(yè)版提供了額外的性能</p><p>  2.5.3關系數(shù)據(jù)庫管理系統(tǒng)</p><p>  關系數(shù)據(jù)庫所使用關系語言班的特點是高度非過程化,即用戶只需說明"做什么"而不必說明"怎么做"。用戶不必請求數(shù)據(jù)庫管理員為其建立特殊的存取路徑,存取路徑的選擇是由DBMS(數(shù)據(jù)庫管理系統(tǒng))自動完成的。這也是關系數(shù)據(jù)庫的主要優(yōu)點之一。 </p&

37、gt;<p>  早期關系操作有兩種表示方式:關系代數(shù)與關系演算。理論上,關系代數(shù)和關系演算被證明是完全等價的。</p><p>  關系代數(shù)通過對關系的運算來表達查詢,其操作對象是關系,操作結果亦為關系。</p><p>  全關系系統(tǒng)十二準則:一個關系形的關系數(shù)據(jù)庫系統(tǒng)必須能完全通過它的關系能力來管理數(shù)據(jù)庫;關系數(shù)據(jù)庫系統(tǒng)的所有信息都應該在邏輯一級上用表中的值這一種方法顯

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

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

40、/p><p><b>  一、硬件服務器</b></p><p>  硬件要求有一臺可以滿足日常辦公的PCServer,可以同時滿足全體員工同時在線使用該系統(tǒng)。公司內部可以通過交換機、集線器等設備連接到硬件服務器上,通過瀏覽器訪問使用。</p><p><b>  二、軟件服務器</b></p><p>

41、;  Tomcat6,本身就可以作為服務器使用,雖然性能上沒有WebLogic、Server、 Apache、WebSphere等大型服務器功能強大,但是,作為一個中小型公司OA的服務器,完全可以滿足日常訪問和使用的需求,并保持一定的性能。 </p><p>  2.5.5 其他專門要求</p><p>  《WEB校園二手交易系統(tǒng)》對數(shù)據(jù)庫操作不是很頻繁,可以使用SQLServer20

42、00、mySQL、Oracle等做數(shù)據(jù)庫服務器就均可以滿足用戶的訪問操作需求。</p><p>  2.5.6 對安全性的要求</p><p>  在配置服務器時會保障軟,硬服務器的的相對安全性?!禬EB校園二手交易系統(tǒng)》的使用者分為兩種權限的級別(管理員和普通用戶),但是這兩種權限與部門的權利體系并沒進行對應,可以減少程序復雜性,降低程序出錯和安全風險。程序代碼的安全性通過封裝JavaB

43、ean 而減少原代碼泄露的危險。</p><p>  2.5.7 運行環(huán)境規(guī)定</p><p>  2.5.7.1設備及分布</p><p>  1)主機類型 </p><p>  服務器:2*P4 CPU以上/

44、2G內存以上 </p><p>  客戶端:P4 CPU以上/128內存以上</p><p>  2)網(wǎng)絡類型 </p><p>  基于企業(yè)內部的Intene

45、t和廣域Internet</p><p>  3)存貯器容量 服務器:80G硬盤以上 客戶端:10G硬盤以上&l

46、t;/p><p>  2.5.7.2 支撐軟件</p><p><b>  操作系統(tǒng)</b></p><p>  服務器端:Windows98/Windows2k/WindowsNT/Linux/Unix</p><p>  客戶端:Windows98/Windows2k/WindowsNT/Linux/Unix</

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

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

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

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

51、racle 10g的安全機制是本系統(tǒng)采用的安全防護方式。</p><p><b>  3.2 概要設計</b></p><p>  3.2.1 系統(tǒng)功能模塊設計</p><p>  系統(tǒng)主要設計了用戶設置功能、發(fā)布信息功能、信息管理功能、搜索信息功能,留言功能,及系統(tǒng)管理功能模塊。</p><p>  用戶設置功能主要是

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

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

54、><p>  系統(tǒng)管理功能是系統(tǒng)管理員對系統(tǒng)所有信息資源進行統(tǒng)一管理的一個模塊。只針對系統(tǒng)管理員帳戶,登陸方式采用了帳戶加驗證碼機制,提高該模塊的安全級別。</p><p>  3.2.2 系統(tǒng)結構圖</p><p><b>  圖2 系統(tǒng)結構圖</b></p><p>  3.2.3 數(shù)據(jù)流圖

55、 </p><p><b>  圖3 數(shù)據(jù)流圖</b></p><p><b>  3.3 數(shù)據(jù)庫設計</b></p><p>  3.3.1 數(shù)據(jù)庫需求分析</p><p>  對于數(shù)據(jù)庫的需求主要體現(xiàn)在對數(shù)據(jù)庫的提交信息、

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

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

58、;p>  使用ER-WRING進行建模:</p><p><b>  邏輯模型為: </b></p><p><b>  圖4 邏輯模型圖</b></p><p><b>  物理模型為:</b></p><p><b>  圖5 物理模型圖</b>

59、</p><p>  3.3.3 數(shù)據(jù)庫詳細設計</p><p>  表1 (會員信息表)</p><p><b>  表2 (身份表)</b></p><p><b>  表3 (狀態(tài)表)</b></p><p><b>  表4 (權限)</b>&l

60、t;/p><p><b>  表5</b></p><p>  表6(登錄安全表) </p><p>  表7 (我要買的商品)</p><p><b>  表8(狀態(tài)表)</b></p><p>  表9 (我要賣的東西)</p><p><b&g

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

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

63、<p>  HttpServletRequest request, HttpServletResponse response)</p><p><b>  {</b></p><p>  String key = request.getParameter("key");</p><p>  List list =

64、new ArrayList();</p><p>  if (key == null)</p><p><b>  {</b></p><p>  firstUser f = (firstUser) form;</p><p>  String name = f.getNames();</p><p&

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

66、<p>  if (!(name.matches(regx)))</p><p><b>  {</b></p><p>  ActionMessage m = new ActionMessage("username.wrong");</p><p>  ms.add("username.wrong&q

67、uot;, m);</p><p>  flag = false;</p><p><b>  }</b></p><p>  if (!(password.matches(regx)))</p><p><b>  {</b></p><p>  ActionMessage

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

69、ice bs = new BysjServiceImpl();</p><p>  if (flag == true)</p><p><b>  {</b></p><p><b>  try</b></p><p><b>  {</b></p><p&

70、gt;  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);</p><p>  HttpSes

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

72、;  ActionMessage m = new ActionMessage("nameerror");</p><p>  ms.add("nameerror", m);</p><p>  flag = false;</p><p>  } catch (DataErrorException e)</p>&

73、lt;p><b>  {</b></p><p>  ActionMessage m = new ActionMessage("pwderror");</p><p>  ms.add("pwderror", m);</p><p>  flag = false;</p><p&

74、gt;<b>  }</b></p><p><b>  }</b></p><p>  if (!flag)</p><p><b>  {</b></p><p>  saveErrors(request, ms);</p><p>  return

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

76、dForward("oks");</p><p><b>  }</b></p><p><b>  1)會員登錄模塊:</b></p><p><b>  會員發(fā)布出售信息:</b></p><p>  圖7 發(fā)布出售信息平臺界面</p>&

77、lt;p>  發(fā)布出售信息核心代碼:</p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response) {</p><p><b

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

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

80、lt;p>  String str = bs.addMysale(amf, u.getLoaduser());</p><p>  ServletContext sc = getServlet().getServletContext();</p><p>  String fileurl = sc.getRealPath("\\upload" + "\\

81、" + u.getLoaduser());</p><p>  file = new File(fileurl);</p><p>  if (file.isDirectory())</p><p><b>  {</b></p><p>  // System.out.println("````&q

82、uot;);</p><p><b>  } else</b></p><p><b>  {</b></p><p>  file.mkdir();</p><p><b>  }</b></p><p>  String fileurls = fil

83、eurl + "\\" + str;</p><p>  System.out.println(fileurl);</p><p>  byte[] b = new byte[1024];</p><p>  FormFile ff = amf.getUploads();</p><p><b>  try<

84、;/b></p><p><b>  {</b></p><p>  InputStream is = ff.getInputStream();</p><p>  OutputStream os = new FileOutputStream(fileurls);</p><p>  while (true)<

85、;/p><p><b>  {</b></p><p>  int c = is.read(b);</p><p>  os.write(b);</p><p>  if (c < 1024)</p><p><b>  {</b></p><p>

86、<b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  String tempUrl = "upload" + "//" + u.getLoaduser() + "//&qu

87、ot; + str;</p><p>  BysjService bss = new BysjServiceImpl();</p><p>  bss.addMysales(amf, tempUrl, u.getId());</p><p>  } catch (FileNotFoundException e)</p><p><b&g

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

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

90、t;</p><p>  return null;</p><p><b>  }</b></p><p><b>  會員個人資料管理:</b></p><p>  圖8 會員個人資料管理界面</p><p>  會員個人資料管理核心代碼:</p><p

91、>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response) {</p><p>  String id=request.getParameter("key&

92、quot;);</p><p>  Users users=new AjaxUserDaoImpl().findById(id);</p><p>  request.setAttribute("Users", users);</p><p>  return null;</p><p><b>  }</

93、b></p><p><b>  留言模塊:</b></p><p><b>  圖9 留言功能界面</b></p><p><b>  留言的后臺代碼:</b></p><p>  public ActionForward execute(ActionMapping m

94、apping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response)</p><p><b>  {</b></p><p>  HttpSession session = request.getSession();</p&

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

96、r(sm.getAuthor());</p><p>  ms.setContent(sm.getContent());</p><p>  ms.setMysaleid(sm.getMysaleid());</p><p>  Mysale mysaleids = new Mysale();</p><p>  mysaleids.setI

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

98、p>  MessageImpl msg = new MessageImpl();</p><p>  ms.setMaysale(mysaleids);</p><p>  msg.insert(ms);</p><p>  List list = msg.getMessagebyMysaleId(sm.getMysaleid());</p>&

99、lt;p>  request.setAttribute("list", list);</p><p>  request.setAttribute("id", sm.getMysaleid());</p><p>  return mapping.findForward("ok");</p><p>

100、<b>  }高級查詢模塊:</b></p><p>  圖10 高級查詢模塊界面</p><p><b>  高級查詢模塊代碼:</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p>&l

101、t;p>  HttpServletRequest request, HttpServletResponse response)</p><p><b>  {</b></p><p>  String pageIndex=request.getParameter("pageIndex");</p><p>  AllM

102、ysall am= new AllMysall();</p><p>  if (pageIndex==null){</p><p>  pageIndex="1";</p><p><b>  }</b></p><p>  String shoppingname=request.getParame

103、ter("shoppingname");</p><p>  String where=request.getParameter("where");</p><p>  String sql="from Mysale m where 1=1";</p><p>  if(shoppingname!=null

104、&&shoppingname.length()>0)</p><p><b>  {</b></p><p>  sql+=" and m.MerchandiseName='"+shoppingname+"'";</p><p><b>  }</b

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

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

107、turn mapping.findForward("ok");</p><p><b>  }</b></p><p><b>  2)管理員模塊:</b></p><p><b>  商品類別管理:</b></p><p>  圖11 商品類別管理界面&l

108、t;/p><p><b>  商品管理后臺代碼:</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response)

109、</p><p><b>  {</b></p><p>  List list = new AjaxMerchandiseTypeImpl().seachMerchandise();</p><p>  request.setAttribute("list", list);</p><p>  re

110、turn mapping.findForward("ok");</p><p><b>  }</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest req

111、uest, HttpServletResponse response)</p><p><b>  {</b></p><p>  String id = request.getParameter("ids");</p><p>  String type = request.getParameter("type&

112、quot;);</p><p>  MerchandiseType mt = new AjaxMerchandiseTypeImpl().findById(id);</p><p>  mt.setType(type);</p><p>  return mapping.findForward("ok");</p><p>

113、;<b>  }</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response) {</p><p>  S

114、tring type=request.getParameter("type");</p><p>  MerchandiseType mt=new MerchandiseType();</p><p>  mt.setType(type);</p><p>  new AjaxMerchandiseTypeImpl().insert(mt);&l

115、t;/p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p><p><b>  留言信息管理:</b></p><p>  圖12 留言信息管理界面</p><p><b>

116、;  留言管理后臺代碼:</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response)</p><p><b&

117、gt;  {</b></p><p>  String id=request.getParameter("id");</p><p>  MessageImpl msg = new MessageImpl();</p><p>  msg.deleteById(id);</p><p>  return map

118、ping.findForward("ok");</p><p><b>  }</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, Ht

119、tpServletResponse response)</p><p><b>  {</b></p><p>  MessageImpl mi= new MessageImpl();</p><p>  List list=mi.getMessagebyAll();</p><p>  request.setAttri

120、bute("list", list);</p><p>  return mapping.findForward("ok");</p><p><b>  }</b></p><p><b>  出售信息管理:</b></p><p>  圖13 出售信息管理

121、界面</p><p><b>  出售信息核心代碼:</b></p><p>  public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse respo

122、nse) {</p><p>  String id=request.getParameter("key");</p><p>  Mysale ms=new MysalePersistImpl().findById(id);</p><p>  request.setAttribute("key", ms);</p&g

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

溫馨提示

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

評論

0/150

提交評論