freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-簡易電子郵件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-01-08 18:19 本頁面
 

【文章內(nèi)容簡介】 Controller 改變了 Models 的數(shù)據(jù)或者屬性,所有依賴的 View 都會(huì) 自動(dòng)更新。類似的,只要 Controller 改變了 View, View會(huì)從潛在的 Model 中獲取數(shù)據(jù)來刷新自己。 MVC 架構(gòu)是一種架構(gòu),其實(shí)需要其他模式協(xié)作完成。而 Struts 只實(shí)現(xiàn)了 MVC的 View 和 Controller 兩個(gè)部分, Model 部分需要開發(fā)者自己來實(shí)現(xiàn), Struts2 在整合了 Struts 和 webwork 后,終于徹底實(shí)現(xiàn)了 MVC 的架構(gòu)。 模型 (Model):就是業(yè)務(wù)流程 /狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),然后返回最終的處理結(jié)果。業(yè)務(wù)模型的 設(shè)計(jì)可以說是 MVC 最主要的核心。 MVC 設(shè)計(jì)模式告訴我們,吉林建筑 大學(xué) 畢業(yè)設(shè)計(jì) (論文 ) 5 把應(yīng)用的模型按一定的規(guī)則抽取出來,抽取的層次很重要,這也是判斷開發(fā)人員是否優(yōu)秀的設(shè)計(jì)依據(jù)。但 MVC 并沒有提供模型的設(shè)計(jì)方法,而只是告訴你應(yīng)該組織管理這些模型,以便于模型的重構(gòu)和提高重用性。我們可以用對象編程來做比喻, MVC 定義了一個(gè)頂級類,告訴它的子類只能做這些,但沒法限制只能做這些。業(yè)務(wù)模型還有一個(gè)很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實(shí)體對象的數(shù)據(jù)保存。 視圖 (View):代表用戶交互界面。對于 Web 應(yīng)用來說,可以概括為 HTML 界面,但也有可 能為 XHTML、 XML 和 Applet。由于應(yīng)用的復(fù)雜性和規(guī)模性,一個(gè)應(yīng)用可能有很多不同的視圖, MVC 設(shè)計(jì)模式對于視圖的處理,僅限于視圖上用戶的請求以及數(shù)據(jù)的采集和處理,而不包括在視圖上的業(yè)務(wù)流程的處理。因?yàn)闃I(yè)務(wù)流程的處理交予模型 (Model)處理。 控制 (Controller): 可以理解為從用戶接收請求 , 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。 模型、 視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化 傳播機(jī)制。模型、視圖、控制器三者之間的關(guān)系和各自的主要功能 [3],如圖 21 所示。 圖 21 MVC 組件類型的關(guān)系和功能圖 吉林建筑 大學(xué) 畢業(yè)設(shè)計(jì) (論文 ) 6 Struts2 框架技術(shù) Struts 框架的核心是一個(gè)靈活的控制層,它基于以下標(biāo)準(zhǔn)技術(shù),如: Java Servlet、 JavaBean、資源綁定、 XML 和各種 Jakarta Commons 包。 Struts2 是在另一個(gè)有名的框架 WebWork基礎(chǔ)上發(fā)展起來的。 Struts2 框架是當(dāng)前 Web 開發(fā)中最為流行的設(shè)計(jì)和開發(fā)框架。借助于 Struts2 框架,開發(fā)人員可以把更多的精力集中在如何解決實(shí)際業(yè)務(wù)處理上,無需在頁面和業(yè)務(wù)代碼之間的處理上花費(fèi)很多時(shí)間。 Struts2 開發(fā)框架遵循 MVC 設(shè)計(jì)模式 ,這樣可以將整個(gè)工程分為 3 個(gè)相對獨(dú)立而又能協(xié)同工作的組成部分(包括模型、視圖、控制器),開發(fā)人員可以從負(fù)責(zé)的頁面代碼、業(yè)務(wù)代碼和控制流程中具體分工 [4]。 1) 核心控制器: FilterDispatcher FilterDispatcher 是 Struts2框架的核心控制器,該控制器作為一個(gè) Filter運(yùn)行在Web 應(yīng)用中,它負(fù)責(zé)攔截所有的用戶請求,當(dāng)用戶請求到達(dá)時(shí),該 Filter 會(huì)過濾用戶請求。如果用戶請求以 action 結(jié)尾,該請求將被轉(zhuǎn)入 Struts2 框架處理。Struts2 框架獲得了 *.action 請求后,將 根據(jù) *.action 請求的前面部分決定調(diào)用哪個(gè)業(yè)務(wù)邏輯組件,例如,對于 請求, Struts2 調(diào)用名為 login 的 Action 來處理該請求。 Struts2應(yīng)用中的 Action都被定義在 ,在該文件中定義 Action時(shí),定義了該 Action 的 name 屬性和 class 屬性,其中 name 屬性決定了該 Action處理哪個(gè)用戶請求,而 class屬性決定了該 Action的實(shí)現(xiàn)類。 Struts2用于處理用戶請求的 Action實(shí)例,并不是用戶實(shí)現(xiàn)的業(yè)務(wù)控制器,而是 Action代 理 。因?yàn)橛脩魧?shí)現(xiàn)的業(yè)務(wù)控制器并沒有與 Servlet API耦合,顯然無法處理用戶請求。而 Struts2 框架提供了系列攔截器,該系列攔截器負(fù)責(zé)將 HttpServletRequest 請求中的請求參數(shù)解析出來,傳入到 Action 中,并回調(diào) Action 的 execute 方法來處理用戶請求。 用戶實(shí)現(xiàn)的 Action 類僅僅是 Struts2 的 Action 代理的代理目標(biāo)。用戶實(shí)現(xiàn)的業(yè)務(wù)控制器( Action)則包含了對用戶請求的處理。用戶的請求數(shù)據(jù)包含在HttpServletRequest對象里,而用戶的 Action類無需訪問 HttpServletRequest對象。攔截器負(fù)責(zé)將 HttpServletRequest 里的請求數(shù)據(jù)解析出來,并傳給業(yè)務(wù)邏輯組件Action 實(shí)例。 2) 業(yè)務(wù)控制器 業(yè)務(wù)控制器組件就是用戶實(shí)現(xiàn) Action 類的實(shí)例, Action 類里通常包含了一個(gè)execute 方法,該方法返回一個(gè)字符串 ; 該字符串就是一個(gè)邏輯視圖名,當(dāng)業(yè)務(wù)控制器處理完用戶請求后,根據(jù)處理結(jié)果不同, execute 方法返回不同字符串 。每個(gè)字符串對應(yīng)一個(gè)視圖名。 吉林建筑 大學(xué) 畢業(yè)設(shè)計(jì) (論文 ) 7 程序員開發(fā)出系統(tǒng)所需要的業(yè)務(wù)控制器后,還需要配置 Struts2 的 Action,即需要配置 Action 的如下三個(gè)部分定義: 所處理的 URL。 組件所對應(yīng)的實(shí)現(xiàn)類。 里包含的邏輯視圖和物理資源之間的對應(yīng)關(guān)系。 每個(gè) Action 都要處理一個(gè)用戶請求,而用戶請求總是包含了指定 URL。當(dāng)Filter Dispatcher 攔截到用戶請求后,根據(jù)請求的 URL 和 Action 處理 URL 之間的對應(yīng)關(guān)系來處理轉(zhuǎn)發(fā)。 3) Struts2 的模型組件 實(shí)際上,模型組件已經(jīng)超出了 MVC 框架的覆蓋范圍。對于 Struts 2 框架而言,通常沒有為模型組件的實(shí)現(xiàn)提供太多的幫助。 Java EE 應(yīng)用里的模型組件,通常指系統(tǒng)的業(yè)務(wù)邏輯組件。而隱藏在系統(tǒng)的業(yè)務(wù)邏輯組件下面的,可能還包含了 DAO、領(lǐng)域?qū)ο蟮冉M件。 通常, MVC 框架里的業(yè)務(wù)控制器會(huì)調(diào)用模型組件的方法來處理用戶請求。也就是說,業(yè)務(wù)邏輯控制器不會(huì)對用戶請求進(jìn)行任何實(shí)際處理,用戶請求最終由模型組件負(fù)責(zé)處理。業(yè)務(wù)控制器只是中間負(fù)責(zé)調(diào)度的調(diào)度器,這也是稱 Action 為控制器的原因。 4) Struts 2 的視圖組件 Struts 2 已經(jīng)改變了 Struts1 只能使用 JSP 作為視圖技術(shù)的現(xiàn)狀, Struts 2 允許使用其他的模板技術(shù),如 FreeMarker、 Velocity 作為視圖技術(shù)。 當(dāng) Struts 2 的控制器返回邏輯視圖名時(shí),邏輯視圖并未與任何的視圖技術(shù)關(guān)聯(lián),僅僅是返回一個(gè)字符串,該字符串作為邏輯視圖名 [5]。 當(dāng)我們在 文件中配置 Action時(shí),不僅需要指定 Action的 name 屬性和 class 屬性,還要為 Action 元素指定系列 result 子元素,每個(gè) result 子元素定義一個(gè)邏輯視圖和物理視圖之間的映射。前面所介紹的應(yīng)用都使用了 JSP 技術(shù)作為視圖,故配置 result 子元素時(shí)沒有指定 type 屬性,默認(rèn)使用 JSP 作為視圖資源。 Struts2 的工作流程如圖 22 所示, 顯示了這些組件是如何工作的。 吉林建筑 大學(xué) 畢業(yè)設(shè)計(jì) (論文 ) 8 圖 22 Struts2 工作流程圖 本章小結(jié) 本章主要是完整的介紹一下本系統(tǒng)開發(fā)的相關(guān)工具與技術(shù),工具: MyEclipse 、 SQL2021。技術(shù): B/S 體系架構(gòu)、 MVC 理論、 Struts2 技術(shù)。并將這些開發(fā)工具的特點(diǎn)做了一個(gè)較為詳細(xì)的描述 ,以便在系統(tǒng)開發(fā)時(shí)能夠利用它們所具有的特性來開發(fā)系統(tǒng),提高系統(tǒng)開發(fā)的效率。此 郵件管理系統(tǒng)頁面組織和控制流程采用基于 MVC 設(shè)計(jì)模式 的 Struts2 開發(fā)框架。整個(gè)系統(tǒng)分為前臺展示、業(yè)務(wù)流程控制和后臺開發(fā)三個(gè)獨(dú)立的部分。在視圖層,使用了 Struts2 的標(biāo)簽和 html 共同完成JSP 頁面;業(yè)務(wù)流程和控制轉(zhuǎn)發(fā)采用 Struts2 框架中的控制器部分進(jìn)行控制。 吉林建筑 大學(xué) 畢業(yè)設(shè)計(jì) (論文 ) 9 第 3 章 系統(tǒng)需求分析 用戶需求 用戶端特性 本系統(tǒng)將用戶分為兩種類型,管理員和用戶。管理員管理主要包括管理用戶信息、刪除用戶等;用戶管理主要包括用戶個(gè)人信息的管理、個(gè)人郵箱的管理等。 系統(tǒng)功能需求 1. 用戶管理 :包括管理員和普通用戶兩種用戶的信息管理。 1) 用戶 登錄:對用戶登錄的用戶名密碼與數(shù)據(jù)庫中的信息進(jìn)行驗(yàn)證。登錄成功后可以修改個(gè)人密碼,管理員還可以管理用戶信息。 2. 郵件收發(fā):包括寫郵件、發(fā)送郵件、接收郵件。 1) 寫郵件:包含發(fā)送的主題,郵件文本內(nèi)容,并可以添加附件。 2) 發(fā)送郵件:選擇發(fā)送方式,如發(fā)送或保存;對非法郵件進(jìn)行攔截。 3) 接收郵件:獲取新郵件,對新郵件進(jìn)行分類。 3. 郵箱管理:收件箱、草稿箱、發(fā)件箱、垃圾箱。 1) 收件箱:查看郵件,下載郵件的附件,刪除無用的郵件。 2) 草稿箱:可以對保存的郵件進(jìn)行查看和刪除。 3) 發(fā)件箱:可以查看曾發(fā)送的郵件,刪除記錄。 4) 垃圾箱:可以選擇徹底 刪除垃圾郵件,或者還原郵件。 4. 通訊錄模塊:包括建立通訊錄、查看通訊錄和刪除通訊錄。 1) 新建通訊錄:包括添加聯(lián)系人的基本信息。 2) 查看通訊錄:對聯(lián)系人管理操作,如刪除指定聯(lián)系人。 3) 群發(fā)郵件:通過單擊“選擇通訊錄”可以對指定聯(lián)系人群發(fā)郵件。 運(yùn)行環(huán)境需求 用戶對系統(tǒng)運(yùn)行環(huán)境需求包括軟件、硬件 等方面。 1)系統(tǒng)軟件要求: 操作系統(tǒng): Windows xp/vista/win7 開發(fā)軟件: MyEclipse 數(shù)據(jù)庫: SQL2021 2)系統(tǒng)硬件要求: 吉林建筑 大學(xué) 畢業(yè)設(shè)計(jì) (論文 ) 10 處理器: P4 以上 內(nèi)存: 512MB 以上 硬盤空間: 10G 以上 3)開發(fā)要求: 開發(fā)工具: MyEclipse 編程語言: Java 工具配置: JDK 數(shù)據(jù)描述 數(shù)據(jù)流程圖是一種圖形化技術(shù),是描繪數(shù)據(jù)在軟件中流動(dòng)和被處理的邏輯過程 [6]。以下是本系統(tǒng)按照功能來劃分的數(shù)據(jù)流圖的頂層圖 ,如圖 31 所示 。 圖 31 系統(tǒng)的頂層數(shù)據(jù)流圖 頂層數(shù)據(jù)流圖僅僅是從總體上反映了系統(tǒng)的信息聯(lián)系,按照結(jié)構(gòu)化分析方法,自頂向下、逐層分解,對頂層圖進(jìn)行細(xì)化。細(xì)化進(jìn)行到數(shù)據(jù)流圖中的每一個(gè)數(shù)據(jù)處理成為一個(gè)很容易理解的單一功能, 且這個(gè)單一功能可以通過簡單的邏輯表達(dá)式在數(shù)據(jù)字典中予以說明。 數(shù)據(jù)字典 數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)字典最主要的用途就是供人查閱對不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計(jì)的過程中給人提供關(guān)于數(shù)據(jù)的描述信息 [7]。 數(shù)據(jù)流程圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典,數(shù)據(jù)流圖就不嚴(yán)格。所以為了精確定義每一個(gè)元素,需要數(shù)據(jù)字典來將系統(tǒng)規(guī)格說明。 系統(tǒng)中的數(shù)據(jù)字典如 表 31 至表 37 所示 。 吉林建筑 大學(xué) 畢業(yè)設(shè)計(jì) (論文 ) 11 表 31 用戶登錄 數(shù) 據(jù) 流 系統(tǒng)名:郵件管理系統(tǒng) 條目名:登錄信息 別名: f1 來源: 用戶 去處: user 表 數(shù)據(jù)流結(jié)構(gòu):用戶名,密碼,登錄身份 簡要說明:輸入用戶登錄信息,進(jìn)行身份驗(yàn)證 。 表 32 修改密碼 數(shù) 據(jù) 流 系統(tǒng)名:郵件管理系統(tǒng) 條目名:修改密碼信息 別名: f2 來源: 用戶 去處: user 表 數(shù)據(jù)流結(jié)構(gòu):原密碼,新密碼,確認(rèn)新密碼 簡要說明:輸入用戶原 密碼并兩次輸入相同的新密碼,驗(yàn)證正確后修改數(shù)據(jù)庫。 表 33 添加聯(lián)系人 數(shù) 據(jù) 流 系統(tǒng)名:郵件管理系統(tǒng) 條目名:聯(lián)系人信息 別名: f3 來源: 用戶 去處: tongxunlu 表 數(shù)據(jù)流結(jié)構(gòu):姓名,性別,年齡,電話,住址,公司,郵箱地址 簡要說明:主要負(fù)責(zé)對每個(gè)用戶的聯(lián)系人信息進(jìn)行數(shù)據(jù)添加。 表 34 用戶管理 數(shù) 據(jù) 流 系
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1