版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計---web校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)
- 同城二手交易系統(tǒng)畢業(yè)論文
- 校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)——商品評價功能【畢業(yè)論文】
- 校園二手交易系統(tǒng)詳細(xì)設(shè)計
- 校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)——商品評價功能【畢業(yè)論文】
- 畢業(yè)論文——基于bs結(jié)構(gòu)的二手交易系統(tǒng)的設(shè)計與實現(xiàn)
- 基于Android的校園二手交易系統(tǒng)設(shè)計與實現(xiàn).pdf
- 二手交易系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 在線二手交易系統(tǒng)的設(shè)計與實現(xiàn)
- 在線二手交易系統(tǒng)的設(shè)計與實現(xiàn)
- 校園二手商品交易系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 校園二手交易市場系統(tǒng)詳細(xì)設(shè)計畢業(yè)論文
- 校園二手交易市場──訂單管理設(shè)計與實現(xiàn)【畢業(yè)論文】
- 校園二手交易市場──用戶面板設(shè)計與實現(xiàn)【畢業(yè)論文】
- 基于web的校園網(wǎng)二手商品交易系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文
- 大學(xué)生二手交易系統(tǒng)的設(shè)計與實現(xiàn)
- 基于php二手交易系統(tǒng)
- 校園二手交易市場──商品管理設(shè)計與實現(xiàn)【畢業(yè)論文】
- 校園二手交易系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 校園二手交易市場──商品管理設(shè)計與實現(xiàn)【畢業(yè)論文】
評論
0/150
提交評論