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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

4、gt;<p>  1.1 開(kāi)發(fā)背景1</p><p>  1.2 開(kāi)發(fā)意義1</p><p>  1.3 可行性研究2</p><p><b>  2系統(tǒng)構(gòu)架分析2</b></p><p>  2.1 JAVA語(yǔ)言簡(jiǎn)潔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 開(kāi)發(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ù)庫(kù)開(kāi)發(fā)工具選擇及配置4

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

7、;b>  3系統(tǒng)設(shè)計(jì)6</b></p><p>  3.1 系統(tǒng)總體設(shè)計(jì)6</p><p>  3.2 概要設(shè)計(jì)6</p><p>  3.2.1 系統(tǒng)功能模塊設(shè)計(jì)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ù)庫(kù)設(shè)計(jì)8</p><p>  3.3.1 數(shù)據(jù)庫(kù)需求分析8</p><p>  3.3.2 數(shù)據(jù)庫(kù)概要設(shè)計(jì)8</p><p>  3.3.3 數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)9</p><p><b>  4 系統(tǒng)實(shí)現(xiàn)11</b></p><p>  4.1 程序設(shè)

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

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

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

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

13、擴(kuò)展了互聯(lián)網(wǎng)的應(yīng)用范圍,互聯(lián)網(wǎng)的廣泛應(yīng)用也深刻的影響了教育教學(xué)領(lǐng)域。</p><p><b>  1.2 開(kāi)發(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)前社會(huì)上,許多的各種類型的電子商務(wù)類網(wǎng)站紛紛建立,可以很大程度上的解決人們信息資源的閉塞以及地域上的限制。作為大學(xué)校園,伴隨著學(xué)生的購(gòu)買(mǎi)能力的提高和每年的升學(xué)和畢業(yè),也存在的許多各種類型的二手商品,由于信息交流的落后,很多只限于于校園公告欄或者請(qǐng)人代為宣傳的方式進(jìn)行交易。這種方式有很多局限性和偶然性,并不能滿足二手商品暢通交流的要求。于是一種新的二手商品信息交流的方式出現(xiàn)了,就是基于Web的校園

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

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

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

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

19、的語(yǔ)言。其前身為OAK語(yǔ)言,是SUN公司為一些消費(fèi)性電子產(chǎn)品而設(shè)計(jì)的一個(gè)通用環(huán)境。他們最初的目的只是為了開(kāi)發(fā)一種獨(dú)立于平臺(tái)的軟件技術(shù)。經(jīng)過(guò)Sun公司的工程師的不懈努力以及全世界無(wú)數(shù)的編程愛(ài)好者的使用,Java終于發(fā)展成為今天這樣一個(gè)集桌面(J2SE)、網(wǎng)絡(luò)(J2EE)、移動(dòng)平臺(tái)(J2ME)應(yīng)用為一體的功能強(qiáng)大的編程語(yǔ)言。目前Java由于其平臺(tái)無(wú)關(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è)級(jí)的應(yīng)用。它是由一套規(guī)范(shannin,2001)和建立在J2SE平臺(tái)上的應(yīng)用編程接口(API)組成。J2EE擁有Sun公司提供免費(fèi)開(kāi)發(fā)工具,稱為J2EE軟件開(kāi)發(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ù)器頁(yè)面(JSP)、企業(yè)級(jí)JavaBean(EJB)等組件技術(shù)。任何J2EE的實(shí)現(xiàn)都必須要在其特定容器中實(shí)現(xiàn)。 </p><p>  2.3 Servlet/JSP技術(shù)</p><p>  Servlet是JSP技術(shù)的基礎(chǔ),JSP本身就是預(yù)先被編譯成Servlet,然后再運(yùn)行的,而且大型的Web應(yīng)用程序的開(kāi)發(fā)需要Java

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

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

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

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

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

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

