逢 甲 大 學
資 訊 工 程 學 系 專 題 報 告
二手樂器拍賣論壇之建構
學 生:
劉志俊(四甲)
李明軒(四乙)
洪昆鼎(四丁)
林志漢(四丁)
指
導
教
授 : 黃 溪 春 老師
中華民國九十一年十一月
目錄
圖表目錄………Ⅸ 摘要………XV 第一章 研究動機與目的………1 1.1 研究動機………1 1.2 研究目的………1 1.3 相關網站介紹………2 1.4 專題報告架構………5 第二章 開發環境………6 2.1 開發之硬體環境………6 2.2 軟體環境………6 第三章 主要應用技術及軟體………8 3.1 主要應用技術………8 3.1.1 JSP………8 3.1.2 Java Script………10 3.1.3 SQL………10 3 . 2 主 要 應 用 軟 體 … … … 1 1 3.2.1 Dreamweaver MX………11 第四章 系統組織與架構……… ………144.1 出價子系統………15 4.2 販賣子系統………20 4.3 會員子系統………22 4.3.1 新會員註冊………24 4.3.2 會員資料修改………26 4.3.3 會員登入………29 4.3.4 忘記密碼………31 4.4 結標子系統………33 4.4.1 自動結標………34 4.4.2 立刻買結標………37 4.5 評價子系統………39 4.6 發表文章子系統………41 4.7 系統資料庫………45 4.7.1 資料庫資料表……… 45 4.7.2 資料表中欄位的………46 4.8 資料關係圖………48 4.8.1 主要頁面………48 4.8.2 出價部份……… 49 4.8.3 販賣部份……… 50
4.8.4 結標部份………51 4.8.5 會員部份………52 4.8.6 評價部份………53 4.8.7 發表文章部份………54 第 五 章 程 式 功 能 … … … 5 5 5.1 主要頁面程式功能………55 5.1.1 Main.jsp………55 5.1.2 AnyToMain.jsp……… 55 5.1.3 MainToUserDataShow.jsp………56 5.1.4 MainToUserDataEdit.jsp………57 5.2 新會員註冊程式功能………58 5.2.1 UserRegister.jsp………58 5.2.2 ConfrimRegister.jsp………60 5.2.3 UserRegisterDeal.jsp………61 5.2.4 CheckInput.jsp………62 5.2.5 CheckDeal.jsp………63 5.2.6 SendPswdDeal.jsp………64 5.2.7 ConfirmUser.jsp………66 5.3 會員修改資料程式功能………67
5.3.1 UserEditData.jsp………67 5.3.2 ConfirmEdit.jsp………68 5.3.3 UserRegisterDeal.jsp………69 5.4 會員登入程式功能………70 5.4.1 Login.jsp………70 5.4.2 LoginDeal.jsp………72 5.5 忘記密碼程式功能………73 5.5.1 SendPswd.jsp………73 5.5.2 SendPswdDeal.jsp………74 5.5.3 SendPswdState.jsp………76 5.6 會員資料程式功能………77 5.6.1 UserDataShow.jsp………77 5.7 販賣物品程式功能………78 5.7.1 seller.jsp………78 5.7.2 sellcheck.jsp………80 5.7.3 sellerdataget.jsp………81 5.8 出價程式功能………82 5.8.1 checkout-main-page.jsp………82 5.8.2 checkout-check.jsp………85
5.8.3 BuyDeal.jsp………86 5.8.4 flag.jsp………87 5.8.5 flag-failed.jsp………90 5.8.6 checkout-success1.jsp………90 5.8.7 checkout-success2.jsp………94 5.8.8 buynow.jsp………95 5.8.9 LoginDeal.jsp………96 5.8.10 SendBuyNow.jsp………97 5.8.11 buynowdeal.jsp………99 5.9 結標程式功能………100 5.9.1 EndDeal.jsp………100 5.9.2 EndSend.jsp………101 5.10 我的拍賣程式功能………104 5.10.1 MySell.jsp………104 5.11 發言程式功能………105 5.11.1 GoodsShow.jsp………106 5.11.2 GoodsShowDeal.jsp………106 5.11.3 DelPost.jsp………107 5.11.4 PostEdit.jsp、PostEditDeal.jsp………108
5.12 評價程式功能………109 5.12.1 Evaluation.jsp………109 5.12.2 Evaluationdeal.jsp………111 5.13 會員評價列表程式功能………112 5.13.1 Usereval.jsp………112 5.14 搜尋程式功能………114 5.14.1 Search.jsp………114 第六章 系統操作流程………115 6.1 登入………115 6.2 主要頁面………119 6.3 物品詳細列表………121 6.4 發言………123 6.6 拍賣物品………127 6.7 搜尋功能………130 6.8 修改會員資料………130 6.9 我要評價………131 6.10 會員評價列表………132 第七章 系統評估………133 7.1 會員區………133
7.1.1 功能上的評估………133 7.1.2 效能上的評估………134 7.1.3 安全上的評估………135 7.2 拍賣區………136 7.2.1 功能上的評估………136 7.2.2 效能上的評估………136 7.2.3 安全上的評估………136 7.3 出價區………137 7.3.1 功能上的評估………137 7.3.2 效能上的評估………137 7.3.3 安全上的評估………137 7.4 結標區………138 7.4.1 功能上的評估………138 7.4.2 效能上的評估………138 7.4.3 安全上的評估………139 7.5 評價區………139 7.5.1 功能上的評估………139 7.5.2 效能上的評估………139 7.5.3 安全上的評估………139
7.6 主要頁面區………139 7.6.1 功能上的評估………139 7.6.2 效能上的評估………140 7.7 發表文章區………140 7.7.1 功能上的評估………141 7.7.2 效能上的評估………141 7.7.3 安全上的評估………141 第八章 心得與展望………141 8.1 心得感想………141 8.2 未來展望………142 參考資料………144
圖表目錄
圖 2.1 伺服器運作關係圖………7 圖 4.1 系統組織架構圖………15 圖 4.2 出價子系統架構圖………17 圖 4.3 出價子系統流程圖………18 圖 4.4 販賣子系統流程圖………21 圖 4.5 會員子系統架構圖………24 圖 4.6 新會員註冊流程圖………25 圖 4.7 舊會員資料修改流程圖………28 圖 4.8 會員登入流程圖………30 圖 4.9 忘記密碼流程圖………32 圖 4.10 結標子系統架構圖………34 圖 4.11 自動結標架構圖………35 圖 4.12 自動結標流程圖………36 圖 4.13 立刻買結標流程圖………38 圖 4.14 評價子系統流程圖………39 圖 4.15 發表文章子系統架構圖………41 圖 4.16 發表文章子系統流程圖………42 圖 4.17 刪除流言流程圖………43圖 4.18 修改留言流程圖………44 圖 4.19 資料庫實際圖片 1………45 圖 4.20 資料庫實際圖片 2………46 圖 4.21 主要頁面的 E-R 圖………49 圖 4.22 出價部份的 E-R 圖………50 圖 4.23 販賣部份的 E-R 圖………51 圖 4.24 結標部份的 E-R 圖………52 圖 4.25 會員部份的 E-R 圖………52 圖 4.26 評價部份的 E-R 圖………53 圖 4.27 發表文章部份的 E-R 圖………54 圖 5.1 AnyToMain.jsp 程式流程圖………56 圖 5.2 MainToUserDataShow.jsp 程式流程圖………56 圖 5.3 MainToUserDataEdit.jsp 程式流程圖………57 圖 5.4 UserRegister.jsp 程式流程圖………60 圖 5.5 ConfrimRegister.jsp 程式流程圖………61 圖 5.6 UserRegisterDeal.jsp 程式流程圖………62 圖 5.7 CheckInput.jsp 程式流程圖………63 圖 5.8 CheckDeal.jsp 程式流程圖………64 圖 5.9 SendPswdDeal.jsp 程式流程圖………65
圖 5.10 ConfirmUser.jsp 程式流程圖………66 圖 5.11 UserDataEdit.jsp 程式流程圖………68 圖 5.12 ConfirmEdit.jsp 程式流程圖………69 圖 5.13 UserRegisterDeal.jsp 程式流程圖………70 圖 5.14 Login.jsp 程式流程圖………71 圖 5.15 LoginDeal.jsp 程式流程圖………73 圖 5.16 SendPswd.jsp 程式流程圖………74 圖 5.17 SendPswdDeal.jsp 程式流程圖………75 圖 5.18 SendPswdState.jsp 程式流程圖………77 圖 5.19 UserDataShow.jsp 程式流程圖………78 圖 5.20 Seller.jsp 程式流程圖………80 圖 5.21 Sellcheck.jsp 程式流程圖………81 圖 5.22 sellerdataget.jsp 程式流程圖………82 圖 5.23 checkout-main-page.jsp 程式流程圖………84 圖 5.24 checkout-check.jsp 程式流程圖………85 圖 5.25 BuyDeal.jsp 程式流程圖………86 圖 5.26 flag.jsp 程式流程圖………89 圖 5.27 flag-failed.jsp 程式流程圖………90 圖 5.28 checkout-success1.jsp 程式流程圖………93
圖 5.29 checkout-success2.jsp 程式流程圖………94 圖 5.30 buynow.jsp 程式流程圖………95 圖 5.31 LoginDeal.jsp 程式流程圖………97 圖 5.32 SendBuyNow.jsp 程式流程圖………99 圖 5.33 buynowdeal.jsp 的程式流程圖………100 圖 5.34 EndDeal.jsp 程式流程圖………101 圖 5.35 EndSend.jsp 程式流程圖………103 圖 5.36 MySell.jsp 程式流程圖………104 圖 5.37 GoodsShow.jsp 程式流程圖………106 圖 5.38 GoodsShowDeal.jsp 程式流程圖………107 圖 5.39 DelPost.jsp 程式流程圖………108 圖 5.40 PostEdit.jsp、PostEditDeal.jsp 程式流程圖………109 圖 5.41 Evaluation.jsp 程式流程圖………110 圖 5.42 Evaluationdeal.jsp 程式流程圖………111 圖 5.43 Usereval.jsp 程式流程圖………112 圖 5.44 search.jsp 程式流程圖………114 圖 6.1 登入頁面………115 圖 6.2 使用者填寫資料………116 圖 6.3 填寫資料有錯誤………116
圖 6.4 使用者確認資料………117 圖 6.5 寄發認證信………118 圖 6.6 系統寄發帳號密碼 E-mail………118 圖 6.7 系統主要頁面………119 圖 6.8 主要頁面分類項目………120 圖 6.9 物品分類列表………120 圖 6.10 物品詳細列表 1………121 圖 6.11 物品詳細列表 2………122 圖 6.12 出價紀錄畫面………122 圖 6.13 發言功能………123 圖 6.14 出價頁面………124 圖 6.15 出價確認………124 圖 6.16 出價成功………125 圖 6.17 立刻買………125 圖 6.18 立刻買確認訊息………126 圖 6.19 立刻買帳號密碼確認………126 圖 6.20 拍賣物品頁面 1………127 圖 6.21 拍賣物品頁面 2………128 圖 6.22 拍賣物品頁面 3………128
圖 6.23 拍賣物品確認………129 圖 6.24 拍賣物品照片確認………129 圖 6.25 搜尋功能………130 圖 6.26 修改會員資料………131 圖 6.27 我要評價………132 圖 6.28 會員評價列表………132
摘 要
隨著網路科技的蓬勃發展下,現代人使用網路的時間及依賴性已 經大幅的上升,越來越多的人每天都會使用 E-mail 接收或傳送信 件、藉由網路聊天、尋找資料等,然而隨者網路人口的快速增加,相 對的也提升了網路上的商機,使人們可以在網路上購買東西,也因為 電子商務的發展,人們的消費習慣將有所改變! 在我們製作專題時,我們經過了徹底的思考,思考什麼才是符合 現在社會環境趨勢的系統,因為在最初我們是計畫以使用 JSP 建立網 路論壇為目標,但是在經過蒐集資料之後,我們發現在論壇部分,以 現有的技術如 PHP、ASP 都已經將功能發展的很完整了,所以在經過 討論研究後,我們以一個新的思考方向出發。 我們注意到了現今網路上已出現許多二手拍賣的網站,如:奇摩 拍賣及 EBAY 網站,所以我們決定結合網路論壇,跳蚤市場,及拍賣 交易網站的優點,加上我們對樂器的認識與了解,建立了一套網路二 手樂器拍賣論壇系統。 根據我們的了解,現在台灣的網站中尚沒有一個功能完整而方便 的二手樂器拍賣網站,現有的二手樂器網站大多只有類似留言版的功 能,實在是十分的簡陋,而且各型各式的買家及賣家在網路上交易,有時的確讓人很不放心於買方或賣方的信用,所以在我們的系統中便 融合了拍賣制度、會員制度、會員評價制度,也可以讓賣方上傳圖片, 使其他使用者更清楚物品狀況,另外我們結合了論壇的優點,可以讓 使用者針對某一樣物品發表文章,假設對於物品有任何疑問便可以直 接在網站上詢問,提高了買方和賣方的權益。 許多玩音樂的朋友常常沒有足夠的預算去購買新的樂器,所以必 須尋求二手的商品,在網路上可以集合許多諸如此類的二手商品資 訊,自然是提供了使用者更多的便利性,加上完整的交易流程,相信 必能吸引許多音樂人透過本系統來交易。
第一章 導論
1. 1 研究動機 在網際網路迅速發展、電子商務日漸成熟的今日,人們 已經改變了購物及尋找資訊的方式,取而代之的將是網路所 能提供的迅速方便的購物方式。 也因為網路的普及,使得現在人們每天會使用電腦上網 的機會大增,自然也就爲網路提供了各個層面的資訊,對二 手樂器市場而言也就自然形成一個很大的消費流通市場。 有鑑於此,我們經過仔細的討論及研究發展出一套二手 樂器拍賣系統,採用會員制度,利用拍賣的手續,達成二手 買賣的交易。在開發過程中,我們也一直以我們過去在網路 上作二手樂器交易的經驗為基礎去提升使用者使用本系統時 的便利性及安全性。 1.2 研究目的 我們的專題是一套建立在網路上的拍賣網站,爲了要讓 買賣雙方能輕易且安全的透過我們的系統來達成交易,除了 一般拍賣功能不可或缺外,還需要一些方便使用者的特殊功 能,及關於交易的安全機制。過了認證後使用者便能依會員名稱密碼登入本系統。 2. 會員可以經由搜尋的功能來尋找自己所需求的物品。 3. 會員可對特定物品發表文章,若對該物品有任何疑問,可 以直接在底下發表文章,請賣方解答。 4. 交易方式採拍賣方式,而在競標的方式中有分為系統自動 出價方式及立刻買方式,讓想要購買的使用者有更多的選 擇。 5. 爲了要提升交易資料寫入的安全性,我們特別想出一套「搶 旗標」的方式,來避免交易過程中的錯誤。 6. 本系統提供了會員評價制度,可讓成功完成交易的買賣雙 方對彼此評價,作為其他使用者交易的參考資料。 7. 爲了讓使用者更方便觀察自己所拍賣中的物品,我們也作 了「我的拍賣」功能,讓使用者輕易追蹤到目前正在拍賣 中物品的情形。 1.3 相關網站介紹 因為我們在訂下這題目之前已經有參考了一些國內的二 手樂器相關網站及一些拍賣系統的網站,所以我們在這邊對
較知名的網站稍作介紹。 1. 飛 格 音 樂 / 樂 器 工 作 坊 http://flycall.com/forsale/music/ 這是一個版面較普通而且只有提供類似留言版功能的二 手網站,但是因為發表文章手續簡單、迅速,所以有許多人 會到此網站來尋找二手樂器或賣二手樂器。但是此網站因為 沒有會員制度,所以網站的管理比較缺乏,時常可以看到不 相關的文章或是不雅的文章。也因為沒有會員制度,所以買 方賣方不能知道要交易的雙方信用如何,會造成相當程度的 困擾! 2. 當 代 樂 手 音 樂 網 http://www.modernmusician.com/mm/mainpages/index.h tml 這個網站除了提供一些較專業的音樂相關知識,也提供 了類似論壇的功能,依據不同的樂器分了許多不同類別的討 論區,當然也提供了二手樂器的討論區。這個網站的最大好 處就當買賣雙方若對二手物品有任何疑惑或說明,可以在直 接在該物品討論文章下發表文章,比起前一網站要方便許 多。此網站也提供了會員制度,但功能很有限,並沒有評價
的制度,所以只能知道其他使用者發表文章篇數等訊息。 3. 奇 摩 拍 賣 http://tw.bid.yahoo.com/ 台灣 eBay 拍賣 http://www.tw.ebay.com/ 這兩個網站比起前面 2 個要大的多,整體功能也強上許 多,不但提供了會員制度,讓使用者有信用制度外也採用了 拍賣的手續,這是一種較新的功能,這種交易方式也讓買賣 雙方比較有保障,也讓所有使用者對二手商品交易有更大的 公平性。奇摩拍賣也提供了許多方便使用者的功能,如我的 拍賣追蹤、會員評價等功能,是一個功能較完整的網站。但 是因為此網站服務的項目太多,裡面所包含的二手商品量太 多、太雜,讓使用者不容易找到真正想要的二手商品,而且 對二手樂器部份分類定義也太過廣泛,再查詢時會對使用者 造成困擾。在發表文章方面還需要跳到其他頁面才能發言, 要觀看其他留言也是如此,造成使用者作不必要的多於動作。 在觀察了這些系統之後我們便決定採用了這三大類型的 二手網站的優點,融合了拍賣的手續、會員制度、評價制度、 論壇功能,設計出一套二手樂器拍賣網系統,希望能讓使用 者能透過本系統再作二手樂器交易時能更方便更安全!!
1.4 專題報告架構 本報告將在第二章-開發環境中說明在專題製作時所使 用的環境狀況。在第三章-主要應用技術及軟體中介紹我們專 題製作所採用的主要技術及所應用的開發軟體,並說明使用 的原因。在第四章-系統組織架構以系統組織圖及流程圖來說 明我們所製作的系統架構,並說明資料庫的關係。第五章-程 式功能,介紹實作的程式之具體功能說明並以程式流程圖輔 助說明。為了讓讀者能輕易了解本系統實際操作狀況,在第 六章-系統操作流程中也以圖片及文字來作詳細的介紹。在第 七章-系統評估中將分功能、效能、及安全性三方面來作作系 統的評估。在第八章-心得與展望中說明了我們在實作本專題 後的心得與對此專題在未來的展望。
第二章 開發環境
2.1 開發之硬體環境
CPU : AMD K7 1.2G CPU Memory : 256M RAM 網路頻寬 : T1 專線 硬碟:WD 40G ATA 133 螢幕解析度:1024x768 2.2 軟體環境 1.OS 平台 MS Windows 2000 SP3 2.Server 軟體 2.1 J2SDK 1.40 J2SDK 是由 Sun 所開發的 JSP 編譯軟件,我們所 使用的為 Java 2 SDK 1.40 版,Java 2 SDK 中的 Java Compiler 和 Java Debugger 主要是用來開 發程式的部分,Java Plug-in 則是讓瀏覽器 如 IE , NETSCAPE 執行 Applet 的軟體 。
2.2 Resin 2.6 & JDBC
端自瀏覽器提出要求時,會透過 Resin 伺服器對已 由 JDK 編譯完成的 JSP 程式來執行程式的運算,並 將運算結果透過 Resin 伺服器傳回給客戶端的瀏 覽器上顯示,如果 JSP 的運算有需要存取後端資 料庫的話,則會透過 JDBC 介面程式來對資料庫既 行存取,當資料存取運算後仍透過 Resin 伺服器將 結果傳回客戶端瀏覽器。 2.3 CmailServer CmailServer 是一套架設郵件收發伺服器的軟體。 各系統之間的關係如[圖 2.1] 客戶端瀏覽器 網頁要求 (REQUEST) Windows 2000 SP3 JDK編譯程式 Resin 伺服器 JSP程 式 JDBC介面程 式 資料庫
第三章 主要應用技術及軟體
3.1 主要應用技術
3.1.1 JSP
JSP(JavaServer Pages) 是 由 Sun Microsystem 公 司 於 1999/6推出的新技術,是基於Java Servlet以及整個java 體系的Web開發技術,是Servlet2.1 API的擴展。利用這一 技術可以建立先進、安全和跨平台的動態網站。這個技術 還在不斷的更新和優化。實際上JSP就是Java,只是它是一 個特別的Java語言,加入了一個特殊的引擎,這個引擎將 HTTP Servlet 這類別中的一些物件自動進行初始化好讓用 戶使用,而用戶不用再去操心前面的工作。同時這個引擎 又轉載入了<jsp:*、<%@ 等一系列的特別語法,使用這些 語法來進行一些特定的操作,如引用程式、URL轉向、 JavaBean引用等這樣的操作,這些都是由引擎自動幫你完 成初始化的工作。我們可以將這個引擎看作一個JSP到Java Servlet的產生器或是翻譯器,讓用戶不用再面對複雜的 Servlet中的還沒開始工作就要寫的幾十行代碼。
JSP 提供在 HTML 代碼中混合某種程式代碼、由語言引擎 解釋執行程式代碼的能力。但 JSP 代碼被編譯成 Servlet 並由 Java 虛擬機解釋執行,這種編譯操作僅在對 JSP 頁面 的第一次請求時發生。在 JSP 環境下,HTML 代碼主要負責 描述資訊的顯示樣式,而程式代碼則用來描述處理邏輯。 普通的 HTML 頁面只依賴於 Web 伺服器,而 ASP 、PHP、JSP 頁面需要附加的語言引擎分析和執行程式代碼。程式代碼 的執行結果被重新嵌入到 HTML 代碼中,然後一起發送給瀏 覽器。JSP 是面向 Web 伺服器的技術,用戶端瀏覽器不需要 任何附加的軟體支援。 使用 JSP 技術,Web 頁面開發人員可以使用 HTML 或者 XML 標識來設計和格式化最終頁面。使用 JSP 標識或者小腳本 來產生頁面上的動態內容。產生內容的邏輯被封裝在標識 和 JavaBeans 群組件中,並且綑綁在小腳本中,所有的腳 本在伺服器端執行。如果核心邏輯被封裝在標識和 Beans 中,那麼其他人,如 Web 管理人員和頁面設計者,能夠編 輯和使用 JSP 頁面,而不影響內容的產生。在伺服器端, JSP 引擎解釋 JSP 標識,產生所請求的內容(例如,通過存
取 JavaBeans 群組件,使用 JDBC 技術存取資料庫),並且 將結果以 HTML(或者 XML)頁面的形式發送回瀏覽器。這 有助於作者保護自己的代碼,而又保證任何基於 HTML 的 Web 瀏覽器的完全可用性。
3.1.2 JavaScript
JavaScript 可分成兩類:Client-SideJavaScript(客戶 端 JavaScript) 和 Server-SideJavaScript( 伺 服 器 端 JavaScript),而專題部分只使用到客戶端 JavaScript。 Netscape JavaScript Reference。顧名思義,客戶端可以是 我們所用的瀏覽器,客戶端 JavaScript 由於 JavaScript 在控制瀏覽器的方面有相當多便利的指令, 且使用 Java 語法,故在使用過程中非常便利。3.1.3 SQL
DB2 提 供 了 關 連 式 資 料 庫 查 詢 (StructuredQueryLanguage),是一種非常口語化、既易學又 易懂的語法。此一語言幾乎是每個資料庫系統都必須提供 的,用以表示關連式的操作,包含了資料的定義(DDL)以 及資料的處理(DML)。美國國家標準學會(ANSI)及國際標準化組織(ISO)在 1987 遵循一個幾乎是以 IBMSQL 為基礎 的標準關連式資料語言定義。 由在資料庫處理方面我們之所以選擇 SQL 是因為 SQL 幾 乎是所有資料庫通用的語法,其實用性也獲得大家的贊同, 而我們的專題是使用 ACCESS2000,故在欄位的指令方面便不 多做深入,因為所有的欄位都用 ACCESS 便可輕易架構。
3.2 主要應用軟體
3.2.1 DreamWeaver MX
在 編 寫 JSP 程 式 語 言 的 軟 體 方 面 我 們 小 組 選 擇 了 DreamWeaverMX 這套由 MacroMedia 公司所推出的網頁編輯軟 體,其實可編輯 JSP 語言的軟體隨處可見,如 WordPad、 UltraEditer 甚至是 NoteBook 都可以用來編寫 JSP,而為什 麼我們會挑上 DreamWeaver 來編寫呢?主要有下面幾點因素: 1. 對應 JSP 程式碼設計:DreamWeaverMX 版本已經有支援 JSP 的網頁編寫,也就是說當你使用 DreamWeaver 來編寫 JSP 時,你打出指令後 DreamWaver 會自動幫你將後面可使用的 延伸指令顯示出來,就好像你打入 out.之後,畫面便會列 出 println、print 等延伸指令,且還有其指令的用法介紹,如此便利之處讓我們編寫時不必猛 k 書找指令。 2. 多樣化顏色區別程式碼:由於編寫 JSP 時會融入 HTML 與 JAVASCRIPT 指令,而 DreamWeaver 會自動幫你以不同的顏 色來區分此區的程式碼是屬於哪種類別的,在指令與字串 之間也會以不同的顏色來區分,如此一來在編寫程式或 Debug 時能大大增加閱讀性,減少尋找程式碼位置的困擾。 3. 整合編輯網頁的功能:由於編寫 JSP 的同時也必須編寫 WEB 的畫面與欄位等部份,而 DreamWeaver 在這方面提供了便 利的工具及拖曳式的設計視窗,再加上針對 JSP 所設計的 網頁視窗模式、程式碼與網頁視窗共存模式、程式碼視窗 模式,此三種模式的配合讓我們在編寫 JSP 時能夠直接點 選網頁上的 JSP 物件後即時找出相對應的程式碼位置,省 卻了在龐大的程式碼中旬找出一小段程式碼的困擾。 4. 動態即時網頁運作:DreamWeaverMX 提供了使用者能夠在 編寫程式碼時,以快速鍵 F12 立即運作目前編輯的 JSP 網 頁,此功能便利之處使的我們不必每次都在網頁上打上冗 長的本機伺服器位址便能觀看程式運作結果,大大的加速 了我們編寫的速度。 5. 便利的屬性視窗:DreamWeaver 提供了屬性視窗的使用,每
當我們使用一個 HTML 指令時總要去設定一些細節的參 數,此時便得取翻閱書籍找出有哪些屬性可設定,但是在 DreamWeaver 之下,我們僅需在對應的指令屬性視窗上面 將自己想要的參數填入資料格中即可,既方便又快速。 以上幾點僅是針對編寫程式時的便利之處,DreamWeaver 本身所提供的其他功能更是多不勝舉,故我們才選擇以此套 軟體來作為編寫的工具。
第四章 系統組織與架構
在我們專題實作之前,原本目標是以 JSP 技術建立一個 功能完整的論壇,但是經過我們的討論及研究發現,在現在 網路上的論壇中功能已算十分完整,所以我們便轉換了一個 方向,打算結合論壇、二手樂器網站、及拍賣網站的優點集 合成一個二手樂器拍賣論壇。 我們主要是設計一套採用會員制度的二手樂器拍賣網 站,並有像論壇一般的發表文章系統,所以我們將在這一章 介紹我們所設計的系統中的架構及對子系統作更進一步的介 紹。 我們參考了一些比較知名的二手拍賣網站如 EBAY、奇摩 拍賣,及一些關於二手樂器的網頁如當代樂手網站、飛格音 樂/樂器跳蚤市場等,設計了我們的一套系統,我們所開發統 的組織結構如「圖 4.1」。
二手樂器
拍賣
出
價
子
系
統
販
賣
子
系
統
會
員
子
系
統
結
標
子
系
統
評
價
子
系
統
發
表
文
章
子
系
統
「圖 4.1」系統組織架構圖 在我們的主系統由六個子系統所組成,分別為出價子系 統、販賣子系統、會員子系統、結標子系統、評價子系統以 及發表文章子系統,我們將在這一章對這六大子系統詳細介 紹其架構、流程及其功能。4.1 出價子系統
出價子系統提供使用者欲購買物品所使用之功能,使用者在其檢視的物品頁面按下我要出價的連結後,會連到此出 價子系統。首先系統會先顯示出這各物品的基本資料及說明, 包括物品分類、物品名稱、物品數目、起標價格、現在價格、 出價增額;然後使用者必須選擇立刻買或者是參加自動出價 競標。 當賣方在拍賣時有設定立刻買價格時,買方就可以立刻 買此物品,然後確認立刻買訊息是否正確,即可用立刻買價 格直接購得此物品。 當買方選擇參加競標時,買方必須在您的最高出價金額 欄位輸入付得起的最高價格來參加競標,自動出價系統將代 表買方逐步增加出價金額,直到買方的最高出價金額為止。 買方的最高出價金額是不對其他會員公開的,接著確認物品 買賣訊息及確認買方身分,即可參加競標。 [圖 4.2] 為出價子系統的架構圖,包含了立刻買、自 動出價及競標模組。[圖 4.3]為出價子系統流程圖,指出整個 程式執行的流程及資料的傳遞方式。
出 價 子 系 統
自 動 出 價
立 刻 買
競 標
料 結標子 系統 我要出價 BuyGoods/ checkout-main-page.jsp 選擇模式 BuyGoods/ checkout-check.jsp 會員固定資 自動出價 BuyGoods/ Buynow.jsp 立刻買 會員固定資料 BuyGoods/ Buynowdeal.jsp BuyGoods/ flag.jsp 搶旗標 BuyGoods/ checkout-success1.jsp 成功 失敗 BuyGoods/ checkout-success2.jsp 出價記錄 BuyGoods/ LoginDeal.jsp BuyGoods/ LoginDeal.jsp BuyGoods/flag-failed.jsp [圖 4.3 出價子系統流程圖] [ 圖 4.3] 為 出 價 子 系 統 流 程 圖 , 使 用 者 一 進 入 到
「checkout-main-page.jsp」頁面中即可選擇要立刻買或是 參加自動出價(就是參加競標) 。 若是參加競標,則會到 checkout-check.jsp 頁面,這裡主 要是讓使用者確認物品訊息以及讓使用者輸入帳號密碼的頁 面,再來就連到 LoginDeal.jsp 去檢查使用者身份,然後再連 到 flag.jsp 去搶旗標,當三個旗標都為 1 時才可以讓使用者 買賣成功並存入出價記錄資料庫,若遇到有旗標已經被改成 1 了,就連到 flag-failed.jsp 讓使用者知道有人正對此物品出 價成功,並將資訊存入資料庫中,當搶旗標成功,使用者就可 以 將 這 次 出 價 的 記 錄 存 到 出 價 紀 錄 資 料 庫 中 (checkout-success1.jsp),並顯示出這次出價成功的訊息給 使用者(checkout-success2.jsp)。 若是選擇要立刻買,則連到 Buynow.jsp 去將物品基本資料顯 示 給 使 用 者 確 認 , 然 後 輸 入 使 用 者 帳 號 密 碼 , 然 後 連 到 LoginDeal.jsp 去檢查使用者身份,最後到 Buynowdeal.jsp 去將這次的交易導入結標子系統裡的 BuyDeal.jsp。
4.2 販賣子系統
販賣子系統提供使用者欲拍賣物品所使用之功能,使用 者必須輸入拍賣物品的必備相關資料,以及一些配合本系統 特殊功能所需要的選擇性填入資料,經過確認畫面之後選擇 要修改或是確定送出,若是確定送出,系統會依拍賣者所選 擇之拍賣物品類別寫入相對應之資料庫中。如拍賣者若選擇 拍賣「木吉他、電吉他類」,系統便將資料寫入「賣方物品資 料」的資料表中。若是拍賣者在確認畫面選擇修改資料,系 統將跳回資料填寫的頁面讓拍賣者更動資料。 另外,為了使其他使用者能更清楚拍賣者所拍賣物品的 狀況,本系統也提供了拍賣者上傳拍賣物品的照片,使其他 使用者在競標前能有更多的參考資料。 [圖 4.4]為販賣子系統流程圖,指出整個程式執行的流程及 資料的傳遞方式。販 賣 物 品 資 料 S e llG o o d s / s e lle r .js p S e llG o o d s / s e llc h e c k .js p 確 認 資 料 S e llG o o d s / s e lle r d a ta g e t.js p 完 成 賣 方 物 品 資 料 確 認 修 改 [圖 4.4 販賣子系統流程圖] [圖 4.4]為販賣子系統流程圖,使用者一進入「seller.jsp」 頁面中填寫資料後,尚有一個讓使用者確認所填入的商品訊 息頁面「sellcheck.jsp」,因為使用者在填入資料時,可能 會因為不注意或是疏忽而誤填了資料,所以我們在本系統中 增加了一確認畫面,讓使用者可以清楚的看到自己剛剛所填 入的商品訊息,若是確定便送到「sellerdataget.jsp」的頁
面中處理,將資料依使用者所選擇之物品類別分別寫入不同 的賣方物品資料表中,此時也就代表成功完成了販賣物品的 動作,系統便會將此商品訊息依物品類別顯示在相對應的物 品列表中,讓其他使用者查看、發表文章或是參與競標。 另外還有一項比較方便功能就是在欲販賣物品的使用者 要選擇上傳圖檔片時的機制,為了讓使用者不必開啟其他視 窗作上傳照片的動作,我們將上傳的部分和其他要填寫的資 料都寫在「seller.jsp」之下,並且讓使用者能輕易的完成 上傳手續;然後在「sellcheck.jsp」中也作了上傳圖片的預 覽,讓使用者不會搞混了所要上傳的圖片,增加了是使用者 賣物品時填寫資料的可靠性。
4.3 會員子系統
會員子系統的部分共分為三項功能,分別是: 新會員註冊 : 該功能提供使用者加入該拍賣市場的會員,而 也只有會員才能有進入市場並且使用市場所提供之功能的權 限,進入註冊頁面時我們將要求使用者填寫一些 基本資料,這些資料將包含密碼及日後達成交易所必須提供買賣雙方聯絡的方式。 為了確保使用者資料的來源可靠性,系統在使用 者填寫資料之後將會發送一封認證 MAIL,讓使 用者在接收到 MAIL 之後利用系統所提供的認證 功能來通過認證的條件,如此一來系統也可以確 認該 MAIL 確實為該使用者所能接收的信箱。 會員登入 : 已經在市場註冊過的會員欲進入市場時必須先 填寫個人專屬的帳號與密碼,這兩項資料在註 冊時由使用者自行決定,填寫之後系統將會比 對資料是否有存在系統資料庫之中,一但符合 便允許使用者進入市場行使買賣功能,由於市 場的功能關係到拍賣價格的變動,故市場並不 提供一般論壇所提供的自動登入功能,以避免 被他人登入並惡意進行買賣而破壞會員的名 聲。 忘記密碼 : 註冊完成的會員可能在不小心的情況下遺失或 忘記密碼這時候該使用者便可使用此項功能來 取回已遺失的密碼,經由帳號與身分證字號的 填寫,系統將會發送一封內含使用者密碼的郵
件至該使用者個信箱,如此一來只有該信箱的 主人才能夠得知密碼,已達到保密的功能。 [圖 4.5] 為會員子系統的架構圖,包含了新會員註冊、 會員登入及忘記密碼 3 個模組。
會員子系統
新會員註冊
舊會員登入
忘記密碼
[圖 4.5 會員子系統架構圖]
4.3.1 新會員註冊:
新會員註冊提供使用者加入市場的會員制度,以便能得 到進入市場的權限並行使市場所提供的買賣功能。要註冊成 為會員,市場將會要求使用者填寫基本資料,這包含了帳號 密碼等基本資訊及連絡方式等日後交易達成必須傳達給買賣 雙方以資聯絡的相關訊息。 使用者資料填寫完後會經過一確認頁面,在此頁面使用 者可以總覽先前填寫的資料,再一次比對是否有填寫錯誤的 部分,一但發現錯誤可再返回資料填寫頁面再次修改,或者直
接將資料確定並且送出。 在使用者確認資料並且送出後,系統將會根據使用者所填 寫的 E-MAIL 帳號自動發送一封含有認證功能的郵件至使用者 信箱,使用者必須先經由此認證功能讓系統知道該信箱確實 市該使用者可接收的信箱,若使用者無法接收到此信箱,則無 法行認證功能,此時雖已註冊,但是未認證的帳號系統仍舊 不提供進入的權限及功能的行使權力。 [圖 4.6]新會員註冊流程圖,指出整個程式執行的流程 及資料的傳遞方式。
[圖 4.6 新會員註冊流程圖]
選 擇 註 冊 U s e r R e g i s t e r / U s e r R e g i s t e r . j s p 確 認 資 料 U s e r R e g i s t e r / U s e r R e g i s t e r D e a l . j s p 成 功 修 改 會 員 固 定 資 料 完 成 U s e r R e g i s t e r / S e n d P s w d D e a l . j s p 認 證 手 續 會 員 固 定 資 料在會員子系統中,我們可由[圖 4.6]為新會員註冊流程 圖,在使用者選擇了註冊該項功能連結後,系統將連結到 「UserRegister.jsp」此頁面,而此頁面便可以提供使用者 填寫一些相關的基本資料。如帳號、密碼、E-MAIL、住址、 身分證字號等相關訊息,待填寫完畢之後選擇確認,系統便 會連結到確認資料畫面「UserConfirm.jsp」,此頁面則是提 供使用者再一次確認先前所填寫的資料是否有錯誤。若欲修 改資料,則選擇返回選項返回「UserRegister.jsp」再一次 修 改 資 料 , 或 者 選 擇 確 認 畫 面 結 至 「UserRegisterDeal.jsp」,在此頁面系統會將使用者所填寫 的資料寫入資料庫中,並且經由郵件發送系統發送一封內含 認證功能的認證信件至使用者註冊時所填寫的信箱中,並告 知使用者收取其信箱中的認證信且點選該項認證功能,如此 才可以通過系統認證並真正得到進入市場的權限及行使買賣 功能的權力。
4.3.2 會員資料修改
舊會員資料修改提供會員想要修改一些個人基本資料時 所使用之功能,使用者必須先登入系統後在主要頁面才可選擇該項功能選項,但是此功能並非提供所有註冊時所填寫的 資料修改權限,而只提供如電話、住址、等一些可變動性的 資料修改,如身分證字號等相關資料由於具有個人專屬性 質,所以系統將不提供修改的權限。 [圖 4.7]為舊會員資料修改流程圖,指出整個程式執行的 流程及資料的傳遞方式。
選 擇 修 改 資 料
U serEditD ata/
U serEditD ata.jsp
確 認 資 料會 員 固 定
資 料
U serEditD ata/
U serEditD ataD eal.jsp
成 功 修 改
會 員 固 定
資 料
資 料 修 改 完 成
[圖 4.7 會員資料修改流程圖]
[圖 4.7]為會員資料修改流程圖,會員在經由主要功能 頁 面 選 擇 修 改 功 能 選 項 之 後 , 系 統 將 連 結 至 「UserEditData.jsp」,此頁面將會把使用者註冊時部份可修改的資料列表出來,讓使用者能夠直接看到其註冊時所填寫 的資料,並且加以修改,修改之後使用者按下確認鈕,系統 將連結至「UserEditConfirm.jsp」此頁面,此頁面將會把使 用者在前一頁面修改後的資料詳細列出,讓使用者再一次確 定資料是否有填寫錯誤,若是選擇返回功能選項,則系統便 會將使用者導回「UserEditData.jsp」讓使用者再一次修改, 若選擇確認,則系統連結至「UserEditDeal.jsp」,在此系統 便會將使用者修改過後的資料寫入系統資料庫中,完成修改 程序。
4.3.3 會員登入
會員登入提供已註冊會員進入市場行使市場所提供的買 賣功能,使用者必須先輸入註冊時所填寫的帳號與密碼,待 系統比對確認無誤且確定此使用者已經通過認證時,該使用 者便可以進入市場的主要功能畫面。 [圖 4.8]為會員登入流程圖,指出整個程式執行的流程及 資料的傳遞方式。
LOGIN/LOGIN.JSP
LOGIN/
LOGINDEAL.JSP
檢查資料登入成功
資料正確 資料不符合會員固定
資料
[
[圖 4.8 會員登入流程圖]
[圖 4.8]為會員登入流程圖,由「Login.jsp」此頁面讓 使用者填寫帳號與密碼,接著由「LoginDeal.jsp」此頁面來 處理使用者所填入之帳號密碼,並且檢查使用者是否有通過 認證,若此兩項檢查都沒有錯誤,則將使用者導入市場的主要 功能頁面,若不正確則強迫使用者回到「Login.jsp」再次填 寫帳號與密碼。
4.3.4 忘記密碼
會員子系統-忘記密碼為提供使用者再註冊之後不小心 將碼遺失或忘記時,取回密碼所使用之功能,使用者必須在 註冊之後才能夠使用該項功能選項。 經由市場的登入頁面可以連結到密碼補送的功能頁面,在 該頁面系統將要求使用者填寫註冊時所使用的帳號與身分證 字號,再經由系統比對資料無誤的情況下,系統將會透過資 料庫取出使用者的 E-MAIL 信箱,並且自動發送一封內含使用 者密碼的郵件至使用者信箱,之後使用者便可以接收該郵件 並取回專屬的密碼。 [圖 4.9]為忘記密碼流程圖,指出整個程式執行的流程及 資料的傳遞方式。
忘 記 密 碼
SendPswd/
SendPswd.jsp
比 對 資 料SendPswd.jsp/
SendPswdDeal.jsp
成 功 資 料 錯 誤會 員 固 定
資 料
完 成
會 員 固 定
資 料
[圖 4.9 忘記密碼流程圖]
[圖 4.9]為忘記密碼的流程圖。使用者必須在市場登入 頁 面 的 功 能 處 選 擇 忘 記 密 碼 功 能 連 結 , 連 結 到
「SendPswd.jsp」。在此頁面我們將要求使用者填寫註冊時所 填寫的帳號與身分證字號,之後經由「SendPswdDeal.jsp」, 系統將會比對使用者所填入的資料是否符合系統資料庫中的 會員資料。在符合條件的情況下系統將會藉由郵件發送系統 將內含使用者密碼的郵件傳送到使用者的信箱。
4.4 結標子系統
結標子系統的部分共分為兩項部分,分別是: 自動結標 : 此功能是針對一般自動競標所完成之交易,當拍 賣物的拍賣期限到達時,系統便會將此筆資料抽 出資料庫處理,並針對物品拍賣情況做出不同的 處置。 立刻買 : 此功能是針對使用者對該拍賣物品行使立刻買功 能選項作出處理,由於立刻買代表交易一定可以 完美達成,故系統此時便不需做出任何判斷,只 需要將雙方基本資料寄送出去即可。 [圖 4.10] 為結標子系統的架構圖,主要是列出該子系統 所包含的模組。結 標 子 系 統
自 動 出 價
立 刻 買
競 標
定 時 自 動
結 標
交 易 成 功
[圖 4.10 結標子系統架構圖]
4.4.1 自動結標
自動結標提供系統在每日的午夜時自動執行是否有拍賣 物品已完成交易,並且適當的作出是否寄送郵件及寄出何種性質郵件的功能。 此系統並非建構在主要市場系統之下,而是獨立出來的 一個小系統,管理員必須手動去開啟此一系統,之後每經過 一天該系統便會處理已完成之交易。 [圖 4.11] 為自動結標的架構圖,主說明自動結標包含的 模組。[圖 4.12]為自動結標流程圖,指出整個程式執行的流 程及資料的傳遞方式。
系統自動結標
達底價寄送雙
方MAIL
未達底價告知
賣方MAIL
[圖 4.11 自動結標架構圖]
ENDDEAL/
EndDeals.jsp
拍賣物
品資料
檢查拍賣期限 拍賣期限到期ENDDEAL/
EndSend.jsp
會員固定
資料
拍賣物品
資料
檢查底價ENDDEAL/
EndSend.jsp
ENDDEAL/
EndSend.jsp
出價>底價 出價<底價結標完成
[圖 4.12 自動結標流程圖]
[圖 4.12]為自動結標流程圖,管理員必須先手動開啟 「EndDeal.jsp」此頁面,在此頁面可設定執行拍賣偵測的時
間間隔,當管理員將時間間隔設定好之後系統便會倒數計 時,直到間隔時間到達時該頁面便會將所拍賣物品的拍賣期 限減少一天並連結至「EndSend.jsp」。 「EndSend.jsp」此頁面則負責偵測所有拍賣物品的拍賣期限 是否已經到達期限,並且針對到達期限的拍賣項目做出判 斷,判斷其最高出價是否有超過賣方所訂下的底價標準。一 但高於底價,則代表此項交易完成,系統便會寄送買賣雙方的 個人資訊至其信箱,以便利雙方進一步連絡;若未到達底價, 則代表該項交易雖然有人出價競標,但是卻沒有符合賣方所 希望的價位,於是交易失敗,此時系統將會寄送郵件告知賣 方,讓賣方知道在拍賣期限之內其交易並未完成。
4.4.2 立刻買結標
立刻買為建構在立刻買之下的系統功能項,當會員針對 某樣拍賣物品行使立刻買選項之後,一但交易完成,系統便會 自動進入立刻買的功能。在此功能中系統將會根據拍賣物品 買賣雙方個人資料取出雙方的姓名、聯絡電話、等基本資料, 經由 MAIL 傳送給買賣雙方,再讓買賣雙方經由聯絡電話的方[圖 4.13]為立刻買結標流程圖,指出整個程式執行的流 程及資料的傳遞方式。
購買成功
BuyGoods/
SendBuyNow.jsp
會員固
定資料
拍賣物
品資料
完成
ENDDEAL/
EndSend.jsp
[圖 4.13 立刻買結標流程圖]
[圖 4.13]為立刻買結標流程圖,使用者點選立刻買達成 交易之後,系統便會連結至「SendBuyNow.jsp」此功能頁面, 在此頁面主要是從資料庫中取出買賣雙方的個人資料,之後 連 結 至 「 EndSend.jsp 」 頁 面 , 此 頁 面 便 會 將 從 「SendBuyNow.jsp」中所取得的買賣雙方個人資料以 E-Mail 的方式寄送給買賣雙方。4.5 評價子系統:
在我們所設計的系統中有一項對買賣雙方都極有幫助的 功能-會員評價,因為一般人常常對網路上的交易感到不放 心而感到怯步,因為不清楚買方、賣方的信用度,所以常常 無法判斷是否要購買網路上的商品。在經過我們的研究及參 考國內外大型拍賣網站之後我們加上了關於會員評價的功 能,作為買賣雙方交易的另一項參考依據。 [圖 4.14]為評價子系統的流程圖,是說明程式執行的流 程及資料傳遞的方式。 交 易 完 成 E v a l u a t i o n / E v a l u a t i o n . j s p E v a l u a t i o n / E v a l u a t i o n d e a l . j s p 評 價 完 成 評 價 判 斷 表 會 員 可 修 改 資 料[圖 4.14 評價子系統流程圖]
發現到當使用者(包含買賣雙方)在成功完成交易動作後,系 統會在「評價判斷表」的資料表中紀錄成功完成交易的買賣 雙方,讓買賣雙方在完成交易後可以在主要頁面中的「我要 評價」功能中連到評價頁面「Evaluation.jsp」,對曾經完成 過 交 易 的 另 一 使 用 者 作 評 價 的 動 作 , 經 過 「Evaluationdeal.jsp」的處理,將資料寫入使用者的「會 員可修改資料」資料表中,此時便完成了評價動作。 在「Evaluation.jsp」頁面中是採用動態顯示可以評價 的對象為設計方式,以確保使用者在成功完成交易之後能對 正確的另一使用者作評價,不會讓使用者可以亂對別人評價 的機制,以確保評價制度的信用。 因為我們注意到了在國內的二手樂器網站中尚沒有看到 有加入會員評價的功能,所以我們在作交易時必須十分小 心,但是在我們的系統中加入了此功能,希望能讓使用者在 作交易以前有可以參考的依據,使用者可以在主要頁面中的 「會員評價列表」中查詢到所有使用者的評價,也因為會員 與會員間必須經過成功完成交易的手續才能對成功完成交易 的對方評價,所以使用者也會比較注重自己的評價和信用, 相信這項功能必能提高使用本系統的信任和使用度!
4.6 發表文章子系統
當使用者對所拍賣的物品有疑問或者是其他建議時,可 使用發言系統來發言,發言後的文章可以再修改,當此篇文 章是你所發表的話,你可以修改或刪除此篇你覺得不當的留 言,而且也只有原發表者有刪除和修改的權限,當點選編輯 時,編輯畫面會有原先發言的內容,當修改完畢後送出會將 資料庫內原先的發言更新成已修改過的。刪除則直接將資料 庫內的資料刪除。[圖 4.15 ]
為發言子系統架構圖,發言後 會有刪除跟修改兩個功能可使用。發言子系統
發表文章
刪除
修改
[圖 4.16]
為發表文章子系統的流程圖,GoodShow.jsp 會顯示目前物品的圖片及詳細資料,下方會有已經對此物品 發表過的討論,使用只可以在下方填入想發表的文字,然後 選擇確定,然後會交給 GoodShowDeal.jsp 處理,將內容寫進 資料庫,然後在跳回 ShowGoods.jsp 顯示。/GoodsShow/
GoodsShow.jsp
輸入發言
選擇
清除
GoodsShow/
GoodsShowDeal.jsp
確定
/GoodsShow/
GoodsShow.jsp
發言
[圖 4.16 發表文章子系統流程圖]
[圖 4.17]
為刪除留言的流程圖,當使用者想刪除發言 時,選擇刪除,系統會依照發表文章的編號將此筆刪除,然 後跳回 GoodsShow.jsp。/GoodsShow/
GoodsShow.jsp
確定刪除
DelPost.jsp
是
否
討論
/GoodsShow/
GoodsShow.jsp
[圖 4.17 刪除留言流程圖]
[圖 4.18]
為修改留言流程圖,當使用者想修改自己所到編輯的畫面 EditPost.jsp,編輯的畫面會有此篇的內容, 當編輯完成時確定送出,會到 EditPostDeal.jsp 處理將資料 更新成編輯後的內容,然後回到 GoodsShow.jsp。
/GoodsShow/
GoodsShow.jsp
EditPost.jsp
完成
否
EditPostDeal.jsp
討論
/GoodsShow/
GoodsShow.jsp
[圖 4.18 修改留言流程圖]
4.7 系統資料庫介紹
4.7.1 資料庫資料表介紹
我們的專題資料庫部份建立是使用 Macrosoft 的 Access 2000,保含了主要頁面資料、賣方物品資料(有 8 個類別)、 付費交易方式、出價紀錄(有 8 個類別)、討論資料(有 8 個類 別)、會員固定資料、會員可修改資料、評價判斷表及完成交 易之記錄的資料表,其中賣方物品資料、交易方式、付費方 式、討論資料的資料表又因為我們將樂器分為 8 大類(吉他、 貝斯、效果器、音箱、鋼琴、鼓、管樂、其他)所以這些資料 表有都分成了 8 大類別作記錄,以方便系統管理。[圖 4.19] 及[圖 4.20]就是我們資料庫中資料表的實際情形。[圖 4.20 資料庫實際圖片 2]
4.7.2 資料表中欄位的介紹
1. 主要頁面資料:包含的欄位有識別碼、物品名稱、販賣 商品數、最後販賣者及最後發表時間。 2. 賣方物品資料(8 大類):包含的欄位有識別碼、類別編 號、用戶帳號、物品名稱、最佳交易地點、物品數目、 起標價格、出價增額、拍賣期限、物品描述、是否願意 運到其他國家、直接購買價、底價、發表時間、Picture1、 Picture2、Picture3、目前價格、目前最高出價、已被出價次數、最高出價者、Flag1、Flag2、Flag3。 3. 付費交易方式(8 大類):包含的欄位有類別編號、物品 編號、付費方式現金交易、付費方式支票匯票、付費方 式轉帳、付費方式信用卡、付費方式貨到付款、交貨方 式相約、交貨方式自行、交貨方式先付款後交貨、交貨 方式先交貨後付款、交貨方式一手交錢一手交貨、交貨 方式買方付運費、交貨方式賣方付運費。 4. 出價紀錄(8 大類):包含的欄位有類別編號、物品編號、 目前最高出價、當時目前價格、出價者、最高出價者、 出價時間。 5. 討論資料(8 大類):包含的欄位有文章編號、用戶帳號、 物品編號、時間、發言。 6. 會員固定資料:包含的欄位有識別碼、用戶帳號、密碼、 會員編號、用戶姓名、身分證字號、性別、篇數、出生 日期、認證。 7. 會員可修改資料:包含的欄位有用戶帳號、電子郵件、 個人網頁、住址、職業、個人簽名、行動電話、通訊電 話、評價、郵遞區號、居住國家。 8. 評價判斷表:包含的欄位有可評價者、被評價者。
9. 完成交易之記錄:包含的欄位有物品類別、物品編號、 賣方帳號、買方帳號、物品名稱、物品數目、物品描述、 起標價格、出價增額、直接購買價、底價、發表時間、 拍賣期限、交易完成時間、限制買方最低評價、允許提 前結標、 Picture1、Picture2、Picture3、完成交易價格。
4.8 資料關係圖
4.8.1 主要頁面
主要頁面的 E-R 圖如[圖 4.21],主要頁面的資料是對應 到主要頁面資料表的,每一類別樂器對應資料庫讀取了販賣 商品數、最後販賣者及最後發表時間欄位的資料,然後顯示 出來。在主要頁面下中又包含了物品的分類列表,對應到賣 方物品資料庫,且在物品詳細列表把賣方物品資料庫中把用 戶帳號、物品名稱、最佳交易地點、物品數目、起標價格、 出價增額、拍賣期限、物品描述、是否願意運到其他國家、 直接購買價、底價、Picture1、Picture2、Picture3、目前 價格欄位顯示出來。主要頁面 物品列表 物品詳細列表 主要頁面資料表 賣方物品資料 資料表 對應 包含 對應 對應 包含 1 1 1 1 n n n n n n
[圖 4.21 主要頁面的 E-R 圖]
4.8.2 出價部份
出價部份的 E-R 圖如[圖 4.22],買賣雙方都要是屬於會 員資料資料表裡的會員,對應使用者帳號,讀取出價所需之 欄位。買方在對賣方物品資料表裡的某一物品出價,該物品 在被出價後再寫到對應該物品的出價紀錄資料表裡。買方
會員資料
資料表
賣方
賣方物品資料
資料表
物品
出價記錄
屬於
出價
對應
包含
拍賣
屬於
n
n
n
1
n
1
1
n
1
n
n
n
[圖 4.22 出價部份的 E-R 圖]
4.8.3 販賣部份
販賣部份的 E-R 圖如[圖 4.23],買賣雙方都要是屬於會 員資料資料表裡的會員,對應使用者帳號,讀取拍賣物品所 需之欄位。賣方所拍賣的物品將寫到賣方物品資料表中。賣方
會員資料
資料表
買方
物品
賣方物品資料
資料表
屬於
拍賣
存入
出價
屬於
n
n
1
n
n
n
n
n
n
n
[圖 4.23 販賣部份的 E-R 圖]
4.8.4 結標部份
結標部份的 E-R 圖如[圖 4.24],買賣雙方都要是屬於會 員資料資料表裡的會員,對應使用者帳號,讀取結標時所需 之欄位。當買方競標成功而奪標完成交易後,該物品會移到 對應的完成交易紀錄的資料表中。賣方
會員資料
資料表
物品
買方
完成交易紀錄 紀錄表屬於
拍賣
競標成功對應
屬於
n
n
n
1
1
1
n
1
[圖 4.24 結標部份的 E-R 圖]
4.8.5 會員部份
會員部份的 E-R 圖如[圖 4.25],在會員的部分,分成了 2 個資料表:會員固定資料表和會員可修改資料表,當一使用 者成為會員時,資料會相對應的寫到這兩個資料表中。 會 員 會 員 固 定 資 料 資 料 表 會 員 可 修 改 資 料 資 料 表 對 應 對 應 n n n n[
圖 4.25 會員部份的 E-R 圖]
4.8.6 評價部份
評價部份的 E-R 圖如[圖 4.26],當成功完成交易時評價 判斷表會將買賣雙方使用者的號寫入,所以使用者要做評價 時,系統會依不同的使用者對應到評價判斷表中顯示出使用 者可以評價的對象,並且將評價的結果寫入會員可修改資料 資料表中。評價判斷表
資料表
可評價的賣方
可評價的買方
會員資料資料
表
對應
存入
評價價
對應
1
1
1
存入
n
1
n
1
n
n
1
[圖 4.26 評價部份的 E-R 圖]
4.8.7 發表文章部份
發表文章部份的 E-R 圖如[圖 4.27],使用者對應到會資 料資料表裡的會員,對應使用者帳號,讀取發表文章所需之 欄位。在賣方物品資料表中的某一物品之下發表文章,並將 資料寫入討論資料表中。使用者
文章
討論資料表
會員資料
資料表
物品
賣方物品資料
資料表
屬於 發表 屬於 對應 對應 屬於n
n
n
n
n
n
1
1
1
n
[圖 4.27 發表文章部份的 E-R 圖]
第五章 程式功能與
5.1 主要頁面程式功能
在這一部分的子系統中分為 4 個程式,每一項程式的說 明及程式流程如下: 5.1.1 Main.jsp 此程式是整個市場的中心,在這個頁面上提供了:會員 資料修改、會員資料瀏覽、我的拍賣、販賣物品、搜尋、網 頁說明、評價等功能項,當會員從登入頁面進入後會直接到 達此頁面,除了功能列表之外還提供了各類別拍賣物的最新 商品介紹與各類別物品的連結項。 5.1.2 AnyToMain.jsp 此程式是所有程式返回主要頁面時必須先經過的程式, 其功能是將主要頁面所要顯示的各種資訊從資料庫中抓取出 來,再將這些資訊傳送到 Main.jsp。[圖 5.1]為 AnyToMain.jsp 程式流程圖。開 始 抓 取 M a i n 頁 面 須 顯 示 資 料 主 要 頁 面 資 料 連 結 至 M a i n . j s p 結 束 [圖 5.1 AnyToMain.jsp 程式流程圖] 5.1.3 MainToUserDataShow.jsp 此程式是針對主要頁面連結至會員資料瀏覽的連結所設計 的,此程式會將會員資料頁面所要呈現的所有資料從資料庫 中 抓 取 出 來 並 傳 送 至 UserDataShow.jsp 。 [ 圖 5.2] 為 MainToUserDataShow.jsp 程式流程圖。
開 始
抓 取 會 員 資 料
瀏 覽 所 需 資 訊
會 員 固
定 資 料
會 員 可 修
改 資 料
連 結 至
U serD ataS how .jsp
結 束
5.1.4 MainToUserDataEdit.jsp 此程式是針對主要頁面連結至會員資料修改的連結所設 計的,此程式會將會員資料修改頁面所要呈現的所有資料從 資料庫中抓取出來並傳送至 UserDataEdit.jsp。[圖 5.3]為 MainToUserDataEdit.jsp 程式流程圖。
開始
抓取UserDataEdit
頁面所需資料
會員可修
改資料
連結至
UserDataEdit
結束
[圖 5.3 MainToUserDataEdit.jsp 程式流程圖]5.2 新會員註冊程式功能
在這一部分的子系統中分為 7 個程式,每一項程式的說 明及程式流程如下: 5.2.1 UserRegister.jsp 此程式主要是提供使用者填寫註冊資料用,內容主要分為 兩大類別: 1. 基本資料欄位 2. 其他額外資料欄位。 基本資料欄位 : 此項目的資料我們將要求使用者必須全 部填寫,因為該項目的欄位都是一些必備的資訊,如帳號、 密碼、身分證字號、聯絡電話以及 E-MAIL 等,另外為了便利 使用者填寫資料手誤產生的困擾,程式中將會去偵測這些欄 位是否每個都有填寫資料,在帳號填寫欄位部分,程式另外 提供了帳號偵測鈕,點選此功能後將會彈出一訊息視窗提供 使用者填寫欲使用的帳號密碼,當使用者填寫後,程式會去 比對此帳號是否被使用過,並將可用的帳號填寫入對應的欄 位,針對 E-MAIL 欄位部分也會偵測是否符合信箱規則,聯絡 電話則會去比對是否有數字以外的字母,另外為了怕使用者 重覆登記不同的帳號,程式中將會進行身分證字號的合法性 驗證,一但使用者所填入的身分證字號不符合法定規則將會 出現警告訊息告知,在住址部分針對縣市鄉鎮程式提供了下拉式選單供使用者選取,並且自動判斷使用者所選取的縣市 鄉鎮來填入該地區的郵遞區號,如此一來可省卻使用者打字 的時間,又可確定郵遞區號的正確性。 其他額外資料欄位 : 此項目所包含的欄位系統將不要 求使用者一定得填寫,因為此欄位的資訊目前還未加入市場 的使用中,由於這些資訊並不會影響整個市場買賣的運作, 但是日後可能會在個人資訊等地方加入使用,故系統仍然提 供給使用者填寫。此項目包含有:出生年月日、職業、個人 網頁、性別等資料欄位。[圖 5.4]為 UserRegister.jsp 程式 流程圖。
開 始 註 冊 資 料 填 寫 判 斷 資 料 不 符 合 規 格 顯 示 錯 誤 欄 位 資 料 符 合 規 格 連 結 至 C onfirm R egis ter.jsp 結 束 選 擇 資 料 送 出 連 結 至 C heckInput.jsp 帳 號 偵 測 [圖 5.4 UserRegister.jsp 程式流程圖] 5.2.2 ConfrimRegister.jsp 此程式的功能主要是提供使用者在填寫註冊資料後能再 一次檢查是否有誤填的資料欄位。 當使用者填寫並確認送出資料後,程式便會將使用者所填寫 的註冊資料以一頁整齊的列表呈現,並會將未提供資料的部 分以紅色標明顯示,待使用者再一次確認之後,若發現有錯 誤的資料則可以選擇[返回修改]的功能選項,則使用者便可
返回註冊頁面的資料填寫處再一次修改,若確定無誤則可選 擇[確認送出]功能選項將資料交由系統寫入會員資料庫中。 [圖 5.5]為 ConfrimRegister.jsp 程式流程圖。 開 始 使 用 者 註 冊 填 寫 資 料 總 攬 資 料 確 認 再 修 改 確 認 無 誤 連 結 至 U s e r R e g i s t e r D e a l 連 結 至 U s e r R e g i s t e r . j s p 結 束 [圖 5.5 ConfrimRegister.jsp 程式流程圖] 5.2.3 UserRegisterDeal.jsp 此程式是屬於 SERVER 端的作業程式,使用者並無法看見 此網頁運作,功能上是將使用者所填寫的註冊資料寫入會員 資料庫中。 由於會員的資料區分為[必須資料]、[可修改資料],為了日
料庫 Table 中,其分別為[會員固定資料]、[會員可修改資 料],而這兩資料庫則以會員帳號作相關連,因帳號具有絕對 唯一性,如此區分在會員修改資料的功能選項中不論是程式 的 編 寫 還 是 管 理 都 便 利 許 多 。 [ 圖 5.6] 為 UserRegisterDeal.jsp 程式流程圖。
開始
將ConfirmRegister.jsp
所傳來值寫入資料庫
會員固
定資料
會員可修
改資料
連結至
SendPswdDeal.jsp
結束
[圖 5.6 UserRegisterDeal.jsp 程式流程圖] 5.2.4 CheckInput.jsp 此程式的功能是提供會員帳號偵測選項的帳號輸入頁 面,當使用者在註冊頁面點選帳號偵測功能項時,便會彈出一個填寫帳號的小視窗,程式會去偵測使用者是否有填入資 料,若資料有填寫則將帳號傳送到 CheckDeal.jsp 處理。[圖 5.7]為 CheckInput.jsp 程式流程圖。 開 始 使 用 者 輸 入 欲 偵 測 帳 號 連 結 至 C h e c k D e a l . j s p 完 成 [圖 5.7 CheckInput.jsp 程式流程圖] 5.2.5 CheckDeal.jsp 此程式是處理使用者所輸入的帳號是否已經被使用過, 程式會接收 CheckInput.jsp 所傳送過來的帳號,然後比對資 料庫中的[會員固定資料]來判斷此帳號是否已經被使用了, 若已經被使用則會顯示警告訊息告訴使用者重新填寫新帳 號,若尚未被使用則會將此帳號填入註冊頁面的帳號欄位。 [圖 5.8]為 CheckDeal.jsp 程式流程圖。
開 始 接 收 C h e c k In p u t 傳 來 值 並 判 斷 帳 號 可 用 性 會 員 固 定 資 料 狀 況 連 結 至 U s e rR e g is te r .js p 並 填 入 帳 號 帳 號 尚 未 使 用 顯 示 帳 號 已 被 使 用 帳 號 已 被 使 用 結 束 [圖 5.8 CheckDeal.jsp 程式流程圖] 5.2.6 SendPswdDeal.jsp 此程式的功能是在使用者註冊成功之後寄送一封內含確 認功能選項的認證信至使用者信箱中。 為了防止使用者利用假資料同時註冊多個會員帳號而在 市場中行使不當的行為,系統除了以驗證身分證字號的合法 性之外還提供了信箱認證的功能,如果使用者註冊時所填寫 的信箱並非自己可街收用的信箱,則雖然已註冊,但是卻無 法進行認證功能,則此帳號仍舊形同虛設並無進入市場的權 限。 當使用者註冊完畢之後,程式會根據註冊的資料取出使
用者的 E-MAIL 信箱,並利用 JAVAMAIL BEAN 此 JAVA BEAN 來 進行信件的傳送工作,而在信件中則會提供一個認證連結, 待 使 用 者 接 收 此 信 後 點 選 此 認 證 功 能 連 結 至 ConfirmUser.jsp 後,系統確認資料無誤後便會開啟該使用者 的認證權限,在此之後使用者便可以使用先前的註冊帳號進 入市場行使買賣權力。[圖 5.9]為 SendPswdDeal.jsp 程式流 程圖。 開 始 抓 取 U s e r R e g i s t e r 傳 來 值 並 從 資 料 庫 抓 取 申 請 者 相 關 資 料 會 員 固 定 資 料 會 員 可 修 改 資 料 使 用 j a v a m a i l B e a n 設 定 相 關 的 郵 件 伺 服 器 等 設 定 設 定 郵 件 主 題 及 主 機 位 址 郵 件 主 題 內 容 等 資 訊 由 J a v a M a i l B e a n 寄 送 認 證 郵 件 狀 況 伺 服 器 發 送 完 成 伺 服 器 發 送 失 敗 完 成 顯 示 伺 服 器 錯 誤 並 要 求 其 重 新 註 冊
5.2.7 ConfirmUser.jsp 此程式的功能是由使用者端啟動,主要負責比對使用者 從認證信上傳過來的認證資料是否符合系統設定值,若符合 則給予該使用者通過認證的權限。 當使用者通過註冊後系統將會寄送一封認證信至該使用 者信箱中,而此認證信中含有一認證連結,當使用者連結至 該認證頁面則此程式的功能便會啟動,程式會先比對由系統 所設定的認證資料是否符合設定,一旦符合便會更改會員固 定資料中的認證欄位,給予通過認證,若程式發現該認證資 料不符合格式則會將使用者導向 Login.jsp 讓使用者進行註 冊功能。[圖 5.10]為 ConfirmUser.jsp 程式流程圖。 開 始 接 受 認 證 信 上 的 資 料 比 對 會 員 固 定 資 料 資 料 錯 誤 連 結 至 L o g i n . j s p 更 改 認 證 欄 位 資 料 正 確 連 結 至 L o g i n . j s p 結 束 [圖 5.10 ConfirmUser.jsp 程式流程圖]
5.3 會員修改資料程式功能
在這一部分的子系統中分為 3 個程式,每一項程式的說 明及程式流程如下: 5.3.1 UserEditData.jsp 此程式主要的功能是讓會員能夠修改註冊時的一些基本 資料,但是並不提供一些不可變動資料的修改,如身分證字 號、姓名等資料。 當使用者選擇該項功能選項時,會呈現如同註冊頁面般的資 料填寫欄位,同時程式會根據使用者的帳號從資料庫 Table[會員可修改資料]中將可變動的資料取出,並且放入相 對應的資料欄位中,此一做法是為了讓使用者能夠直接修改 其舊有的資料,這樣能夠使的使用者能清楚看到想修改項目 的舊有資料為何,同時又可以知道其他項目舊有資料為何而 適當的去作修改,在此頁面中程式會去判斷該項資料欄位是 否為必須填寫欄位,如電話、E-MAIL 等,若為此等資料欄位 而使用者刪除後未填上新資料則程式會出現警告訊息告知。 [圖 5.11]為 UserDataEdit.jsp 程式流程圖。開 始 將 使 用 者 資 料 填 入 各 對 應 欄 位 會 員 固 定 資 料 會 員 可 修 改 資 料 使 用 者 修 改 資 料 判 斷 資 料 不 符 合 格 式 顯 示 錯 誤 欄 位 資 料 符 合 格 式 連 結 至 C o n firm E d it.jsp 結 束 [圖 5.11 UserDataEdit.jsp 程式流程圖] 5.3.2 ConfirmEdit.jsp 此程式的功能主要是提供使用者在修改註冊資料後能在 一次檢查是否有誤填的資料欄位。 當使用者修改並確認送出資料後,程式便會將使用者所修改 過的資料以一個頁面整齊的列表呈現,並會將未提供資料的 部分以紅色標明顯示,待使用者再一次確認之後,若發現有 錯誤的資料則可以選擇[返回修改]的功能選項,則使用者便 可返回資料修改頁面的資料填寫處再一次修改,若確定無誤