




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 密級: nanchang university 學(xué) 士 學(xué) 位 論 文thesis of bachelor(20 20 年)題 目 基于java的宿舍管理系統(tǒng)開發(fā) 學(xué) 院: 軟件學(xué)院 系 軟件工程 專業(yè)班級: web084 學(xué)生姓名: 程懇 學(xué)號: 8000108161 指導(dǎo)教師: 陳練 職稱: 副教授 起訖日期: 基于java的宿舍管理系統(tǒng)開發(fā)專業(yè):軟件工程學(xué)號: 8000108161 學(xué)生姓名: 程懇 指導(dǎo)教師: 陳練 摘 要 現(xiàn)今,隨著高校學(xué)生的增多,學(xué)生宿舍的管理問題也暴露出來,有很多學(xué)生宿舍都是初步使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息處理根據(jù)問卷調(diào)查得知,他們以前對信息管理的主要方式是
2、基于文本表格等紙介質(zhì)的手工處理,對于衛(wèi)生評比等很多信息都是用人工計(jì)算手抄進(jìn)行數(shù)據(jù)信息處理工作量大,容易出錯(cuò);由于數(shù)據(jù)繁多,容易丟失,且不易查找總的來說,缺乏系統(tǒng),規(guī)范的信息管理手段這就是宿舍管理系統(tǒng)的開發(fā)的基本環(huán)境.經(jīng)過分析如此情況,我們使用java web,oracle數(shù)據(jù)庫等開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,運(yùn)用java的struct和spring這兩大框架快速建立系統(tǒng)應(yīng)用原型,然后,對初始原型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn),直到形成用戶滿意的可行系統(tǒng).關(guān)鍵詞:宿舍管理;簡單易用;java web技術(shù)dormitory management system based on j
3、avaabstractnowadays, with the increase of college students, the management of student dormitories exposed to a lot of student dormitories are preliminary, not even using computers for information processing according to the questionnaire was informed that their previous way of information management
4、 with manual calculation based on the paper at the manual processing of text, tables, etc., for a lot of information such as health assessments are the handwritten carried out. data processing workload, error-prone; due to the variety of data, easily lost and difficult to find., the lack of the syst
5、em, standardized information management tools. this is the basic environment of the hostel management system development.after analysis of the case, we use the java web oracle database development tool, its use of the various object-oriented development tools, the use of java struct and spring frame
6、work to quickly build a prototype application system, then the initial the prototype system needs to constantly revised and improved, until the formation of a viable system of customer satisfaction.keyword: dormitory management;convenient;java web目 錄摘 要iabstractii第一章前言1第二章 系統(tǒng)可行性分析22.1 技術(shù)可行性22.2 經(jīng)濟(jì)可行
7、性22.3 社會環(huán)境22.4 人2第三章 需求分析33.1 系統(tǒng)需求分析33.1.1 登錄管理33.1.2 后臺用戶管理33.1.3 管理33.2 系統(tǒng)主要技術(shù)分析43.2.1 系統(tǒng)基于b/s的三層體系結(jié)構(gòu)43.2.2 系統(tǒng)開發(fā)使用的關(guān)鍵技術(shù)53.3 系統(tǒng)開發(fā)、運(yùn)行環(huán)境分析7第四章 系統(tǒng)概要設(shè)計(jì)94.1 系統(tǒng)功能模塊設(shè)計(jì)94.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)94.3 系統(tǒng)uml設(shè)計(jì)104.3.1 用例圖設(shè)計(jì)104.3.2 用例描述11第五章 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)165.1實(shí)體分析165.2數(shù)據(jù)庫數(shù)據(jù)表結(jié)構(gòu)圖165.3數(shù)據(jù)庫表詳細(xì)結(jié)構(gòu)設(shè)計(jì)17第六章 系統(tǒng)詳細(xì)設(shè)計(jì)196.1 詳細(xì)設(shè)計(jì)概述196.2 程序流程圖196
8、.3 郵件發(fā)送和接受206.3.1 郵件通信原理206.3.2 郵件地址的構(gòu)成206.3.3 常見郵件協(xié)議216.3.4 關(guān)鍵算法21第七章 系統(tǒng)實(shí)現(xiàn)277.1 總體工程架構(gòu)的實(shí)現(xiàn)277.2 具體功能實(shí)現(xiàn)27結(jié)論36參考文獻(xiàn)37致謝38第一章 前言隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。隨著計(jì)算機(jī)技術(shù)發(fā)展,各種各樣的管理信息系統(tǒng)也蓬勃發(fā)展。學(xué)校各個(gè)部門為了提高工作效率也紛紛開發(fā)自己的系統(tǒng),而隨著住宿人數(shù)的高速膨脹,開發(fā)學(xué)生公寓管理系統(tǒng)也成為必然。近年來,我校規(guī)模不斷擴(kuò)大,招生人數(shù)不斷增多,宿舍也不斷擴(kuò)建增多。
9、致使宿舍管理工作壓力增大,為了適應(yīng)未來信息化社會的需要,為了使宿舍管理 工作更加科學(xué)化、規(guī)范化,減輕工作人員壓力,提高工作效率,我們需要結(jié)合我校實(shí)際工作的需要采用 java語言 結(jié)合 oracle 數(shù)據(jù)庫開發(fā)了學(xué)生公寓管理系統(tǒng)?,F(xiàn)在學(xué)生公寓管理系統(tǒng)的開發(fā)設(shè)計(jì)日益呈現(xiàn)出可視化、對象化和網(wǎng)絡(luò)化的特征第二章 系統(tǒng)可行性分析可行性分析是基于客觀的、科學(xué)的,其在整個(gè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程中有非常重要的意義,軟件可行性分析的目的是用合適的代價(jià)解決足夠的問題,其最終結(jié)果是對所設(shè)想的項(xiàng)目做出實(shí)施還是放棄。本宿舍管理系統(tǒng)從以下四個(gè)方面進(jìn)行可行性分析:技術(shù)、經(jīng)濟(jì)、社會環(huán)境、人。2.1 技術(shù)可行性基于java的web
10、形式實(shí)現(xiàn)本系統(tǒng)。java是由sun microsystems(現(xiàn)已被oracle收購)公司于1995年5月推出的java程序設(shè)計(jì)語言和java平臺的總稱。java編程語言經(jīng)過十多年的發(fā)展已經(jīng)形成了具備簡單的、面向?qū)ο蟮?、分布式的、解釋型的、健壯安全的、結(jié)構(gòu)中立的、可移植的、性能優(yōu)異、多線程的動態(tài)語言。java ee(java platform,enterprise edition)是java的企業(yè)級應(yīng)用,企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端 java 應(yīng)用程序。java ee 是在 java se 的基礎(chǔ)上構(gòu)建的,它提供 web 服務(wù)、組件模型、管理和通信 api,可以用
11、來實(shí)現(xiàn)web 2.0 應(yīng)用程序。2.2 經(jīng)濟(jì)可行性實(shí)現(xiàn)一套宿舍管理系統(tǒng),不管從時(shí)間、資金、人力等角度考慮都不需要太多的投入。只要嚴(yán)格按照軟件工程的實(shí)現(xiàn)方法進(jìn)行系統(tǒng)的實(shí)施即可。當(dāng)其正式投入運(yùn)行,其所發(fā)揮的高效率、實(shí)際效益作用是非常明顯的。2.3 社會環(huán)境在當(dāng)今的網(wǎng)絡(luò)社會時(shí)代,硬件、軟件設(shè)備環(huán)境已經(jīng)相當(dāng)成熟,要實(shí)現(xiàn)并運(yùn)行一個(gè)宿舍管理系統(tǒng)是相當(dāng)輕松的。2.4 人計(jì)算機(jī)的發(fā)展,使得常人具備使用基本的電腦技術(shù)已經(jīng)非常重要,而且現(xiàn)在網(wǎng)絡(luò)教學(xué)資源也非常豐富,所以對一個(gè)郵件系統(tǒng)的操作以及使用是基本沒障礙的。綜上所述,實(shí)現(xiàn)一套宿舍管理系統(tǒng)是相當(dāng)可行的。第3章 需求分析3.1 系統(tǒng)需求分析web應(yīng)用技術(shù)2作為in
12、ternet最為廣泛的應(yīng)用之一,在人們的工作和生活中扮演著重要的角色,應(yīng)用的普及使電子郵件技術(shù)有了飛速的發(fā)展。不僅在普通人的日常生活中,而且已經(jīng)成為現(xiàn)代企業(yè)內(nèi)外信息交流的必備工具。企業(yè)擁有自己的郵件系統(tǒng),不僅能夠提升企業(yè)形象,而且更重要的是能為企業(yè)帶來實(shí)際效益。當(dāng)然作為一個(gè)郵件系統(tǒng)要考慮多方面,比如穩(wěn)定性、安全性等其他一些因素,但由于時(shí)間、及所學(xué)技術(shù)有限等原因,在此只實(shí)現(xiàn)最基本的客戶端功能及簡單后臺管理功能。java為實(shí)現(xiàn)這種功能提供了豐富的類庫,借此,在老師的指導(dǎo)下,開始了郵件系統(tǒng)的開發(fā)。本郵件系統(tǒng)主要有三個(gè)模塊:3.1.1 登錄管理用戶,都必須從登錄界面提交用戶名和密碼,經(jīng)程序驗(yàn)證正確無誤
13、后方可登錄系統(tǒng)進(jìn)行相關(guān)操作。登錄時(shí)進(jìn)行用戶賬戶、密碼的有效行驗(yàn)證,如果用戶的賬戶錯(cuò)誤,密碼錯(cuò)誤,則不能進(jìn)入系統(tǒng)。之后再進(jìn)行用戶權(quán)限驗(yàn)證,不同權(quán)限有不同的界面,如果是普通用戶登錄則只有部分權(quán)限,如果是超級管理員登錄擁有全部權(quán)限。3.1.2 后臺用戶管理超級管理員可以通過添加用戶來分配,開通一個(gè)賬號,也可以對現(xiàn)有帳號進(jìn)行查看、刪除、修改等操作。其中添加、修改用戶時(shí),可以指定用戶的權(quán)限和備注。3.1.3 前臺管理3.2 系統(tǒng)主要技術(shù)分析3.2.1 系統(tǒng)基于b/s的三層體系結(jié)構(gòu)b/s(browser/server)即瀏覽器/服務(wù)器。通常三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。
14、區(qū)分層次有助于系統(tǒng)的“高內(nèi)聚,低耦合”。圖3.1 三層系統(tǒng)的分層式結(jié)構(gòu)表現(xiàn)層:通俗講就是展現(xiàn)給用戶的界面,用戶在使用一個(gè)系統(tǒng)的時(shí)候他的所見所得,為用戶提供一種交互式操作的界面。業(yè)務(wù)邏輯層:是系統(tǒng)架構(gòu)中體現(xiàn)核心價(jià)值的部分。它的關(guān)注點(diǎn)主要集中在業(yè)務(wù)規(guī)則的制定、業(yè)務(wù)流程的實(shí)現(xiàn)等與業(yè)務(wù)需求有關(guān)的系統(tǒng)設(shè)計(jì),也即是說它是與系統(tǒng)所應(yīng)對的領(lǐng)域邏輯有關(guān)。針對具體問題的操作,也可以說是對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務(wù)邏輯處理。數(shù)據(jù)訪問層:其功能主要是負(fù)責(zé)數(shù)據(jù)庫的訪問,該層所做事務(wù)直接操作數(shù)據(jù)庫,針對數(shù)據(jù)的增添、刪除、修改、更新、查找等。3.2.2 系統(tǒng)開發(fā)使用的關(guān)鍵技術(shù)一、html、css、javascripthtml
15、(hyper text mark-up language)即超文本標(biāo)記語言,是目前網(wǎng)絡(luò)上應(yīng)用最為廣泛的語言,也是構(gòu)成網(wǎng)頁文檔的主要語言。html文本是由html命令組成的描述性文本,html命令可以是說明文字、圖形、動畫、聲音、表格、鏈接等。html的結(jié)構(gòu)包括頭部(head)、主體(body)兩大部分,其中頭部描述瀏覽器所需的信息,而主體則包含所要說明的具體內(nèi)容。css(cascading style sheet)層疊樣式表是一組格式設(shè)置規(guī)則,用于控制web頁面的外觀。通過使用css樣式設(shè)置頁面的格式,可將頁面的內(nèi)容與表現(xiàn)形式分離。頁面內(nèi)容存放在html文檔中,而用于定義表現(xiàn)形式的css規(guī)則則
16、存放在另一個(gè)文件中或html文檔的某一部分,通常為文件頭部分。將內(nèi)容與表現(xiàn)形式分離,不僅可使維護(hù)站點(diǎn)的外觀更加容易,而且還可以使html文檔代碼更加簡練,縮短瀏覽器的加載時(shí)間。javascript是一種基于對象和事件驅(qū)動并具有相對安全性的客戶端腳本語言。同時(shí)也是一種廣泛用于客戶端web開發(fā)的腳本語言,常用來給html網(wǎng)頁添加動態(tài)功能,比如響應(yīng)用戶的各種操作。也是一種動態(tài)、弱類型、基于原型、內(nèi)置支持類的語言。二、jspjsp(java server pages)頁面由html代碼和嵌入其中的java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些java代碼進(jìn)行處理,然后將生成的html頁面返回給
17、客戶端的瀏覽器。jsp文件被編譯后是以java servlet形式存在, 當(dāng)jsp頁面第一次被調(diào)用時(shí),會有一個(gè)編譯成java servlet類的過程,所以當(dāng)?shù)谝淮握{(diào)用時(shí)會有點(diǎn)慢,但編譯后就會一直存儲在服務(wù)器的內(nèi)存中,這就使得在接下來的對該頁面的調(diào)用中,服務(wù)器會有非常快的響應(yīng)。三、struts1struts1是apache組織的一個(gè)項(xiàng)目,像其他的apache組織的項(xiàng)目一樣,它也是開放源碼項(xiàng)目。它提供了對開發(fā)mvc系統(tǒng)的底層支持,采用的主要技術(shù)是servlet,jsp和customtaglibrary(自定義標(biāo)簽庫)。 作為一個(gè)mvc的框架,struts1對model、view和controlle
18、r都提供了對應(yīng)的實(shí)現(xiàn)組件:在視圖層,除了可以使用jsp及其標(biāo)簽庫(jstl)以外,struts1提供了一個(gè)強(qiáng)大的標(biāo)簽庫,來幫助用戶解決顯示邏輯,并且使用actionform組件將顯示遞交到控制器層。在控制器層,struts1提供了一個(gè)控制器組件actionservlet,它繼承自httpservlet,并重載了httpservlet的doget()、dopost()方法,可以接受http響應(yīng),并進(jìn)行轉(zhuǎn)發(fā),同時(shí)還提供了使用xml進(jìn)行轉(zhuǎn)發(fā)mapping(映射)的功能。在模型層,struts1提供action對象,來管理業(yè)務(wù)邏輯的調(diào)用,幫助用戶分離業(yè)務(wù)邏輯。也就是說struts1本身不參與業(yè)務(wù)邏輯,
19、但可以調(diào)用已完成的業(yè)務(wù)邏輯。圖3.2 struts1基本流程結(jié)構(gòu)圖4、 springspring是一個(gè)開源框架,它由rod johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。spring使用基本的javabean來完成以前只可能由ejb完成的事情。然而,spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何java應(yīng)用都可以從spring中受益。 簡單來說,spring是一個(gè)輕量級的控制反轉(zhuǎn)(ioc)和面向切面(aop)的容器框架。 輕量從大小與開銷兩方面而言spring都是輕量的。完整的spring框架可以在一個(gè)大小只有1mb多的jar文件里發(fā)布。并
20、且spring所需的處理開銷也是微不足道的。此外,spring是非侵入式的:典型地,spring應(yīng)用中的對象不依賴于spring的特定類。 控制反轉(zhuǎn)spring通過一種稱作控制反轉(zhuǎn)(ioc)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了ioc,一個(gè)對象依賴的其它對象會通過被動的方式傳遞進(jìn)來,而不是這個(gè)對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為ioc與jndi相反不是對象從容器中查找依賴,而是容器在對象初始化時(shí)不等對象請求就主動將依賴傳遞給它。 面向切面spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)
21、。應(yīng)用對象只實(shí)現(xiàn)它們應(yīng)該做的完成業(yè)務(wù)邏輯僅此而已。它們并不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點(diǎn),例如日志或事務(wù)支持。 容器spring包含并管理應(yīng)用對象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例以及它們是如何相互關(guān)聯(lián)的。然而,spring不應(yīng)該被混同于傳統(tǒng)的重量級的ejb容器,它們經(jīng)常是龐大與笨重的,難以使用。 框架spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在spring中,應(yīng)用對象被聲明式地組合,典型地是在一個(gè)xml文件里。spring
22、也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。 五、數(shù)據(jù)庫jdbc(java data base connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行sql語句的java api,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用java語言編寫的類和接口組成。jdbc提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。采用jdbc訪問oracle數(shù)據(jù)庫需要安裝三個(gè)驅(qū)動oracle jdbc jar 。并在jsp里導(dǎo)入進(jìn)去。sql(structured query language)結(jié)構(gòu)化查詢語言,是一種數(shù)據(jù)庫查詢和程序設(shè)
23、計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。sql語言包含4個(gè)部分:數(shù)據(jù)定義語言(ddl):create、drop、alter等語句。數(shù)據(jù)操作語言(dml):insert、update、delete等語句。數(shù)據(jù)查詢語言(dql):select語句。數(shù)據(jù)控制語言(dcl):grant、revoke、commit、rollback等語句。3.3 系統(tǒng)開發(fā)、運(yùn)行環(huán)境分析操作系統(tǒng):microsoft windows xp瀏覽器:internet explorer 6.0以上,或以此為內(nèi)核的瀏覽器應(yīng)用服務(wù)器:apache-tomcat- 6.0.20tomcat是apache 軟件基金會(a
24、pache software foundation)的jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由apache、sun 和其他一些公司及個(gè)人共同開發(fā)而成。因?yàn)閠omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的web 應(yīng)用服務(wù)器。tomcat 是一個(gè)輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試jsp 程序的首選。jdk:jdk-6u20-windowsjdk(java development kit)是sun microsystems針對java開發(fā)員的產(chǎn)品。自從java推出以來,jdk已
25、經(jīng)成為使用最廣泛的java sdk。jdk 是整個(gè)java的核心,包括了java運(yùn)行環(huán)境,java工具和java基礎(chǔ)的類庫。數(shù)據(jù)庫:oracle 9i或更高版本數(shù)據(jù)庫模型設(shè)計(jì): power designer開發(fā)工具:myeclipse 6.5 或更高版本myeclipse企業(yè)級工作平臺(myeclipse enterprise workbench,簡稱myeclipse)是對eclipse ide的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和javaee的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的javaee集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持htm
26、l、struts、jsf、css、javascript、sql、hibernate。uml設(shè)計(jì)工具:rational rose 8.2.310.2800rational rose是rational公司出品的一種面向?qū)ο蟮慕y(tǒng)一建模語言的可視化建模工具。用于可視化建模和公司級水平軟件應(yīng)用的組件構(gòu)造。第四章 系統(tǒng)概要設(shè)計(jì)4.1 系統(tǒng)功能模塊設(shè)計(jì)從模擬用戶的角度進(jìn)行分析,對于一個(gè)宿舍管理系統(tǒng),首先要確定其功能是什么,也就是用戶想要系統(tǒng)做什么工作。經(jīng)過對系統(tǒng)的可行性分析、需求分析、技術(shù)分析后,結(jié)合調(diào)研的情況及用戶的使用需求,確定了本系統(tǒng)的功能模塊如下圖所示。圖4.1 系統(tǒng)功能模塊圖4.2 系統(tǒng)功能結(jié)構(gòu)設(shè)
27、計(jì)圖4.2 系統(tǒng)功能結(jié)構(gòu)圖4.3 系統(tǒng)uml設(shè)計(jì)4.3.1 用例圖設(shè)計(jì)圖4.3 系統(tǒng)管理員用例圖圖4.4 普通用戶用例圖4.3.2 用例描述用例標(biāo)識號01用例名稱登錄參與者普通用戶,管理員簡要描述普通用戶登錄到他的個(gè)人郵箱,管理員登錄到后臺管理前置條件用戶已被添加且狀態(tài)為啟用主事件流1、 打開登陸頁面2、 輸入登入用戶民和密碼3、 點(diǎn)擊登錄按鈕,進(jìn)入自己的郵箱4、 用例終止異常事件流1、 提示輸入錯(cuò)誤2、 用戶確認(rèn)3、 返回登錄界面后置條件用戶輸入信息正確,進(jìn)入自己的郵箱用例標(biāo)識號02用例名稱用戶管理參與者管理員簡要描述管理員對系統(tǒng)中已存在的賬戶管理。包括添加賬戶、查看賬戶信息、修改賬戶信息、
28、刪除賬戶。前置條件管理員已成功登陸主事件流1、 選擇用戶管理,用例開始2、 對所選用戶進(jìn)行查看、修改、刪除或則添加新用戶3、 相應(yīng)操作完成,用例結(jié)束異常事件流1、 提示操作失敗2、 用戶確認(rèn)3、 返回操作前狀態(tài)后置條件無用例標(biāo)識號03用例名稱個(gè)人信息管理參與者普通用戶簡要描述用戶對當(dāng)前自己的某些信息進(jìn)行查看、修改前置條件用戶已成功登陸主事件流1、 點(diǎn)擊個(gè)人信息鏈接,用例開始2、 查看當(dāng)前信息3、 修改某些可改信息4、 點(diǎn)擊更新,提交更新后的新信息5、 返回更新后的信息,用例結(jié)束異常事件流1、 提示操作失敗2、 用戶確認(rèn)3、 返回操作前狀態(tài)后置條件無用例標(biāo)識號04用例名稱聯(lián)系人管理參與者普通用戶
29、簡要描述用戶對當(dāng)前自己的聯(lián)系人進(jìn)行添加、查看、刪除前置條件用戶已成功登陸主事件流1、 點(diǎn)擊聯(lián)系人鏈接,用例開始2、 查看當(dāng)前聯(lián)系人列表3、 添加或刪除聯(lián)系人4、 返回最新聯(lián)系人列表異常事件流1、 提示操作失敗2、 用戶確認(rèn)3、 返回操作前狀態(tài)后置條件無用例標(biāo)識號05用例名稱發(fā)送郵件參與者普通用戶簡要描述用戶發(fā)送郵件給收件人前置條件用戶已成功登陸主事件流1、 單擊“寫信”按鈕2、 進(jìn)入發(fā)送郵件頁面3、 用戶在文本框內(nèi)編輯收件人,主題,內(nèi)容等信息4、 點(diǎn)擊“發(fā)送”按鈕,發(fā)送郵件5、 用例終止異常事件流1、 提示操作失敗2、 用戶確認(rèn)3、 返回操作前狀態(tài)后置條件無用例標(biāo)識號06用例名稱接收郵件參與者
30、普通用戶簡要描述用戶接收屬于自己的郵件,并且查看郵件信息前置條件用戶已成功登陸主事件流1、 點(diǎn)擊“收信”按鈕2、 進(jìn)入查看郵件列表頁面3、 用例終止異常事件流1、 提示操作失敗2、 用戶確認(rèn)3、 返回操作前狀態(tài)后置條件無用例標(biāo)識號07用例名稱搜索郵件參與者普通用戶簡要描述用戶搜索所有接收到的郵件,并且查看搜索到的郵件信息前置條件用戶已成功登陸主事件流1、 在搜索框輸入需要搜索的關(guān)鍵詞2、 點(diǎn)擊“搜索”按鈕,進(jìn)行關(guān)鍵詞匹配搜索3、 列出所有搜到的所有郵件4、 用例結(jié)束異常事件流1、 提示操作失敗2、 用戶確認(rèn)3、 返回操作前狀態(tài)后置條件無用例標(biāo)識號08用例名稱查看郵件參與者普通用戶簡要描述用戶查
31、看接收到郵件的詳細(xì)信息前置條件用戶已成功登陸,且接收到郵件主事件流1、異常事件流1、 提示操作失敗2、 用戶確認(rèn)3、 返回操作前狀態(tài)后置條件無用例標(biāo)識號09用例名稱回復(fù)郵件參與者普通用戶簡要描述用戶回復(fù)郵件給已發(fā)送過郵件給自己的其他用戶前置條件用戶已成功登陸,且已經(jīng)在郵件詳細(xì)信息頁面主事件流1、 點(diǎn)擊“回復(fù)”按鈕,用例開始2、 跳轉(zhuǎn)到回復(fù)郵件頁面3、 收件人文本框自動填上被回復(fù)人郵件地址4、 在文本框內(nèi)編輯,主題,內(nèi)容等信息5、 點(diǎn)擊“發(fā)送”按鈕,回復(fù)郵件6、 用例終止異常事件流1、 提示操作失敗2、 用戶確認(rèn)3、 返回操作前狀態(tài)后置條件無用例標(biāo)識號10用例名稱轉(zhuǎn)發(fā)郵件參與者普通用戶簡要描述用
32、戶轉(zhuǎn)發(fā)已收到的郵件給其他用戶前置條件用戶已成功登陸,且已經(jīng)在郵件詳細(xì)信息頁面主事件流1、 點(diǎn)擊“轉(zhuǎn)發(fā)”按鈕,用例開始2、 跳轉(zhuǎn)到轉(zhuǎn)發(fā)郵件頁面3、 收件人文本框填上被轉(zhuǎn)發(fā)人郵件地址4、 點(diǎn)擊“轉(zhuǎn)發(fā)”按鈕,轉(zhuǎn)發(fā)郵件5、 用例終止異常事件流1、 提示操作失敗2、 用戶確認(rèn)3、 返回操作前狀態(tài)后置條件無用例標(biāo)識號11用例名稱刪除郵件參與者普通用戶簡要描述用戶可刪除不需要或已無用的郵件前置條件用戶已成功登陸,且已經(jīng)在郵件列表頁面主事件流1、 點(diǎn)擊“刪除”按鈕,用例開始2、 彈出提示框,是否確認(rèn)刪除3、 用戶確認(rèn),刪除郵件4、 返回最新郵件列表5、 用例終止異常事件流4、 提示操作失敗5、 用戶確認(rèn)6、
33、返回操作前狀態(tài)后置條件無第五章 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫用于保存系統(tǒng)需要持續(xù)使用的數(shù)據(jù)對象,通過對需求及系統(tǒng)的設(shè)計(jì),本系統(tǒng)郵件實(shí)際上只有兩個(gè)實(shí)體對象即用戶實(shí)體和郵件實(shí)體,但由于系統(tǒng)其他實(shí)現(xiàn)的需要,本系統(tǒng)一共有六個(gè)表:5.1實(shí)體分析1) 用戶實(shí)體用戶是系統(tǒng)的使用者,系統(tǒng)需要為每個(gè)用戶單獨(dú)保存在運(yùn)行過程中用到的用戶信息,讓用戶感覺到只有 自己一個(gè)人在使用系統(tǒng)。2) 郵件實(shí)體郵件實(shí)體用于持久化郵件,把郵件的所有相關(guān)信息存儲在數(shù)據(jù)庫中。5.2數(shù)據(jù)庫數(shù)據(jù)表結(jié)構(gòu)圖圖5.1 數(shù)據(jù)庫表結(jié)構(gòu)圖5.3數(shù)據(jù)庫表詳細(xì)結(jié)構(gòu)設(shè)計(jì)1.用戶表 users (由james服務(wù)器自動創(chuàng)建)字段名字段類型字段長度是否可為空說明user
34、namevarchar640(否)用戶登錄名pwdhashvarchar501(是)登錄密碼pwdalgorithmvarchar201(是)密碼加密算法2. 用戶信息表 userinfo字段名字段類型字段長度是否可為空說明usernamevarchar640用戶名realnamevarchar501真實(shí)姓名sexint41性別powerint41權(quán)限enableint41賬戶是否啟用departmentvarchar501所屬部門jobtitlevarchar501職位phonevarchar501電話addressvarchar501地址createtimevarchar501用戶賬戶創(chuàng)建
35、時(shí)間lastlogindatetime81用戶上次登錄時(shí)間3聯(lián)系人表 addresslist字段名字段類型字段長度是否可為空說明usernamevarchar500用戶名friendnamevarchar501用戶聯(lián)系人的賬戶名4. 收件箱表 inbox(由james服務(wù)器自動創(chuàng)建)字段名字段類型字段長度是否可為空說明message_namevarchar2000消息名稱repository_namevarchar2550存儲名message_statevarchar300消息狀態(tài)error_messagevarchar10001錯(cuò)誤消息sendervarchar2551發(fā)件人recipien
36、tstext160收件人remote_hostvarchar2550遠(yuǎn)程主機(jī)remote_addrvarchar200遠(yuǎn)程地址message_bodyimage160消息體message_attributesimage161消息屬性last_updateddatetime80最后一次更新5. 郵件緩存表 spool(由james服務(wù)器自動創(chuàng)建)字段名字段類型字段長度是否可為空說明message_namevarchar2000消息名稱repository_namevarchar2550存儲名message_statevarchar300消息狀態(tài)error_messagevarchar10001錯(cuò)
37、誤消息sendervarchar2551發(fā)件人recipientstext160收件人remote_hostvarchar2550遠(yuǎn)程主機(jī)remote_addrvarchar200遠(yuǎn)程地址message_bodyimage160消息體message_attributesimage161消息屬性last_updateddatetime80最后一次更新6. 發(fā)件箱表 outgoing字段名字段類型字段長度是否可為空說明idint40唯一標(biāo)識符,自動增長sendervarchar501發(fā)件人recepientvarchar501收件人ccvarchar501抄送收件人bccvarchar501密送收
38、件人subjectvarchar501主題contentvarchar501內(nèi)容sentdatedatetime81發(fā)送日期attachmentntext161附件第六章 系統(tǒng)詳細(xì)設(shè)計(jì)6.1 詳細(xì)設(shè)計(jì)概述軟件詳細(xì)設(shè)計(jì)的任務(wù)是,是為軟件結(jié)構(gòu)圖中的每個(gè)模塊確定所采用的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具給出清晰的描述,表達(dá)工具可以自由選擇,但工具必須具有描述過程細(xì)節(jié)的能力,而且能夠有利于程序員在編程時(shí)便于直接翻譯成程序設(shè)計(jì)語言的源程序。程序流程圖、盒圖、pad圖、hipu圖、pdl語言等等都是完成詳細(xì)設(shè)計(jì)的工具,選擇合適的工具并且正確地使用是十分重要的。在概要設(shè)計(jì)階段,已經(jīng)確定了軟件系統(tǒng)的總體
39、結(jié)構(gòu),給出了軟件系統(tǒng)中各個(gè)組成模塊的功能和模塊間的接口。作為軟件設(shè)計(jì)的第二步,軟件詳細(xì)設(shè)計(jì)就是在軟件概要設(shè)計(jì)的基礎(chǔ)上,考慮如何實(shí)現(xiàn)定義的軟件系統(tǒng),直到對系統(tǒng)中的每個(gè)模塊給出了足夠詳細(xì)的過程描述。在軟件詳細(xì)設(shè)計(jì)以后,程序員將仍舊根據(jù)詳細(xì)設(shè)計(jì)的過程編寫出實(shí)際的程序代碼。因此,軟件詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼質(zhì)量。6.2 程序流程圖流程圖,是一種用規(guī)定的程序框、流程線及文字說明來準(zhǔn)確、直觀地表示算法的圖形。圖6.1 登錄系統(tǒng)流程圖6.3 郵件發(fā)送和接受由于本系統(tǒng)是一個(gè)郵件系統(tǒng),所以郵件的發(fā)送和接受是本系統(tǒng)的核心。因郵件的通信有其自己的一套通信協(xié)議,所以有必要介紹下郵件的通信原理和一些基本
40、協(xié)議。6.3.1 郵件通信原理電子郵件的工作過程遵循客戶/服務(wù)器模式。每份電子郵件的發(fā)送都要涉及到發(fā)送方與接收方,發(fā)送方式構(gòu)成客戶端,而接收方構(gòu)成服務(wù)器,服務(wù)器含有眾多用戶的電子信箱。發(fā)送方通過郵件客戶程序,將編輯好的電子郵件向郵局服務(wù)器(smtp服務(wù)器)發(fā)送。郵局服務(wù)器識別接收者的地址,并向管理該地址的郵件服務(wù)器(pop3服務(wù)器)發(fā)送消息。郵件服務(wù)器識將消息存放在接收者的電子信箱內(nèi),并告知接收者有新郵件到來。接收者通過郵件客戶程序連接到服務(wù)器后,就會看到服務(wù)器的通知,進(jìn)而打開自己的電子信箱來查收郵件。圖6.2 郵件傳輸示意圖6.3.2 郵件地址的構(gòu)成e-mail象普通的郵件樣,也需要地址,它
41、與普通郵件的區(qū)別在于它是電子地址。所有在internet之上有信箱的用戶都有自己的一個(gè)或幾個(gè)email address,并且這些email address都是唯一的。郵件服務(wù)器就是根據(jù)這些地址,將每封電子郵件傳送到各個(gè)用戶的信箱中,email address就是用戶的信箱地址。就象普通郵件一樣,你能否收到你的e-mai1,取決于你是否取得了正確的電子郵件地址。電子郵件地址的格式是“userserver.com”,由三部分組成。第一部分“user”代表用戶信箱的帳號,對于同一個(gè)郵件接收服務(wù)器來說,這個(gè)帳號必須是唯一的;第二部分“”是分隔符;第三部分“server.com”是用戶信箱的郵件接收服務(wù)
42、器域名,用以標(biāo)志其所在的位置。6.3.3 常見郵件協(xié)議當(dāng)前常用的電子郵件協(xié)議有smtp、pop3、imap4,它們都隸屬于tcp/ip協(xié)議簇,默認(rèn)狀態(tài)下,分別通過tcp端口25、110和143建立連接。下面分別對他們進(jìn)行簡單介紹。smtp(simple mail transfer protocol, 簡單郵件傳輸協(xié)議):smtp主要負(fù)責(zé)底層的郵件系統(tǒng)如何將郵件從一臺機(jī)器傳至另外一臺機(jī)器。pop(post office protocol,郵局協(xié)議):目前的版本為pop3,負(fù)責(zé)從郵件服務(wù)器中檢索電子郵件會把郵件從郵件服務(wù)器中傳輸?shù)奖镜赜?jì)算機(jī)。imap(internet message access
43、 protocol,因特網(wǎng)消息訪問協(xié)議):目前的版本為imap4, 是pop3的一種替代協(xié)議,但是又優(yōu)于pop的新協(xié)議??朔藀op的一些缺點(diǎn), 對郵件的操作可以不需要把郵件從服務(wù)器下載到用戶的個(gè)人計(jì)算機(jī)上。6.3.4 關(guān)鍵算法發(fā)送郵件程序核心代碼:/* * 發(fā)送郵件,可以有多個(gè)to, cc, bcc * param user 當(dāng)前登錄用戶 * param newmailform 郵件表單 * throws exception */public void sendmail(userdto user, newmailform newmailform) throws exceptionstring
44、 from = user.getusername() + ;string recepients = newmailform.getrecepients();string rec = recepients.split(;);address tos = new internetaddressrec.length;for (int i=0; irec.length; i+)if(reci.indexof(this.domain) 0)reci = reci + ;tosi = new internetaddress(reci); string cc = newmailform
45、.getcc();address ccs = null;if(null != cc & != cc)string cc_ = cc.split(;);ccs = new internetaddresscc_.length;for (int i=0; icc_.length; i+)if(cc_i.indexof(this.domain) 0)cc_i = cc_i + ;ccsi = new internetaddress(cc_i); string bcc = newmailform.getbcc();address bccs = null;if(null != bcc & !=
46、 bcc)string bcc_= bcc.split(;);bccs = new internetaddressbcc_.length;for (int i=0; ibcc_.length; i+)if(bcc_i.indexof(this.domain) 0)bcc_i = bcc_i + ;bccsi = new internetaddress(bcc_i); string content = newmailform.getcontent();string subject = newmailform.getsubject();string filename = newmail
47、form.getfilename();properties props = new properties();props.setproperty(mail.smtp.auth, true);props.setproperty(tocol, smtp);props.setproperty(mail.host, localhost);props.setproperty(mail.smtp.port, 25);props.setproperty(mail.from, from);session session = session.getdefaultinstanc
48、e(props);message msg = new mimemessage(session);msg.setfrom(new internetaddress(from); msg.setrecipients(message.recipienttype.to, tos);if(null != cc & != cc)msg.setrecipients(message.recipienttype.cc, ccs);if(null != bcc & != bcc)msg.setrecipients(message.recipienttype.bcc, bccs);if(subject != null
49、 & subject != )msg.setsubject(subject);else if(subject = | subject = null)msg.setsubject(無主題);msg.setsentdate(new date();msg.settext(content);if(filename != & filename != null)multipart part = new mimemultipart();/新建一個(gè)mimemultipart對象用來存放多個(gè)bodypart對象bodypart bodytext = new mimebodypart();bodypart bod
50、y = new mimebodypart();filedatasource fds = new filedatasource(filename);datahandler dh=new datahandler(fds);body.setfilename(mimeutility.encodeword(fds.getname(), utf-8, null);/可以和原文件名不一致 ,解決中文亂碼body.setdatahandler(dh);part.addbodypart(body);bodytext.settext(content);part.addbodypart(bodytext);msg.setcontent(part);/把part作為消息對象的內(nèi)容msg.savechanges();transport transport = session.gettransport();transport.connect(from, user.getpassword();transport.sendmessage(msg, msg.getallrecipien
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 營銷團(tuán)隊(duì)管理制度
- 餐飲管理公司員工權(quán)益保障合同范本
- 互聯(lián)網(wǎng)餐飲平臺運(yùn)營管理及投資合同
- 物業(yè)能耗節(jié)能方案
- 釣魚魚塘運(yùn)營方案
- 礦井清風(fēng)補(bǔ)漏方案
- 更換井蓋施工方案
- 知識產(chǎn)權(quán)作品保管合同范本
- 公司點(diǎn)工聘用方案
- 納稅籌劃方案書
- 技術(shù)異化的解放路徑-洞察及研究
- 2025年連云港市中考語文試卷真題(含標(biāo)準(zhǔn)答案)
- 2025年學(xué)校校長公開選拔筆試試題及參考答案校長招聘考試筆試真題
- T/CGMA 033002-2020壓縮空氣站節(jié)能設(shè)計(jì)指南
- 自縊患者的護(hù)理
- 2025年4月自考00908網(wǎng)絡(luò)營銷與策劃試題及答案
- 南通國家級南通經(jīng)濟(jì)技術(shù)開發(fā)區(qū)公開招聘招商人員筆試歷年參考題庫附帶答案詳解
- 2025年數(shù)字媒體藝術(shù)專業(yè)考試試卷及答案
- 留疆戰(zhàn)士考試試題及答案
- 2025+CSCO前列腺癌診療指南進(jìn)展
- 砂紙契房訂金合同協(xié)議
評論
0/150
提交評論