【正文】
表 57 是日志表記錄本系統(tǒng)的用戶訪問信息。 l_id 即“日志編號”是系統(tǒng)為其分配的唯一標(biāo)識符; l_username 是使用此系統(tǒng)的用 戶名; l_content 是系統(tǒng)日志的一個主要內(nèi)容記錄; l_url 記錄了用戶訪問得系統(tǒng)的通信; l_addtime 是此條日志生成的時間。這部分內(nèi)容是給系統(tǒng)預(yù)留的接口,使得有擴(kuò)展的功能。 表 57 日志表 用戶表 表 58 是用戶表,該表包含了用戶的基本且必要的信息,其中 UserID 是“用戶編號”,是系統(tǒng)為用戶分配的唯一標(biāo)識符,它在整個用戶表存儲的數(shù)據(jù)里是互不相同的,而且在系統(tǒng)的許多其它表里也要用到它;用戶名和密碼也是必需的,作為用戶登錄的入口,其中用戶名也要求是唯一的。 表 58 用戶表 第五章 系統(tǒng)設(shè)計(jì) 25 注:此表只列出基 本信息,常用的未作分析,例如:用戶年齡段、用戶生日、用戶學(xué)歷、所在城市等,而用戶年齡段和用戶學(xué)歷可以用來對用戶群體進(jìn)行分析,以便確定系統(tǒng)的使用群體。 friend 好友表 表 59 是 friend 好友表,該表用于記錄用戶加入到通信薄中的用戶,方便用戶給好友發(fā)送郵件。 表 59 好友表 郵件信息記錄表 表 510 是郵件信息記錄表,記錄系統(tǒng)用戶所發(fā)送的所有郵件。 表 510 郵件信息記錄表 第五章 系統(tǒng)設(shè)計(jì) 26 至此,個個數(shù)據(jù)表的結(jié)構(gòu)全部設(shè)計(jì)完成,即定義好郵件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),用于存儲郵件系統(tǒng)中的各項(xiàng)數(shù)據(jù)。 數(shù)據(jù)庫的 ER 圖 本系統(tǒng) 根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體包括用戶信息實(shí)體 (MyUser)、郵件數(shù)據(jù)實(shí)體 (message)、系統(tǒng)配置信息實(shí)體 (config)、好友實(shí)體 (friend)等。通過對實(shí)體聯(lián)系的分析,在本系統(tǒng)中使用 PowerDesigner 設(shè)計(jì) ER 模型。 PowerDesigner的概念數(shù)據(jù)模型 (CDM)把現(xiàn)實(shí)的信息簡化為實(shí)體與實(shí)體之間的聯(lián)系,它與 DBMS 無關(guān)。 CDM 的建立是一個比較復(fù)雜的過程,實(shí)體關(guān)系圖的分析結(jié)果也非常復(fù)雜,一般情況下使用自底向上的方法,首先對局部視圖進(jìn)行分析設(shè)計(jì),然后再實(shí)現(xiàn)視圖集成。這里不再對局部視圖進(jìn)行設(shè)計(jì), 直接給出視圖集成后的 ER 圖,如圖 511所示。 R _ 11 : nn : 1R21 : nn : 1R31 : nn : 1C O N F I GF O R U M N A M EF O R U M U R LC O M P A N Y N A M EH O S TU R LS M TP S E R V E RS Y S TE M E M A I LTI M E A D J U S TL O G OP I C U R LF A C E U R LE M A I L F L A GI P F L A GF R O M F L A GM A X TI TL E L I S TTA B L E B A C K C O L O RA TA B L E B A C K C O L O RTA B L E TI TL E C O L O RA TA B L E TI TL E C O L O RTA B L E B O D Y C O L O RA TA B L E B O D Y C O L O RTA B L E F O N TC O L O RTA B L E C O N TE N TC O L O RA L E R TF O N TC O L O RC O N TE N TT I TL EA D S 1A D S 2C O P Y R I G H TV E R S I O NTI TL E F L A GU P L O A D F L A GV A 2 0 0V A 2 0 0V A 2 0V A 2 0V A 2 0V A 2 0V A 2 0V A 2 0 0V A 2 0 0V A 2 0 0N 1 0N 1 0V A 2 0 0V A 2 0V A 2 0V A 2 0V A 2 0V A 2 0V A 2 0V A 2 0V A 2 0V A 2 0V A 2 0V A 2 0 0V A 2 0 0V A 2 0 0V A 2 0 0V A 2 0 0N 1 0N 1 0L O GL _ I DL _ U S E R N A M EL _ C O N TE N TL _ U R LL _ A D D TI M E p i N 1 0V A 2 0V A 2 0 0V A 2 0V A 2 0 M M K e y _ 1 p iM Y U S E RU S E R I DU S E R N A M ELA R TI C L EU S E R P A S S W O R DH O M E P A G EA D D D A TEL O G I N SW I D THH E I G H TO I C QL A S TL O G I N p i N 1 0V A 2 0U s e r E m a ilV A 3 0V A 2 0V A 5 0DN 1 0N 1 0N 1 0N 1 0D M M M M M K e y _ 1 p iF R I E N DF _ I DF _ U S E R N A M EF _ F R I E N DF _ A D D TI M E p i N 1 0V A 2 0V A 2 0V A 2 0 M M M K e y _ 1 p iM E S S A G EIDS E N D E RI N C E P TTI TL EC O N TE N TF L A GS E N D TI M ED E L RD E L SI S S E N D p i n u m n r t ( 1 0 )V A 2 0V A 2 0V A 2 0V A 2 0N1V A 2 0N1N1N1 M M K e y _ 1 p i 圖 511 簡易郵件系統(tǒng)數(shù)據(jù)庫 ER 圖 使用用戶信息進(jìn)行用戶基本信息的管理,以及登錄系統(tǒng)時用戶名、密碼和權(quán)限的設(shè)定;在設(shè)計(jì)時,充分考慮了用戶使用郵件系統(tǒng)收發(fā)郵件的便捷性。其實(shí),以上 ER 圖只是簡易郵件系統(tǒng)最基本元素的實(shí)體關(guān)系圖,讀者可以在此基礎(chǔ)上根據(jù)用戶的不同需要進(jìn)行擴(kuò)展。 第六章 程序設(shè)計(jì)與實(shí)現(xiàn) 27 第六章 程序設(shè)計(jì)與實(shí)現(xiàn) 有系統(tǒng)設(shè)計(jì)可知本系統(tǒng)的設(shè)計(jì)共分為如下兩大部分: ( 1)管理模塊用于管理員對注冊用戶管理和系統(tǒng)設(shè)置管理,它包括: 管理員登錄界面; 用戶管理:列表、搜索、查看、增 加、刪除; 系統(tǒng)設(shè)置管理:查看、修改。 ( 2)用戶模塊:用于用戶進(jìn)行郵件管理,它包括: 注冊:注冊、修改個人信息; 登錄:登錄; 撰寫發(fā)送郵件:發(fā)送郵件; 收件箱管理:列表、查看、刪除、清空收件箱; 垃圾箱管理:列表、查看、刪除、清空垃圾箱; 草稿箱管理:列表、查看、刪除、清空草稿箱; 發(fā)件箱管理:列表、查看、刪除、清空發(fā)件箱; 通信薄管理:列表、查看、刪除、清空通信薄、添加好友、發(fā)送郵件。 根據(jù)這些整體關(guān)系的設(shè)計(jì)下面對每一個部分給出主界面的設(shè)計(jì)及其設(shè)計(jì)思路。 管理員登錄模塊設(shè)計(jì)與實(shí)現(xiàn) 管理員用戶登錄的 界面中,包括用戶名和密碼得輸入文本框,以及提交登錄按鈕和重寫按鈕。管理員登錄界面如圖 61 所示。 第六章 程序設(shè)計(jì)與實(shí)現(xiàn) 28 圖 61 管理員登錄界面 管理員的登錄,使用的是類 , 等,其中 是專門為用戶寫的一個類,同時也作為一般用戶的登錄類,該類代碼如下: //登錄參數(shù) private String username。 //登錄用戶名 private String password。 //登錄密碼 private int userClass。 //管理級別,用來判斷是否管理 員登錄 在執(zhí)行登錄時,頁面 mail\jsp\ 調(diào)用類文件中的函數(shù)所填寫的信息進(jìn)行處理,然后對登錄管理員進(jìn)行驗(yàn)證。 管理員用戶管理模塊設(shè)計(jì)與實(shí)現(xiàn) 管理員登錄后,首要的功能是對系統(tǒng)用戶和系統(tǒng)參數(shù)的管理。管理員的管理主頁面上具有進(jìn)入用戶管理和系統(tǒng)參數(shù)設(shè)置管理的入口。當(dāng)管理員進(jìn)行管理操作之后,要退出管理界面,則要退出管理的出口。設(shè)計(jì)結(jié)果如圖 62 所示。 第六章 程序設(shè)計(jì)與實(shí)現(xiàn) 29 圖 62 管理員登錄主界面 圖 62 所示即為管理員登錄后的管理首頁,單擊左邊的“返回管理首頁”鏈接返回到管理首頁,單擊“注冊用戶管理”鏈接可以 進(jìn)行用戶管理,單擊“系統(tǒng)設(shè)置”鏈接可以進(jìn)行系統(tǒng)參數(shù)設(shè)置管理,單擊“退出管理”鏈接可以退出管理界面。 用戶的信息需要由系統(tǒng)管理員來進(jìn)行管理和維護(hù)。為此,設(shè)計(jì)了用戶列表的界面,該界面中需要包括如下的信息:用戶的 ID 號 (數(shù)據(jù)庫表中的編號 )、用戶名,還應(yīng)該提供用戶管理的入口,包括刪除等,還應(yīng)該提供可以查看詳細(xì)資料的查看入口來顯示用戶的基本信息,以及用來填寫所要查詢用戶的用戶名的文本框和查詢按鈕。注冊用戶列表頁面設(shè)計(jì)如圖 63 所示。 圖 63 管理員用戶管理界面 當(dāng)管理員需要刪除用戶時,只需要在對應(yīng)的用戶名的 checkbox 打上鉤,然后單擊“刪除”按鈕,就可以刪除所有選中的用戶。當(dāng)需要查找某用戶名時,只需要在文本中填寫用戶名,然后單擊“查詢”按鈕,即可查找出所有符合條件的用戶列表信息。當(dāng)需要查看某一用戶的詳細(xì)信息時,只需要單擊用戶名,通過此鏈接可以查看用戶注冊基本信息,此界面和用戶表對應(yīng),顯示信息包括用戶名、性別、個人主頁、登錄次數(shù)、最后登錄時間、注冊時間 OICQ 和 Email。 在如圖 63 所示的用戶基本信息界面中,為了方便使用,在界面底部還設(shè)計(jì)了給當(dāng)前所查看用戶郵件和加為好友的鏈接。 關(guān)于管理員進(jìn)行用戶管理,其 中主要使用的是類 ,當(dāng)然缺少不了用戶類 和其他一些進(jìn)行基本處理的類。根據(jù)界面部分的設(shè)計(jì)可知,用戶的管理包括的功能有取得所有用戶的列表、查看用戶基本信息、刪除用戶, 第六章 程序設(shè)計(jì)與實(shí)現(xiàn) 30 因此根據(jù)這些功能的需要,在該類中逐一設(shè)計(jì)了這些功能。 管理員查看用戶列表的頁面代碼源文件為 mail\jsp\,這個頁面主要是執(zhí)行表 myuser 的 SELECT 查詢語句,查得的結(jié)果是多行記錄,通過ResultSet 的 next()函數(shù)循環(huán)取出所有的記錄,保存在 Vector 類型變量 userVector中。 管理員系統(tǒng)設(shè)置模塊設(shè)計(jì)與實(shí)現(xiàn) 系統(tǒng)設(shè)置管理和后臺系統(tǒng)配置表對應(yīng),主要包括系統(tǒng)名稱、系統(tǒng)的 URL、主頁名稱、主頁 URL、系統(tǒng)管理員 Email 等。則在界面上提供相應(yīng)的文本框作為信息的輸入,如果是選擇性的信息則可以提供下拉列表框,還要提供“提交”按鈕,界面設(shè)計(jì)如果圖 64 所示。 圖 64 管理員系統(tǒng)設(shè)置管理界面 管 理 員 在 進(jìn) 行 系 統(tǒng) 參 數(shù) 設(shè) 置 管 理 時 , 主 要 使 用 的 是 類。根據(jù)界面部分的設(shè)計(jì)可知,此處主要是實(shí)現(xiàn)設(shè)置系統(tǒng)參數(shù)功能,因此這個需要 在開始介紹。 管理員進(jìn)行系統(tǒng)參數(shù)設(shè)置管理頁面代碼的源文件為 mail\jsp\。后臺的操作主要是執(zhí)行對配置表 config 的 UPDATE 語句,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行更新。 第六章 程序設(shè)計(jì)與實(shí)現(xiàn) 31 用戶注冊模塊設(shè)計(jì)與實(shí)現(xiàn) 如圖 65 所示即為用戶注冊界面的設(shè)計(jì)結(jié)果,當(dāng)用戶填寫完所需要填寫的信息之后,單擊“注冊”按鈕,即可注冊成功。而用戶在登錄系統(tǒng)之后,會提供修改個人注冊資料的界面,它的界面也和這個界面一樣,只是不能修改用戶名。 圖 65 新用戶注冊界面 用戶注冊的頁面主要包括 和 , 其中 是系統(tǒng)服務(wù)條款和申明,用戶只有同意本系統(tǒng)的服務(wù)條款才能進(jìn)入 頁面進(jìn)行注冊用戶操作。由用戶注冊的界面設(shè)計(jì)中可知,注冊用戶時主要是需要填寫用戶的基本信息,如用戶名、密碼等,當(dāng)用戶單擊“注冊”按鈕保存填入的數(shù)據(jù)時,頁面需要將這些頁面的表單取出來。在本頁面的處理時,將 JSP 頁面的提交對象 request 作為參數(shù),傳進(jìn) 類的函數(shù)中,然后進(jìn)行用戶新增。在執(zhí)行添加新用戶之前,需要檢驗(yàn)新輸入的用戶名是否在系統(tǒng)中存在,一旦存在則不允許添加,因?yàn)橛脩裘菢?biāo)志一個用戶 的惟一信息,然后再根據(jù)表 myuser 組合 INSERT 語句,執(zhí)行數(shù)據(jù)庫的新增操作。 此圖為新用戶注冊成功后顯示出來的新界面,其內(nèi)容中含有用戶注冊中的一些基本信息。如圖 66 所示。 第六章 程序設(shè)計(jì)與實(shí)現(xiàn) 32 圖 66 新用戶注冊成功界面 用戶登錄模塊設(shè)計(jì)與實(shí)現(xiàn) 用戶注冊以后,就可以使用這個系統(tǒng)的功能了。那么,登錄是使用這些功能的入口,因?yàn)椴煌挠脩粜枰涗涀约旱男畔?,需要系統(tǒng)根據(jù)用戶名區(qū)分每個登錄用戶才能使系統(tǒng)正常運(yùn)行。 登錄界面跟