• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    MVC設(shè)計模式研究

    2016-03-22 14:14:06高昂魏惠茹李曉東李博
    電腦知識與技術(shù) 2016年1期
    關(guān)鍵詞:設(shè)計模式視圖控制器

    高昂+魏惠茹+李曉東+李博

    摘要:MVC設(shè)計模式的思想是把軟件系統(tǒng)中的各個模塊進行分離,減少各層次之間的聯(lián)系,使得層次之間更加清晰,提高了可讀性,便于維護。

    關(guān)鍵詞:MVC;設(shè)計模式;控制器;模型;視圖

    中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)01-0088-02

    Research on MVC Design Pattern

    GAO Ang,WEI Hui-ru,LI Xiao-dong,Li Bo

    (Zhengzhou Chenggong University of Finance and Economics, Zhengzhou 451200, China)

    Abstract: The idea of MVC design pattern is to separate each module of the software system, reduce the connection between each level, make the level of the more clear, improve the readability, easy to maintain.

    Key words: MVC; design pattern; controller; model; view

    MVC(Model-View-Controller)設(shè)計模式即“模型-視圖-控制器”是在20世紀(jì)80年代編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計模式,至今已經(jīng)廣泛應(yīng)用在軟件開放中,并且受到越來越多的使用者和開發(fā)者的歡迎。下面以JSP MVC為例來討論MVC的結(jié)構(gòu)、工作原理、簡單實現(xiàn)方法以及MVC設(shè)計模式的優(yōu)缺點。

    1 MVC的結(jié)構(gòu)

    MVC設(shè)計模式將一個應(yīng)用程序分為三個部分:模型(Model),視圖(View),控制器(Controller)。

    圖1 MVC體系結(jié)構(gòu)

    模型(Model)用來表示數(shù)據(jù)和業(yè)務(wù)邏輯,對應(yīng)的組件是JavaBean。在MVC設(shè)計模式的三個組成部分中,模型主要用于數(shù)據(jù)處理。模型返回的數(shù)據(jù)與數(shù)據(jù)格式無關(guān),也就是說與數(shù)據(jù)展示沒有關(guān)系。模型提供的數(shù)據(jù)能被多個視圖所使用,這樣就提高了數(shù)據(jù)處理部分代碼的重用性。

    視圖(View)是用戶看到并與之交互的界面,對應(yīng)的組件是JSP或HTML文件。視圖提供可交互的客戶界面,向客戶顯示模型數(shù)據(jù)。在視圖中沒有真正的數(shù)據(jù)處理發(fā)生,視圖只是將模型里返回的數(shù)據(jù)作為一種輸出數(shù)據(jù)進行展示并允許用戶操作。

    控制器(Controller)用來接受用戶的請求,調(diào)用對應(yīng)的模型去處理數(shù)據(jù),根據(jù)模型處理的結(jié)果選擇不同視圖去展示數(shù)據(jù)并完成與用戶的交互。在JSP中,對應(yīng)的組件通常使用Servlet。

    2 MVC工作原理

    MVC設(shè)計模式的工作原理是客戶端的所有請求都發(fā)送給控制器Servlet,Servlet接受請求,調(diào)用對應(yīng)的模型處理數(shù)據(jù),根據(jù)模型處理結(jié)果調(diào)用不同視圖響應(yīng);同時Servlet還根據(jù)JSP的需求生成相應(yīng)的JavaBean對象并傳送給JSP,JSP通過直接調(diào)用方法或者useBean的自定義標(biāo)簽,得到JavaBean中的數(shù)據(jù)。Servlet扮演了一個控制器的角色,負(fù)責(zé)生成JSP頁面所要用到的JavaBean對象,并且控制流程的處理,根據(jù)不同的請求來決定轉(zhuǎn)發(fā)到哪個JSP頁面。

    3 MVC實現(xiàn)思路

    MVC設(shè)計模式具體實現(xiàn)是JavaBean作為模型層,Servlet作為控制層,JSP作為視圖層。JSP專門用于表現(xiàn)數(shù)據(jù)而無須進行其他操作,使得JSP頁面沒有或只含有很少的Java代碼。使得頁面清晰,提高了可讀性,便于維護。

    每層作用如下:

    JavaBean作為Model層,負(fù)責(zé)存儲與應(yīng)用程序相關(guān)的數(shù)據(jù),實現(xiàn)各個具體應(yīng)用的業(yè)務(wù)邏輯功能。

    JSP作為View層,用于用戶界面的顯示。它主要通過信息共享,從JavaBean中取出數(shù)據(jù),插入的HTML頁面中。

    Servlet作為Controller層,接收并處理客戶端請求,通過JavaBean訪問數(shù)據(jù)庫或其他資源,提供View層中要用到的數(shù)據(jù),根據(jù)處理結(jié)果決定轉(zhuǎn)向哪個JSP視圖進行交互。

    這種設(shè)計模式通過JSP頁面、Servlet、JavaBean的合作來實現(xiàn)交互處理,很好地實現(xiàn)了表示層、邏輯層和數(shù)據(jù)層的分離。

    4 MVC框架的簡單實現(xiàn)

    package lxd.servlet;

    import java.io.*;

    import javax.servlet.*;

    import javax.servlet.annotation.*;

    //采用注解的形式定義控制器的URL

    @WebServlet("/ControllerServlet")

    public class ControllerServlet extends GenericServlet {

    public ControllerServlet() {

    //控制器構(gòu)造

    }

    public void init(ServletConfig config) throws ServletException {

    //控制器初始化

    }

    public void service(ServletRequest request, ServletResponse response)

    throws ServletException, IOException {

    //結(jié)果頁面

    String path="具體頁面";

    //根據(jù)傳來的key值,決定跳轉(zhuǎn)頁面

    String key=request.getParameter("key");

    if("操作類型1".equals(key)){

    //調(diào)用JavaBean

    //獲取具體path頁面

    }

    if("操作類型2".equals(key)){

    //調(diào)用JavaBean

    //獲取具體path頁面

    }

    //結(jié)果轉(zhuǎn)向

    request.getRequestDispatcher(path).forward(request, response); }

    public void destroy() {

    //控制器銷毀}}

    5 MVC設(shè)計模式優(yōu)缺點

    MVC設(shè)計模式的思想是把應(yīng)用系統(tǒng)中的各個部件分離,減少部件間的耦合度,這樣軟件的開發(fā)分工就很明確,可以把數(shù)據(jù)庫開發(fā),程序業(yè)務(wù)邏輯開發(fā),頁面開發(fā)分開,每一層都具有相同的特征,方便以后的代碼維護。但是,分層也提高了對開發(fā)人員的要求,產(chǎn)生較多的文件,增加文件管理的難度。

    參考文獻:

    [1] 李曉東. 項目驅(qū)動教學(xué)法在計算機程序設(shè)計語言課中的探索[J]. 軟件, 2015(4): 107-109.

    [2] 李曉東. ORM對象持久化技術(shù)研究[J]. 軟件導(dǎo)刊, 2015(5): 52-53.

    [3] 高昂. JDBC數(shù)據(jù)庫訪問技術(shù)探究[J]. 信息與電腦:理論版, 2015(13): 93-94.

    [4] 李曉東. DAO設(shè)計模式研究[J]. 軟件導(dǎo)刊, 2014(7): -37.

    [5] 李立. 淺析Java異常處理機制[J]. 電腦知識與技術(shù), 2012(27): 6483-6484.

    [6] 魏惠茹. Hibernate對象持久化技術(shù)的研究[J]. 電腦知識與技術(shù), 2011(19): 4733-4734.

    [7] 魏惠茹. 泛型程序設(shè)計的研究[J]. 電腦知識與技術(shù), 2009(23): 6435-6436.

    [8] 李霞. MVC設(shè)計模式的原理與實現(xiàn)[D]. 長春:吉林大學(xué), 2004.

    [9] 劉亮. 基于MVC的通用型模式的設(shè)計與實現(xiàn)[J]. 中國科學(xué)技術(shù)大學(xué)學(xué)報, 2010(6): 635-639.

    [10] 冉春玉. MVC模式及Struts框架應(yīng)用研究[J]. 武漢理工大學(xué)學(xué)報, 2004(6): 66-69.

    猜你喜歡
    設(shè)計模式視圖控制器
    仿生設(shè)計模式的創(chuàng)新應(yīng)用探索
    玩具世界(2023年6期)2024-01-29 12:14:36
    “1+1”作業(yè)設(shè)計模式的實踐探索
    交通機電工程設(shè)計模式創(chuàng)新探討
    5.3 視圖與投影
    視圖
    Y—20重型運輸機多視圖
    SA2型76毫米車載高炮多視圖
    模糊PID控制器設(shè)計及MATLAB仿真
    MOXA RTU控制器ioPAC 5542系列
    自動化博覽(2014年9期)2014-02-28 22:33:17
    倍福 CX8091嵌入式控制器
    自動化博覽(2014年4期)2014-02-28 22:31:15
    长海县| 乐至县| 沈丘县| 晋中市| 英超| 奉化市| 闸北区| 玉山县| 大足县| 库尔勒市| 新密市| 寻乌县| 武冈市| 凤凰县| 嘉峪关市| 开化县| 兰考县| 丘北县| 隆昌县| 平武县| 方城县| 峨边| 沽源县| 诏安县| 东明县| 甘德县| 泰顺县| 山丹县| 潼关县| 明溪县| 易门县| 太原市| 贵州省| 大兴区| 宁乡县| 彭州市| 大洼县| 阳曲县| 武城县| 原阳县| 星子县|