版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> Web校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)</p><p> 院 (系) 人文管理學(xué)院 </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)構(gòu)架分析2</b></p><p> 2.1 JAVA語言簡潔2</p><p> 2.2 JA
3、VAEE技術(shù)介紹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、擇及配置4</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 運行環(huán)境規(guī)定5</p><p&
5、gt;<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
6、><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ù)庫詳細設(shè)計9</p><p><b> 4 系統(tǒng)實現(xiàn)11</b></p><p> 4
7、.1 程序設(shè)計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>
8、<p> 參 考 文 獻24</p><p> Web校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)</p><p> 摘 要:隨著信息技術(shù)的迅速發(fā)展與網(wǎng)絡(luò)教學(xué)的普及,網(wǎng)上作業(yè)提交也成為現(xiàn)代化教學(xué)不可或缺的一部分。在此背景下,用JavaEE開發(fā)了網(wǎng)上作業(yè)提交系統(tǒng)。本論文首先考慮了學(xué)生網(wǎng)上作業(yè)提交和教師網(wǎng)上作業(yè)批改的實際要求,分析了此系統(tǒng)應(yīng)該具有的功能;其次對系統(tǒng)的主要功能模塊進行了詳細地
9、描述,其中主要包括教師布置作業(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);javaEE;B/S結(jié)構(gòu);數(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技術(shù),以其交互性、動態(tài)性的特點,大大擴展了互聯(lián)網(wǎng)的應(yīng)用范圍,互聯(lián)網(wǎng)的廣泛應(yīng)用也深刻的影響了教育教
15、學(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正在迅速改變著人們的生活方式。</p><p> 在當(dāng)前社會上,許多的各
16、種類型的電子商務(wù)類網(wǎng)站紛紛建立,可以很大程度上的解決人們信息資源的閉塞以及地域上的限制。作為大學(xué)校園,伴隨著學(xué)生的購買能力的提高和每年的升學(xué)和畢業(yè),也存在的許多各種類型的二手商品,由于信息交流的落后,很多只限于于校園公告欄或者請人代為宣傳的方式進行交易。這種方式有很多局限性和偶然性,并不能滿足二手商品暢通交流的要求。于是一種新的二手商品信息交流的方式出現(xiàn)了,就是基于Web的校園網(wǎng)二手商品交易系統(tǒng)。通過這個系統(tǒng),可以發(fā)現(xiàn)每一個校園網(wǎng)用戶都
17、是系統(tǒng)的主人,大家可以非常方便的發(fā)布自己的信息,瀏覽別人的發(fā)布的信息,還可以對各種二手商品信息作出橫向比較,作出自己的最佳選擇。由此可見,該系統(tǒng)只是一個交流二手商品信息的平臺,與一般的電子商務(wù)類網(wǎng)站又有本質(zhì)的區(qū)別。</p><p> 1.3 可行性研究 </p><p> 設(shè)計這樣一個系統(tǒng),從根本上解決了傳統(tǒng)的校園二手信息發(fā)布交流方式的弊端,使得校園各種二手商品信息得到了有效的整合,方
18、便了廣大用戶。且擁有的客戶通常只是大學(xué)校園網(wǎng)的用戶,所有系統(tǒng)規(guī)模上來講不會很大,從經(jīng)濟上來說,由于選擇的開發(fā)工具和服務(wù)器幾乎全部為免費的開源軟件,并且由于是開發(fā)成本較低的基于Web的B/S模式,而非成本費用相對較高的C/S模式,所以從經(jīng)濟上來講是可行的。從技術(shù)上來說,由于是基于Web的,可以相對比較容易面對用戶的實際需求而開發(fā)。而在現(xiàn)今,各種網(wǎng)絡(luò)應(yīng)用的開發(fā)已經(jīng)相當(dāng)成熟,出現(xiàn)了幾大主流的開發(fā)語言和工具,都可以非常有效的支持開發(fā)這樣一個系統(tǒng)
19、。同時作為本系統(tǒng),也有許多成功的電子商務(wù)類網(wǎng)站的經(jīng)驗可以借鑒,所以從技術(shù)的角度來說,也是可行的。從運行上來說,由于客戶端僅僅只是需要一個瀏覽器,通過瀏覽器來登陸系統(tǒng),而服務(wù)器端也只需要一臺服務(wù)器,服務(wù)器要求一個數(shù)據(jù)庫環(huán)境和一個網(wǎng)絡(luò)應(yīng)用開發(fā)的環(huán)境,實現(xiàn)起來比較容易,所以從運行上來說是可行的。同時這樣一個系統(tǒng),在系統(tǒng)管理員合法管理和用戶的自覺配合下,不會違規(guī)進行任何的不法的活動和交易,發(fā)布具有危害性和不適宜的信息,也不存在任何非法牟利的行為
20、,在法</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)的語言。其前身為OAK語言,是SUN公司為一些消費性電子產(chǎn)品
21、而設(shè)計的一個通用環(huán)境。他們最初的目的只是為了開發(fā)一種獨立于平臺的軟件技術(shù)。經(jīng)過Sun公司的工程師的不懈努力以及全世界無數(shù)的編程愛好者的使用,Java終于發(fā)展成為今天這樣一個集桌面(J2SE)、網(wǎng)絡(luò)(J2EE)、移動平臺(J2ME)應(yīng)用為一體的功能強大的編程語言。目前Java由于其平臺無關(guān)及分布式特性,最重要的應(yīng)用是在網(wǎng)絡(luò)應(yīng)用上。</p><p> 2.2 J2EE技術(shù)介紹</p><p>
22、; J2EE技術(shù)是Java網(wǎng)絡(luò)應(yīng)用的技術(shù),廣泛應(yīng)用于企業(yè)級的應(yīng)用。它是由一套規(guī)范(shannin,2001)和建立在J2SE平臺上的應(yīng)用編程接口(API)組成。J2EE擁有Sun公司提供免費開發(fā)工具,稱為J2EE軟件開發(fā)工具包(Software Development Kit,SDK )(http://java.sun.com/j2ee)。J2EE技術(shù)是一種Java網(wǎng)絡(luò)應(yīng)用技術(shù)的組合,包含有遠程方法調(diào)用(Remote Method I
23、nvocation,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/JTS)、XML處理API等通用服務(wù)以及Servlet、J
24、ava服務(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,然后再運行的,而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。 Servlet其實和傳
25、統(tǒng)的CGI程序和ISAPI、NSAPI等Web程序開發(fā)工具的作用是相同的,在使用Java Servlet以后,用戶不必再使用效率低下的CGI方式,也不必使用只能在某個固定Web服務(wù)器平臺運行的API方式來動態(tài)生成Web頁面。許多Web服務(wù)器都支持Servlet,即使不直接支持Servlet的Web服務(wù)器也可以通過附加的應(yīng)用服務(wù)器和模塊來支持Servlet。得益于Java的跨平臺的特性,Servlet也是平臺無關(guān)的,實際上,只要符合Jav
26、a Servlet規(guī)范,Servlet是完全平臺無關(guān)且是Web服務(wù)器無關(guān)的。由于Java Servlet內(nèi)部是以線程方式提供服務(wù),不必對于每個請求都啟動一個進程,并且利用多線程機制可以同時為多個請求服務(wù),因此Java Servlet效率非常高。但Java Servlet也不是沒有缺點,和傳統(tǒng)的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用輸</p><p> JSP(JavaServer
27、 Pages)是一種基于Java的腳本技術(shù)。在JSP 的眾多優(yōu)點之中,其中之一是它能將 HTML 編碼從 Web 頁面的業(yè)務(wù)邏輯中有效地分離出來。用 JSP 訪問可重用的組件,如 Servlet、JavaBean 和基于 Java 的 Web 應(yīng)用程序。JSP 還支持在 Web 頁面中直接嵌入 Java 代碼??捎脙煞N方法訪問 JSP 文件:瀏覽器發(fā)送 JSP 文件請求、發(fā)送至 Servlet 的請求。 1. JSP 文件訪問
28、 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)性,并且具有“一次編寫,處處運行”的特點。</p><p> 2.4 JavaBeans技術(shù)&
29、lt;/p><p> JavaBeans就是Java的可重用組件技術(shù)。ASP通過COM來擴充復(fù)雜的功能,如文件上載、發(fā)送email以及將業(yè)務(wù)處理或復(fù)雜計算分離出來成為獨立可重復(fù)利用的模塊。JSP通過JavaBeans實現(xiàn)了同樣的功能擴充。JSP對于在Web應(yīng)用中集成JavaBeans組件提供了完善的支持。這種支持不僅能縮短開發(fā)時間(可以直接利用經(jīng)測試和可信任的已有組件,避免了重復(fù)開發(fā)),也為JSP應(yīng)用帶來了更多的可
30、伸縮性。JavaBeans組件可以用來執(zhí)行復(fù)雜的計算任務(wù),或負責(zé)與數(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。由于其本身就是為服務(wù)器版的,適合用于搭設(shè)成為服務(wù)器端。要開發(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。各種軟件和工具安裝完成后,必須相應(yīng)的配置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兩大拳頭產(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)用需求增強了 Oracle Database 10g 的功能。下面是 Oracle Database 10g 的可用版本:</p>&l
34、t;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)用程序的可用性和可伸縮性需求的工具和功能。它包含了 Oracle 數(shù)據(jù)庫的所有組件
35、,并且能夠通過購買選項和程序包(本文稍后將加以說明)來進一步得到增強。</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ù)庫這些版本中的任意一個編寫的應(yīng)用程序?qū)⑴c其它的應(yīng)用程序一起運行,Oracle
36、數(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))自動完成的。這也是關(guān)系數(shù)據(jù)庫的主要優(yōu)點之一。 </p&
37、gt;<p> 早期關(guān)系操作有兩種表示方式:關(guān)系代數(shù)與關(guān)系演算。理論上,關(guān)系代數(shù)和關(guān)系演算被證明是完全等價的。</p><p> 關(guān)系代數(shù)通過對關(guān)系的運算來表達查詢,其操作對象是關(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)系數(shù)據(jù)庫系統(tǒng)的所有信息都應(yīng)該在邏輯一級上用表中的值這一種方法顯
38、式的表示;依靠表名、主碼和列名的組合,保證能以邏輯方式訪問關(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)更新;系統(tǒng)應(yīng)該對各種操作進行查詢優(yōu)化;無論數(shù)據(jù)庫的數(shù)據(jù)在存儲表示或
39、存取方法上作任何變化,應(yīng)用程序和終端活動都保持邏輯上的不變性;當(dāng)對基本關(guā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><p> 2.5.4對性能的一般規(guī)定<
40、/p><p><b> 一、硬件服務(wù)器</b></p><p> 硬件要求有一臺可以滿足日常辦公的PCServer,可以同時滿足全體員工同時在線使用該系統(tǒng)。公司內(nèi)部可以通過交換機、集線器等設(shè)備連接到硬件服務(wù)器上,通過瀏覽器訪問使用。</p><p><b> 二、軟件服務(wù)器</b></p><p>
41、; Tomcat6,本身就可以作為服務(wù)器使用,雖然性能上沒有WebLogic、Server、 Apache、WebSphere等大型服務(wù)器功能強大,但是,作為一個中小型公司OA的服務(wù)器,完全可以滿足日常訪問和使用的需求,并保持一定的性能。 </p><p> 2.5.5 其他專門要求</p><p> 《WEB校園二手交易系統(tǒng)》對數(shù)據(jù)庫操作不是很頻繁,可以使用SQLServer20
42、00、mySQL、Oracle等做數(shù)據(jù)庫服務(wù)器就均可以滿足用戶的訪問操作需求。</p><p> 2.5.6 對安全性的要求</p><p> 在配置服務(wù)器時會保障軟,硬服務(wù)器的的相對安全性?!禬EB校園二手交易系統(tǒng)》的使用者分為兩種權(quán)限的級別(管理員和普通用戶),但是這兩種權(quán)限與部門的權(quán)利體系并沒進行對應(yīng),可以減少程序復(fù)雜性,降低程序出錯和安全風(fēng)險。程序代碼的安全性通過封裝JavaB
43、ean 而減少原代碼泄露的危險。</p><p> 2.5.7 運行環(huán)境規(guī)定</p><p> 2.5.7.1設(shè)備及分布</p><p> 1)主機類型 </p><p> 服務(wù)器:2*P4 CPU以上/
44、2G內(nèi)存以上 </p><p> 客戶端:P4 CPU以上/128內(nèi)存以上</p><p> 2)網(wǎng)絡(luò)類型 </p><p> 基于企業(yè)內(nèi)部的Intene
45、t和廣域Internet</p><p> 3)存貯器容量 服務(wù)器:80G硬盤以上 客戶端:10G硬盤以上&l
46、t;/p><p> 2.5.7.2 支撐軟件</p><p><b> 操作系統(tǒng)</b></p><p> 服務(wù)器端:Windows98/Windows2k/WindowsNT/Linux/Unix</p><p> 客戶端:Windows98/Windows2k/WindowsNT/Linux/Unix</
47、p><p><b> 數(shù)據(jù)庫管理系統(tǒng)</b></p><p> 在服務(wù)器端使用oracle10g,也可以分布式應(yīng)用,使Web服務(wù)器和數(shù)據(jù)庫服務(wù)器分別在安裝兩臺計算機上。</p><p> 3) 其他支撐軟件</p><p> 客戶端瀏覽器在IE 4.0以上。</p><p> 2.5.7.
48、3 接口</p><p> 《WEB校園二手交易系統(tǒng)》的各個功能模塊之間通過相應(yīng)的JavaBean進行關(guān)聯(lián)和相互的數(shù)據(jù)調(diào)用。</p><p> 2.5.7.4 程序運行方式</p><p> 《WEB校園二手交易系統(tǒng)》獨立運行在服務(wù)器端,客戶端通過IE,或者NetScape瀏覽器進行訪問操作。</p><p><b>
49、3.系統(tǒng)設(shè)計</b></p><p><b> 3.1系統(tǒng)總體設(shè)計</b></p><p><b> 圖1 總體設(shè)計</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)安全可靠也是一個重要的設(shè)計原則。本系統(tǒng)的配置是采用Windows XP作為網(wǎng)絡(luò)操作系統(tǒng),Oracle 10g作為數(shù)據(jù)庫服務(wù)器。所以操作系統(tǒng)Windows XP的安全防護機制及數(shù)據(jù)庫O
51、racle 10g的安全機制是本系統(tǒng)采用的安全防護方式。</p><p><b> 3.2 概要設(shè)計</b></p><p> 3.2.1 系統(tǒng)功能模塊設(shè)計</p><p> 系統(tǒng)主要設(shè)計了用戶設(shè)置功能、發(fā)布信息功能、信息管理功能、搜索信息功能,留言功能,及系統(tǒng)管理功能模塊。</p><p> 用戶設(shè)置功能主要是
52、用戶注冊必須填寫所要求的個人資料,完成個人資料登入。</p><p> 發(fā)布信息功能主要是為已注冊用戶的服務(wù),登陸的用戶可以即時發(fā)布自己的二手商品信息,立刻就能瀏覽到。這是本系統(tǒng)的主要功能。</p><p> 信息管理功能是幫助已發(fā)表信息的的用戶管理自身發(fā)布的二手商品信息的同時也管理短消息信息。此項功能也主要是服務(wù)于注冊用戶。</p><p> 搜索信息功能是
53、面向所有登陸到本系統(tǒng)的人員的,采用模糊查詢的方法,篇歷所有二手商品信息,搜索出瀏覽者感興趣的內(nèi)容。</p><p> 留言功能分為兩種,一種是對某一二手商品信息進行留言,還可以查看該信息的其他留言;另一種是短消息的,可以在用戶與用戶之間,也可以在系統(tǒng)管理員與用戶之間進行短消息聯(lián)系。</p><p> 留言功能可在信息管理功能中進行相應(yīng)的管理。該項功能也主要是面向注冊用戶的。</p
54、><p> 系統(tǒng)管理功能是系統(tǒng)管理員對系統(tǒng)所有信息資源進行統(tǒng)一管理的一個模塊。只針對系統(tǒng)管理員帳戶,登陸方式采用了帳戶加驗證碼機制,提高該模塊的安全級別。</p><p> 3.2.2 系統(tǒng)結(jié)構(gòu)圖</p><p><b> 圖2 系統(tǒng)結(jié)構(gòu)圖</b></p><p> 3.2.3 數(shù)據(jù)流圖
55、 </p><p><b> 圖3 數(shù)據(jù)流圖</b></p><p><b> 3.3 數(shù)據(jù)庫設(shè)計</b></p><p> 3.3.1 數(shù)據(jù)庫需求分析</p><p> 對于數(shù)據(jù)庫的需求主要體現(xiàn)在對數(shù)據(jù)庫的提交信息、
56、更新信息、刪除信息、保存信息等。這些信息的存在都取決于各個功能模塊的對信息的需求。通過對功能模塊的具體操作,實現(xiàn)對數(shù)據(jù)庫中信息的輸入和輸出。所以,針對各個功能模塊的需求,設(shè)計如下的數(shù)據(jù)表和數(shù)據(jù)結(jié)構(gòu):</p><p> 用戶信息:包括用戶名、密碼、及用戶的相關(guān)信息等。</p><p> 商品信息表:包括信息序號、發(fā)布信息的用戶名,信息相關(guān)內(nèi)容等。</p><p>
57、 商品留言信息:包括信息序號、商品信息相關(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> 3.3.2 數(shù)據(jù)庫概要設(shè)計</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ù)庫詳細設(shè)計</p><p> 表1 (會員信息表)</p><p><b> 表2 (身份表)</b></p><p><b> 表3 (狀態(tài)表)</b></p><p><b> 表4 (權(quán)限)</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 程序設(shè)計</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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園二手交易系統(tǒng)詳細設(shè)計
- 本科畢業(yè)論文web校園二手交易系統(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)
- 校園二手交易網(wǎng)站畢業(yè)設(shè)計
- 大學(xué)生二手交易系統(tǒng)的設(shè)計與實現(xiàn)
- 校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)——商品評價功能【畢業(yè)論文】
- 校園二手交易系統(tǒng)的設(shè)計與實現(xiàn)——商品評價功能【畢業(yè)論文】
- 畢業(yè)設(shè)計論文-校園二手商品交易系統(tǒng)的設(shè)計與實現(xiàn)
- 校園二手交易系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 校園二手交易網(wǎng)站畢業(yè)設(shè)計論文
- 校園二手交易系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 畢業(yè)設(shè)計---二手交易網(wǎng)站設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計--基于web的校園二手交易平臺網(wǎng)站設(shè)計
- 基于bs結(jié)構(gòu)的二手交易系統(tǒng)的設(shè)計與實現(xiàn)
- 基于bs結(jié)構(gòu)的二手交易系統(tǒng)的設(shè)計與實現(xiàn)
- 同城二手交易系統(tǒng)畢業(yè)論文
- 基于php二手交易系統(tǒng)
評論
0/150
提交評論