29、</p><p>  2.5.1 系統(tǒng)環(huán)境及Java/JSP環(huán)境配置</p><p>  開(kāi)發(fā)及測(cè)試的系統(tǒng)環(huán)境,我選擇了Microsoft Windows Advanced Server 2000。由于其本身就是為服務(wù)器版的,適合用于搭設(shè)成為服務(wù)器端。要開(kāi)發(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ù)庫(kù)開(kāi)發(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 提供了四個(gè)版本,每個(gè)版本適用于不同的開(kāi)發(fā)和部署環(huán)境。Oracle 還提供了額外的幾種可選數(shù)據(jù)庫(kù)產(chǎn)品,這些產(chǎn)品針對(duì)特殊的應(yīng)用需求增強(qiáng)了 Oracle Database 10g 的功能。下面是 Oracle Dat

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

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

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

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

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

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

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

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

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

41、,降低程序出錯(cuò)和安全風(fēng)險(xiǎn)。程序代碼的安全性通過(guò)封裝JavaBean 而減少原代碼泄露的危險(xiǎn)。</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硬盤(pán)以上

44、 客戶端:10G硬盤(pán)以上</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ù)庫(kù)管理系統(tǒng)</b></p><p>  在服務(wù)器端使用oracle10g,也可以分布式應(yīng)用,使Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器分別在安裝兩臺(tái)計(jì)算機(jī)上。</p><p>  3) 其他支撐軟件</p><p>  客戶端瀏覽器在IE 4.0以上

46、。</p><p>  2.5.7.3 接口</p><p>  《WEB校園二手交易系統(tǒng)》的各個(gè)功能模塊之間通過(guò)相應(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)》獨(dú)立運(yùn)行在服務(wù)器端,客戶端通過(guò)IE,或者NetScape瀏覽器進(jìn)行訪問(wèn)操作。&l

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

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

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

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

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

52、進(jìn)行相應(yīng)的管理。該項(xiàng)功能也主要是面向注冊(cè)用戶的。</p><p>  系統(tǒng)管理功能是系統(tǒng)管理員對(duì)系統(tǒng)所有信息資源進(jìn)行統(tǒng)一管理的一個(gè)模塊。只針對(duì)系統(tǒng)管理員帳戶,登陸方式采用了帳戶加驗(yàn)證碼機(jī)制,提高該模塊的安全級(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ù)庫(kù)設(shè)計(jì)</b></p><p>  3.3.1 數(shù)據(jù)庫(kù)需求分析</p><

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

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

56、  3.3.2 數(shù)據(jù)庫(kù)概要設(shè)計(jì)</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ù)庫(kù)詳細(xì)設(shè)計(jì)</p><p>  表1 (會(huì)員信息表)</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 (我要買(mǎi)的商品)</p><p><b>  表8(狀態(tài)表)</b></p><p>  表9 (我要賣(mài)的東

59、西)</p><p><b>  表10(狀態(tài)表)</b></p><p>  表11(商品的類型)</p><p>  表12(留言模塊表)</p><p><b>  4 系統(tǒng)實(shí)現(xiàn)</b></p><p><b>  4.1 程序設(shè)計(jì)</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)會(huì)員登錄模塊:</b></p><p><b>  會(huì)員發(fā)布出售信息:</b></p><p&g

75、t;  圖7 發(fā)布出售信息平臺(tái)界面</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>  會(huì)員個(gè)人資料管理:</b></p><p>  圖8 會(huì)員個(gè)人資料管理界面</p><p>  

89、會(huì)員個(gè)人資料管理核心代碼:</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>  留言的后臺(tái)代碼:</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>  }高級(jí)查詢模塊:</b></p><p>  圖10 高級(jí)查詢模塊界面</p><p><b>  高級(jí)查詢模塊代碼:</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>  商品管理后臺(tái)代碼:</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>  留言管理后臺(tái)代碼:</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>  用戶注冊(cè)模塊:</b></p><p>  圖14 用戶注冊(cè)界面</p><p>

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論