《軟件開發(fā)與設(shè)計》課程結(jié)業(yè)報告格式參照.doc_第1頁
《軟件開發(fā)與設(shè)計》課程結(jié)業(yè)報告格式參照.doc_第2頁
《軟件開發(fā)與設(shè)計》課程結(jié)業(yè)報告格式參照.doc_第3頁
《軟件開發(fā)與設(shè)計》課程結(jié)業(yè)報告格式參照.doc_第4頁
《軟件開發(fā)與設(shè)計》課程結(jié)業(yè)報告格式參照.doc_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

審定成績: 重慶郵電大學軟件開發(fā)與設(shè)計課程結(jié)業(yè)報告課程結(jié)業(yè)選題:基于JAVA的網(wǎng)上文件管理系統(tǒng)學 院 名 稱 :計算機科學與技術(shù)學院學 生 姓 名 :專 業(yè) :計算機科學與技術(shù)班 級 :學 號 :指 導 教 師 :雷大江 填表時間:2012 年 6 月 摘 要隨著Internet的快速發(fā)展,Internet中的數(shù)據(jù)管理也越來越復雜,文件也是Internet數(shù)據(jù)中的一種。網(wǎng)上文件管理系統(tǒng)是針對Internet時代的數(shù)據(jù)管理和數(shù)據(jù)共享需求而開發(fā)的。它可以管理存放在網(wǎng)絡(luò)中任意點的各種文件,并對這些文件進行添加、修改和刪除操作。特別是對大型公司而言,使用網(wǎng)上文件管理系統(tǒng)還可以解決訪問者通過局域網(wǎng)訪問時存在的查詢搜索不便等問題。在網(wǎng)上文件管理系統(tǒng)中,客戶可以很方便的對數(shù)據(jù)進行瀏覽,且操作簡單,適合Intranet中各種不同類型、不同程度用戶的使用。本論文所實現(xiàn)的網(wǎng)上文件管理系統(tǒng)是網(wǎng)絡(luò)資源的一種共享機制。用Eclipse作為開發(fā)工具,Tomcat作為WEB服務(wù)器,使用實現(xiàn)MVC模式的STRUTS框架及MYSQL實現(xiàn)后臺數(shù)據(jù)庫的管理來設(shè)計完成。系統(tǒng)采用對用戶分級管理的方式,為不同級別的用戶提供不同的資源服務(wù)。一般來說,網(wǎng)上文件管理系統(tǒng)包含兩大服務(wù)類,一類是用戶管理,一類是資源共享。其中資源共享有分為對資源的上傳、下載及刪除。在網(wǎng)上文件管理系統(tǒng)中,最重要的是權(quán)限管理,因為網(wǎng)上文件管理系統(tǒng)的大部分操作都需要權(quán)限驗證,如何簡潔、有效果的進行權(quán)限驗證,是本系統(tǒng)設(shè)計時的一個重要考慮?!娟P(guān)鍵詞】文件管理 用戶管理 上傳 下載目 錄前 言1第一章 網(wǎng)上文件管理系統(tǒng)概述2第一節(jié) 系統(tǒng)需求分析2第二節(jié) 系統(tǒng)功能2第三節(jié) 系統(tǒng)的特點3第四節(jié) 系統(tǒng)設(shè)計方案及運行架構(gòu)3第五節(jié) 本章小結(jié)4第二章 系統(tǒng)概要設(shè)計5第一節(jié) 系統(tǒng)設(shè)計思想5第二節(jié) 數(shù)據(jù)流圖5第三節(jié) 系統(tǒng)用例圖6第四節(jié) 系統(tǒng)功能模塊劃分6一、普通用戶功能模塊6二、管理員界面的系統(tǒng)模塊7第五節(jié) 本章小結(jié)8第三章 數(shù)據(jù)庫設(shè)計9第一節(jié) 數(shù)據(jù)模型設(shè)計9第二節(jié) 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計9一、用戶信息表10二、文件信息表10第三節(jié) 本章小結(jié)13第一節(jié) 系統(tǒng)用戶界面設(shè)計14一、用戶登錄14二、用戶功能界面15三、新建用戶功能16四、編輯管理用戶功能17五、文件的上傳、下載及刪除功能20六、注銷登錄功能21第二節(jié) 系統(tǒng)功能模塊詳細設(shè)計22一、用戶登錄功能22二、瀏覽所有用戶功能25三、新建用戶功能25四、編輯用戶功能28五、刪除用戶功能30六、瀏覽用戶目錄功能31七、上傳文件功能32八、下載文件功能34九、刪除文件功能34十、用戶注銷登錄功能35第三節(jié) 本章小結(jié)36第五章 系統(tǒng)特點及關(guān)鍵技術(shù)37第一節(jié) struts-config.xml部署描述符37第二節(jié) 使用模塊化設(shè)計37第三節(jié) 使用數(shù)據(jù)庫連接池37第四節(jié) 本章小結(jié)38結(jié) 論39參考文獻40前 言隨著信息時代的到來,計算機及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,每個企業(yè)得到了前所未有的發(fā)展機遇,但同時也必須面對市場經(jīng)濟的嚴重挑戰(zhàn)。企業(yè)要求生存、謀發(fā)展,就必須進行科學的管理,其中很重要的一方面就是企業(yè)的文件管理。但目前的管理手段和管理方式相對落后,不僅浪費了許多人力和物力,同時也不利于資源共享,已經(jīng)不能適應(yīng)新形式下的文件管理工作。為了減輕管理員工作,提高網(wǎng)絡(luò)文件管理的高效性,建立一套有效的網(wǎng)上文件管理系統(tǒng)是十分必要的。此設(shè)計是針對Internet時代的數(shù)據(jù)管理及共享需求而開發(fā)的網(wǎng)上文件管理系統(tǒng)。它可實現(xiàn)用戶管理和資源共享兩大類服務(wù),在本系統(tǒng)中,用戶主要分為管理員和用戶兩類,用戶目錄的開發(fā)級別主要分為公有和私有兩大類。私有目錄不允許除管理員與擁有者外的其他用戶進入其中訪問,而公有目錄則沒有這個限制。在公有目錄級別下又設(shè)置上傳、下載、刪除級別,只有在相應(yīng)級別下,方可在公有目錄下對文件進行上傳、下載、及刪除操作。本文以一個網(wǎng)上文件管理系統(tǒng)的實現(xiàn)為目標,主要做了以下工作:第一章主要介紹了網(wǎng)上文件管理系統(tǒng)的需求分析;系統(tǒng)的功能及特點;以及系統(tǒng)設(shè)計的方案及運行架構(gòu)。第二章概述了系統(tǒng)的概要設(shè)計、數(shù)據(jù)流圖、系統(tǒng)用例圖以及系統(tǒng)功能模塊的劃分。第三章和第四章側(cè)重介紹了整個系統(tǒng)的數(shù)據(jù)庫設(shè)計和功能設(shè)計。第五章和結(jié)論主要對本文內(nèi)容進行簡要概括,并對后續(xù)工作做一些展望。第一章 網(wǎng)上文件管理系統(tǒng)概述網(wǎng)上文件管理系統(tǒng)主要用于提供資源共享。由于每位用戶希望為其他用戶提供的共享服務(wù)等級不盡相同,因此要為每個用戶設(shè)置不同的等級,為每個用戶的目錄設(shè)置不同的訪問等級是非常必要的。在本系統(tǒng)中,用戶主要分為管理員和用戶兩類,用戶目錄的開發(fā)級別主要分為公有和私有兩大類。私有目錄不允許除管理員與擁有者外的其他用戶進入其中訪問,而公有目錄則沒有這個限制。在公有目錄級別下又設(shè)置上傳、下載、刪除級別,只有在相應(yīng)級別下,方可在公有目錄下對文件進行上傳、下載、及刪除操作。第一節(jié) 系統(tǒng)需求分析網(wǎng)上文件管理系統(tǒng)需要進行嚴格的用戶認證才可使用。管理員擁有最高權(quán)限,在用戶管理方面,可以增加、刪除用戶,并對用戶信息進行修改。在文件管理方面,可以刪除任何目錄中的文件,除此之外,管理員在公有目錄中,可以根據(jù)目錄的共享級別上傳或者下載文件,在私有目錄中,則只能瀏覽用戶的文件列表。普通用戶可以全權(quán)管理自己目錄的文件,即進行上傳、下載及刪除的操作??梢詾g覽公有目錄,根據(jù)公有目錄的共享級別上傳、下載或者上傳文件。當普通用戶目錄設(shè)置為公有時,可以對其他用戶進行上傳、下載、刪除操作的限制。普通用戶不能進入不屬于自己的私有目錄。第二節(jié) 系統(tǒng)功能網(wǎng)上文件管理系統(tǒng)將用戶劃分為管理員和用戶兩類,用戶目錄的開發(fā)級別主要分為公有和私有兩大類,他們的權(quán)限不同,能夠使用的功能也就不同。網(wǎng)上文件管理系統(tǒng)主要完成的功能有:用戶登錄功能;瀏覽所有用戶功能;新建用戶功能;編輯用戶功能;刪除用戶功能;瀏覽用戶目錄功能;上傳文件功能;下載文件功能;刪除文件功能;用戶注銷登錄功能。第三節(jié) 系統(tǒng)的特點本系統(tǒng)具有以下特點:基于B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。使用ECLIPSE作為開發(fā)工具,TOMCAT作為WEB服務(wù)器,由于使用了實現(xiàn)MVC模式的STRUTS框架,使得軟件的視圖組件(JSP頁面)與控制器組件(用于處理業(yè)務(wù)邏輯) 得到了很好的分離。更利于軟件的開發(fā),維護與修改,同時提高了軟件的安全性。同時在界面設(shè)計上都使用了模塊化處理的思想,把很多頁面的共有部分集成一個模塊,例如頁面的頭部和尾部,這樣在開發(fā)時遇到這些相似的的頁面部分,就不需要重新編寫,而只要重用這部分代碼即可。第四節(jié) 系統(tǒng)設(shè)計方案及運行架構(gòu)由于網(wǎng)上文件管理系統(tǒng)是用于方便用戶在網(wǎng)上對文件進行管理,是面向internet的WEB應(yīng)用,需要使用B/S(瀏覽器/服務(wù)器)架構(gòu)。B/S架構(gòu)的用戶使用的是人們上網(wǎng)沖浪時必不可少的瀏覽器。這種方式簡單易學,培訓成本低,因此B/S架構(gòu)得到迅速拓展。根據(jù)以上的分析,確定系統(tǒng)的運行服務(wù)器為開源組織Apache的開源服務(wù)器tomcat,使用基于開源框架struts技術(shù)完成動態(tài)交互功能,后臺的數(shù)據(jù)庫則使用MYSQL,系統(tǒng)架構(gòu)圖如圖1.1所示。圖1.1 系統(tǒng)的架構(gòu)圖第五節(jié) 本章小結(jié)本章介紹了網(wǎng)上文件管理系統(tǒng)的需求分析、系統(tǒng)的功能及特點、以及系統(tǒng)設(shè)計的方案及運行架構(gòu),為系統(tǒng)的設(shè)計和實現(xiàn)打下了基礎(chǔ)。第二章 系統(tǒng)概要設(shè)計第一節(jié) 系統(tǒng)設(shè)計思想本系統(tǒng)使用實現(xiàn)了MVC(視圖-模型-控制器)模式的STRUTS框架來進行整個系統(tǒng)的架構(gòu)。系統(tǒng)按照功能劃分成許多小的模塊,每個模塊獨立存在,模塊與模塊之間是一種松散耦合關(guān)系,非常有利于系統(tǒng)的維護與擴充。同時每個模塊又按照MVC模式劃分為視圖、模型、控制器3個組件,其中視圖組件為JSP頁面文件,是用戶與系統(tǒng)的交互界面;模型組件是一個用于在視圖組件和控制器組件之間傳遞表單數(shù)據(jù)的java類;控制器組件是一個用于處理業(yè)務(wù)邏輯,控制全局頁面跳轉(zhuǎn)等業(yè)務(wù)的java類。網(wǎng)上文件管理系統(tǒng)的作用在于提供給用戶方便安全的管理文件,這種管理文件的方式即是上傳文件和下載文件。因此,對于文件的管理是網(wǎng)上文件管理系統(tǒng)的一個核心功能。管理文件的權(quán)利只能給予特定的人和文件所有人,否則容易失去秩序,基于同樣的考慮,刪除修改文章的權(quán)利也只能提供給特定人群(即管理員)和文件所有人。因此,用戶的劃分應(yīng)該成為網(wǎng)上文件管理系統(tǒng)的一個核心思想,系統(tǒng)將用戶劃分為用戶、管理員兩類,他們的權(quán)限不同,各司其職,其中,管理員擁有最高的權(quán)利,可以對用戶、文件兩個對象進行增加、刪除及修改的操作。第二節(jié) 數(shù)據(jù)流圖數(shù)據(jù)流圖,即DFD圖(Data Flow Diagram),是用于分析系統(tǒng)數(shù)據(jù)流程的圖形,意在讓用戶理解系統(tǒng)的功能、輸入、輸出和數(shù)據(jù)存儲等。網(wǎng)上文件管理系統(tǒng)的第一層數(shù)據(jù)流圖如圖2.1所示,描述系統(tǒng)由哪幾部分組成,各部分之間有什么聯(lián)系。圖2.1 網(wǎng)上文件管理系統(tǒng)的第一層數(shù)據(jù)流圖第三節(jié) 系統(tǒng)用例圖用例圖用來確定需求的范圍,這些需求是設(shè)計開發(fā)的依據(jù)。用例圖將系統(tǒng)看作墨盒,從外部執(zhí)行者的角度來理解系統(tǒng)。圖中的用例是用戶與計算機之間的一次典型交互作用,在UML中,用例表示為一個橢圓。執(zhí)行者是指用戶在系統(tǒng)中所扮演的角色。其圖形化的表示是一個小人。這里需要注意的是,執(zhí)行者在用例圖中是用類似人的圖形來表示的,但執(zhí)行者未必是人。例如,執(zhí)行者可以是一個外界系統(tǒng),該外界系統(tǒng)可能需要從當前系統(tǒng)中獲取信息,與當前系統(tǒng)進行交互。網(wǎng)上文件管理系統(tǒng)的用例圖如圖2.2所示:圖2.2 網(wǎng)上文件管理系統(tǒng)的用例圖第四節(jié) 系統(tǒng)功能模塊劃分根據(jù)上面的系統(tǒng)功能分析,可以畫出系統(tǒng)的功能模塊圖,本系統(tǒng)從普通用戶界面,管理員界面對功能模塊加以描述。一、普通用戶功能模塊普通用戶可以全權(quán)管理自己目錄的文件,即進行上傳、下載及刪除的操作??梢詾g覽公有目錄,根據(jù)公有目錄的共享級別上傳、下載或者上傳文件。當普通用戶目錄設(shè)置為公有時,可以對其他用戶進行上傳、下載、刪除操作的限制。普通用戶不能進入不屬于自己的私有目錄,普通用戶的功能模塊如圖2.3所示:圖2.3 普通用戶功能模塊圖二、管理員界面的系統(tǒng)模塊管理員擁有最高權(quán)限,在用戶管理方面,可以增加、刪除用戶,并對用戶信息進行修改。在文件管理方面,可以刪除任何目錄中的文件,除此之外,管理員在公有目錄中,可以根據(jù)目錄的共享級別上傳、下載文件,在私有目錄中,則只能瀏覽用戶的文件列表,管理員的功能模塊如圖2.4所示:圖2.4 管理員功能模塊圖第五節(jié) 本章小結(jié)本章講述了網(wǎng)上文件管理系統(tǒng)的概要設(shè)計、數(shù)據(jù)流圖、系統(tǒng)用例圖以及系統(tǒng)功能模塊的劃分。第三章 數(shù)據(jù)庫設(shè)計第一節(jié) 數(shù)據(jù)模型設(shè)計根據(jù)前面的需求描述,本系統(tǒng)中所涉及的可以抽象出來的數(shù)據(jù)模型有:用戶(User)、用戶文件(UserFile),這些數(shù)據(jù)模型在系統(tǒng)中相互聯(lián)系。用戶(User):代表用戶實體。主要屬性有用戶ID(id)、用戶名(username)、密碼(password)、磁盤大小(diskquota)、允許上傳(canupload)、是否公有(ifpublic)、用戶等級(grade)、允許下載(candownload) 、允許刪除(candelete)。用戶文件(UserFile):代表用戶文件實體。主要屬性有文件編號(fileId,自動增長)、文件類型(fileType)、擁有者(owner)、文件名(filename)、文件大?。╢ilesize)、上傳時間(uploadtime)、位置(location)。為了描述各個數(shù)據(jù)模型,可以使用實體關(guān)系圖(Entity Relationship Diagram,ERD)。用ERD描述數(shù)據(jù)模型能夠預先精確定義數(shù)據(jù)需求,從而能夠?qū)σ院蟮母膭幼龀鲇行У囊?guī)劃。本系統(tǒng)的ERD如圖3.1所示:圖3.1 網(wǎng)上文件管理系統(tǒng)的ERD第二節(jié) 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計對應(yīng)于數(shù)據(jù)模型,設(shè)計出的數(shù)據(jù)庫一共分為兩張表,即用戶表(user)和文件表(file)。數(shù)據(jù)庫的名稱為filemanager,建立數(shù)據(jù)庫的SQL語句如下。Create database if not exists filemanager;表的具體結(jié)構(gòu)如下。一、用戶信息表用戶表(user)有如下字段:用戶ID(id)、用戶名(username)、密碼(password)、磁盤空間大小(diskquota)、是否公開(ifpublic)、允許上傳(canupload)、允許下載(candownload)、允許刪除(candelete)和用戶級別(grade)。其中id為主鍵,不允許重復,不允許為空。其定義如表3.1所示:表3.1 用戶信息表字段名字段類型字段長度是否允許為空是否為主鍵描述idint4不允許是用戶IDUsernamevarchar100不允許否用戶名Passwordvarchar100不允許否密碼diskquotafloat不允許否磁盤大小ifpublictinyint1不允許否是否公有canuploadtinyint1允許否允許上傳candownloadtinyint1允許否允許下載candeletetinyint1允許否允許刪除gradevarchar10允許否用戶等級下面是建立用戶信息表的SQL語句。CREATE TABLE user ( id int(4) NOT NULL auto_increment, /用戶ID username varchar(100) NOT NULL, /用戶名 password varchar(100) NOT NULL, /密碼 diskquota float NOT NULL, /磁盤大小 ifpublic tinyint(1) NOT NULL, /是否公有 canupload tinyint(1) default 0, /允許上傳 candownload tinyint(1) default 0, /允許下載 candelete tinyint(1) default 0, /允許刪除 grade varchar(10) default user, /用戶等級 PRIMARY KEY (id) /設(shè)置id為主鍵)二、文件信息表文件信息表(file)擁有如下字段:ID、文件類型(fileType)、擁有者(owner)、文件名(filename)、文件大?。╢ilesize)、上傳時間(uploadtime)、位置(location)。其中fileId為主鍵,不允許重復,不允許為空。其定義如表3.2所示:表3.2 文件信息表字段名字段類型字段長度是否允許為空是否為主鍵描述ownerint4不允許否擁有者fileIdInteger10不允許是文件idfileTypevahchar100不允許否文件類型filenamevahchar300不允許否文件名filesizefloat不允許否文件大小uploadtimedate不允許否上傳時間locationvarchar300不允許否位置下面是建立用戶信息表的SQL語句。CREATE TABLE file ( owner int(4) NOT NULL, filename varchar(200) NOT NULL, filesize float NOT NULL, uploadtime date NOT NULL, location varchar(300) NOT NULL, fileId int(11) NOT NULL auto_increment COMMENT 上傳文件的id, fileType varchar(45) NOT NULL default , PRIMARY KEY (fileId))創(chuàng)建好表之后的數(shù)據(jù)庫如圖3.2所示:圖3.2 系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)示意圖第三節(jié) 本章小結(jié)本章設(shè)計了系統(tǒng)的整體架構(gòu),對于數(shù)據(jù)模型,設(shè)計出了數(shù)據(jù)庫filemanager的兩個表,用戶表(user)和文件表(file)。FfFfff第四章 系統(tǒng)詳細設(shè)計網(wǎng)上文件管理系統(tǒng)分為管理員和普通用戶兩大類。所有用戶(管理員、用戶),提供的功能包括登錄系統(tǒng)、下載文件、上傳文件、注銷登錄。管理人員(管理員),提供的功能包括管理用戶、管理文件。系統(tǒng)入口:http:/localhost:8080/FileManager/第一節(jié) 系統(tǒng)用戶界面設(shè)計一、用戶登錄用戶在瀏覽器中輸入http:/localhost:8080/FileManager/,即可進入用戶登錄頁面。此頁面是系統(tǒng)唯一的入口,管理員及用戶都在此處進行身份驗證,如圖4.1所示:圖4.1 用戶登錄界面如果用戶沒有通過身份驗證,則請求將被轉(zhuǎn)發(fā)到消息頁面,頁面會顯示提示消息:“登錄失敗,用戶名與密碼不匹配”,如圖4.2所示:圖4.2 登錄失敗二、用戶功能界面當用戶通過了身份驗證,則轉(zhuǎn)到用戶列表頁面。頁面上指明了當前登錄的用戶,例如deboer。頁面顯示出所有用戶,并提供新建、編輯、刪除用戶的入口。當然,這些對用戶的操作只能由管理員進行。所有用戶都可以通過用戶的鏈接進入該用戶的目錄(如果該用戶被允許進入目錄的話),如圖4.3所示:圖4.3 用戶列表頁面頁面的右上角提供了“新建用戶”的鏈接。此功能僅允許管理員使用,如果非管理員試圖進行此操作,則會進入消息頁面,顯示提示消息:“很抱歉,您不是管理員,不能添加用戶!”,如圖4.4所示:圖4.4 非管理員不能添加用戶三、新建用戶功能當管理員單擊“新建用戶”鏈接,則會轉(zhuǎn)到新建用戶頁面,如圖4.5所示,對用戶的磁盤大小,目錄開發(fā)限制及用戶等級進行初始設(shè)置。圖4.5 新建用戶頁面設(shè)置完成之后,頁面將跳轉(zhuǎn)回用戶列表頁面,如圖4.6所示,列表中已經(jīng)新增了用戶hudebo。圖4.6 新增用戶hudebo四、編輯管理用戶功能頁面中每個用戶行都提供了“編輯”鏈接,提供修改用戶的入口。此功能僅允許管理員使用,如果是非管理員不能修改用戶,如圖4.7所示:圖4.7 非管理員不能修改用戶當管理員使用某行用戶的“編輯”鏈接,則會跳轉(zhuǎn)到修改用戶頁面。對用戶的磁盤大小,目錄開放限制及用戶等級重新設(shè)置。頁面顯示出這些原來的內(nèi)容。以用yu為例,如圖4.8所示:圖4.8 修改用戶yu經(jīng)過設(shè)置,yu用戶的目錄現(xiàn)在對所有用戶開放,如圖4.9所示,yu用戶的目錄已經(jīng)允許察看。圖4.9 用戶yu目錄由私有變?yōu)楣许撁婷總€用戶列表都提供了“刪除”鏈接,提供刪除用戶的入口。此功能僅允許管理員使用,如果是非管理員則不能刪除用戶,如圖4.10所示:圖4.10 非管理員不能刪除用戶當管理員對某行用戶使用“刪除”鏈接,則會從數(shù)據(jù)庫中刪除該用戶,從文件中刪除用戶擁有的目錄,然后轉(zhuǎn)到用戶列表頁面。以hudebo為例,將其刪除之后,列表中已經(jīng)不存在hudebo用戶,如圖4.11所示:圖4.11 刪除了用戶hudebo用戶列表提供了用戶名的鏈接,以提供進入該用戶目錄的入口,但此入口僅當用戶為管理員,或者目錄為公有目錄是才允許非擁有者進入。當然,用戶可以自由進出自己的目錄。如果用戶不滿足進入目錄的條件,則轉(zhuǎn)入消息頁面,出現(xiàn)提示消息:“很抱歉,您未被賦予查看此目錄的權(quán)限!原因可能為:您不是管理員或者擁有者,或者此目錄未對公眾開放”,如圖4.12所示:圖4.12 不能進入目錄的情況當用戶符合進入某個目錄的條件時,則跳轉(zhuǎn)到文件列表頁面。如圖4.13所示,此時用戶yu進入的是deboer的目錄。圖4.13 文件列表頁面五、文件的上傳、下載及刪除功能用戶可以在自己目錄中自由地進行上傳、下載及刪除文件的操作。如圖4.13所示,當用戶yu上傳了文件login.jsp后,列表中更新了文件信息,可以看出文件名、文件大小、上傳時間等。圖4.13 上傳了文件login.jsp當管理員使用某行文件的“刪除”鏈接,則會從數(shù)據(jù)庫中刪除該文件的信息,從文件系統(tǒng)中刪除該文件,然后轉(zhuǎn)到文件列表頁面。在目錄中,只有符合許可條件時才能對文件進行上傳、下載及刪除操作。這些許可條件如下。刪除:擁有者及管理員且要擁有者開放權(quán)限;上傳:擁有者及管理員且要擁有者開放權(quán)限;下載:擁有者及管理員且要擁有者開放權(quán)限。當用戶hudebo進入用戶yu的目錄試圖上傳文件時,系統(tǒng)檢查到hudebo不是管理員或yu目錄并未開放上傳權(quán)限,于是將請求轉(zhuǎn)發(fā)到消息頁面。當用戶符合“下載”操作的條件,則會跳出文件下載的窗口,以下載用戶選定的文件,如圖4.14所示:圖4.14 下載文件六、注銷登錄功能當用戶單擊頁面右上角的“注銷登錄”鏈接,則會注銷此次登錄,回到用戶登錄頁面,如圖4.15所示:圖4.15 注銷登錄第二節(jié) 系統(tǒng)功能模塊詳細設(shè)計本節(jié)將按照每個功能的劃分依次講述系統(tǒng)的實現(xiàn)細節(jié),思路依照網(wǎng)上文件管理系統(tǒng)的操作流程,追蹤各項操作的內(nèi)部運行機制及運行效果,按照各個功能點來詳細闡述系統(tǒng)的編碼實現(xiàn)過程。對于每個功能點的闡述將按照Struts框架來進行,即講述每個功能的MVC架構(gòu)的各個組件(模型、視圖、控制器),以及它們是如何有機組合,協(xié)調(diào)工作的。一、用戶登錄功能1、實現(xiàn)用戶登錄功能的組件用戶登錄功能是通過視圖組件login.jsp;模型組件LoginForm.java;控制器組件LoginAction.java共同實現(xiàn)的。在struts配置文件中,這幾個組件被有機的組織起來,以協(xié)同工作,共同完成用戶登錄功能。下面是配置文件中組織這幾個組件的相關(guān)代碼:在視圖組件login.jsp中,提交表單將發(fā)出login. do請求,從配置文件struts-config.xml可以看到:login. do請求將訪問控制器組件fm.action.LoginAction。而模型組件fm.form.LoginForm將獲取的數(shù)據(jù)傳遞給這個控制器組件進行處理,此部分的邏輯關(guān)系如圖4.16所示:圖4.16 登錄功能各組件間的關(guān)系2、視圖組件Login.jsp的主要功能是提供用戶登錄時填寫身份信息的表單。當用戶填寫完信息后,單擊“登錄”按鈕將提交login. do請求,該請求將傳遞給控制器組件LoginAction.java。表單中包含了“用戶名”及“密碼”文本框控件獲得數(shù)據(jù),其property屬性值依次為username、password。要注意此處的property屬性值必須與模型組件LoginForm類對象中的屬性名嚴格一一對應(yīng),否則將會出錯。3、模型組件LoginForm.java的作用是獲取來自視圖組件login.jsp中的數(shù)據(jù),并將其傳遞給控制器組件進行處理。LoginForm類的屬性有:username、password。它與視圖組件login.jsp的表單中所包含控件的property屬性值需要嚴格對應(yīng)。LoginForm類需要提供與上述屬性相對應(yīng)的get/set方法。4、控制器組件Login. do請求將訪問控制器組件LoginAction類。該類的作用是獲取模型組件LoginForm類傳遞過來的數(shù)據(jù),并經(jīng)過查詢數(shù)據(jù)庫進行身份驗證,操作完之后,將請求、轉(zhuǎn)發(fā)到配置文件定義好的頁面中去。5、本部分程序中用到的輔助類方法(1)User.checkUser方法用于檢驗用戶身份的合法性,即用戶密碼是否與數(shù)據(jù)庫中的信息一致:public static boolean checkUser(DB db, String username, String password)throws Exception String strSql;ResultSet rs;strSql = select * from user where username= + username+ and password= + password + ;rs = db.OpenSql(strSql);if (rs.next() return true; else return false;(2)User.search方法查詢得到登錄用戶的信息:public static User search(DB db, String username, String password)throws Exception User user = new User();ResultSet rs;String strSql = null;strSql = select * from user where username= + username+ and password= + password + ;rs = db.OpenSql(strSql);if (rs.next() user.setId(Integer.parseInt(rs.getString(id);user.setUsername(rs.getString(username);user.setPassword(rs.getString(password);user.setDiskquota(Float.parseFloat(rs.getString(diskquota);user.setIfpublic(Integer.parseInt(rs.getString(ifpublic);user.setCanupload(Integer.parseInt(rs.getString(canupload);user.setCandownload(Integer.parseInt(rs.getString(candownload);user.setCandelete(Integer.parseInt(rs.getString(candelete);user.setGrade(rs.getString(grade);return user;(3)User.searchUsers方法查詢得到所有用戶的信息:public static Vector searchUsers(DB db) throws Exception Vector userVector = new Vector();ResultSet rs;String strSql = null;strSql = select * from user;rs = db.OpenSql(strSql);while (rs.next() User user = new User();user.setId(Integer.parseInt(rs.getString(id);user.setUsername(rs.getString(username);user.setPassword(rs.getString(password);user.setDiskquota(Float.parseFloat(rs.getString(diskquota);user.setIfpublic(Integer.parseInt(rs.getString(ifpublic);user.setCanupload(Integer.parseInt(rs.getString(canupload); user.setCandownload(Integer.parseInt(rs.getString(candownload);user.setCandelete(Integer.parseInt(rs.getString(candelete);user.setGrade(rs.getString(grade);userVector.add(user);return userVector;6、本部分程序中用到的指代詞以下是程序中出現(xiàn)的一些指代詞。他們用在配置文件、常量文件以及消息資源文件中。(1)配置文件struts-config.xml(2)常量文件Constants.javapublic static final String LOGIN_USER_KEY = loginuser;public static final String USER_LIST_KEY = users;public static final String DATASOURCE_KEY = fmDB;(3)消息資源文件ApplicationResources_pertieserror.login.failed=登錄失?。河脩裘c密碼不匹配!二、瀏覽所有用戶功能用戶通過登錄驗證后,請求被轉(zhuǎn)發(fā)給ToUserList代表的頁面,即userlist.jsp頁面。此頁面提供了一個顯示所有用戶的表格,其中包含了多個操作的入口。單擊“新建用戶”連接,將發(fā)成checkpower.do?functiontype=newuser請求。單擊“注銷登錄”鏈接,將發(fā)出logoff.do請求。單擊某行用戶的“用戶名”鏈接,將發(fā)出checkpower.do?functiontype=managerfiles請求。單擊某行用戶的“編輯”鏈接,將發(fā)出checkpower.do?functiontype=modifyuser請求。單擊某行用戶的“刪除”鏈接,將發(fā)出checkpower.do?functiontype=deleteuser請求。三、新建用戶功能在用戶列表頁面中單擊頁面右上方的“新建用戶”鏈接,將發(fā)出newuser.do的請求。該請求經(jīng)過兩次控制器處理,最終完成新建用戶的功能。1、實現(xiàn)用戶登錄功能的組件新建用戶的過程中,用戶請求被兩次轉(zhuǎn)交給控制器處理,最后完成新建用戶的功能。由于新建用戶的功能只能給管理員使用,因此在完成這一功能時要經(jīng)過兩個步驟,第一步是權(quán)限驗證,第二步是填寫和提交內(nèi)容。這兩步需要兩個控制器來完成。新建用戶功能是通過視圖組件newuser.jsp及messagepage.jsp;模型組件NewUserForm.java;控制器組件CheckpowerAction.java及NewUserAction.java共同完成的。在struts配置文件中,這幾個組件被有機的組織起來,以協(xié)同工作,共同完成新建用戶的功能。下面是配置文件中組織這幾個組件的相關(guān)代碼: 此部分的邏輯如圖4.17所示:圖4.17 newuser.do請求2、視圖組件新建用戶的請求在通過權(quán)限的驗證后,將根據(jù)配置文件被轉(zhuǎn)發(fā)到ToNewUser代表的路徑,即進入新建用戶頁面newuser.jsp。此頁面在表單中包含一個用于填寫新用戶信息的表格,當輸入信息完成后,提交表單將發(fā)出newuser.do請求。3、模型組件NewUserForm.java的作用是獲取來自視圖組件newuser.jsp中的數(shù)據(jù),并將其傳遞給控制器組件進行處理。NewUserForm類的屬性需要與頁面表單中所包含組件的name屬性值嚴格對應(yīng)。NewUserForm類需要提供與上述屬性相對應(yīng)的get/set方法。4、控制器組件CheckPowerAction類的作用是檢查權(quán)限,以驗證當前登陸用戶是否可以進行某項操作。newuser.do請求將訪問控制器組件NewUserAction類。該類的作用是獲取模型組件NewUserForm類傳遞過來的數(shù)據(jù),并將其插入到數(shù)據(jù)庫中,操作完成之后,將請求轉(zhuǎn)發(fā)到配置文件定義好的頁面中去。5、本部分程序中用到的輔助類方法User.insert方法用于將心用戶信息插入到數(shù)據(jù)庫中。public boolean insert(DB db) throws Exception String strSql = null;strSql = insert into user(username, password, diskquota, ifpublic, canupload, candownload, candelete, grade)values (+ username+ ,+ password+ ,+ diskquota+ ,+ ifpublic+ ,+ canupload+ ,+ candownload+ ,+ candelete + , + grade + );if (db.ExecSql(strSql) = 0) return false; else return true;6、本部分程序中用到的指代詞以下是程序中出現(xiàn)的一些指代詞。他們用在配置文件、常量文件以及消息資源文件中。(1)配置文件struts-config.xml (2)常量文件Constants.javapublic static final String LOGIN_USER_KEY = loginuser;public static final String DATASOURCE_KEY = fmDB;(3)消息資源文件ApplicationResources_perties error.power.newuser.notadmin=很抱歉,您不是管理員,不能添加用戶!四、編輯用戶功能當單擊用戶列表頁面某位用戶的“編輯”鏈接時,將發(fā)出checkpower.do的請求,以驗證當前登陸用戶有沒有進行相應(yīng)操作的權(quán)限。只有在驗證通過后,才能進行編輯用戶的操作。該請求經(jīng)過兩次控制器處理,最終完成編輯用戶功能。1、實現(xiàn)編輯用戶功能的各個組件編輯用戶功能通過視圖組件modifyuser.jsp;模型組件ModifyUserForm.java;控制器組件CheckPowerAction.java及ModifyUserAction.java共同實現(xiàn)的。在Struts配置文件中,這幾個組件被有機的組織起來,以協(xié)同工作,共同完成編輯用戶的功能。下面是配置文件中組織這幾個組件的相關(guān)代碼:Checkpower.do的請求經(jīng)控制器組件fm.action.CheckPowerAction處理后,將轉(zhuǎn)發(fā)到視圖組件modifyuser.jsp中,提交此頁面的表單將發(fā)出modifyuser.do請求。可以從配置文件struts-config.xml中看到:modifyUser.do請求將訪問控制器組件fm.action.ModifyUserAction。而模型組件fm.form.ModifyUserForm 將獲取的數(shù)據(jù)傳遞給這個控制器組件進行處理。此部分的邏輯關(guān)系圖如圖4.18所示。 圖4.18 編輯用戶功能的各組件關(guān)系2、視圖組件編輯用戶的請求在通過權(quán)限驗證后,將根據(jù)配置文件被轉(zhuǎn)發(fā)到ToModifyUser代表的路徑,即進入編輯用戶頁面modifyuser.jsp。此頁面在表單總包含一個用于填寫待編輯的用戶信息的表格,當輸入信心完成后,提交表單將發(fā)出modifyuser.do請求。表單提供了各個用于輸入信息的組件。它們的name值與模型組件類的屬性名需要嚴格對應(yīng)。3、模型組件ModifyUserForm.java的作用是獲取視圖組件modifyuser.jsp中的數(shù)據(jù),并將其傳遞給控制器組件進行處理。ModifyUserForm類的屬性需要與頁面表單中的name屬性值嚴格對應(yīng)。ModifyUserForm類需要提供與上述屬性對

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論