溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MVC模型層分離實(shí)例分析

發(fā)布時(shí)間:2022-02-24 16:56:08 來(lái)源:億速云 閱讀:95 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下MVC模型層分離實(shí)例分析的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

MVC進(jìn)階介紹

什么是模型層,它是用來(lái)干什么的?模型層其實(shí)可以理解為一種邏輯。就像解題模型一樣,servlet將數(shù)據(jù)傳給模型層,然后模型給出一個(gè)結(jié)果返回給servlet。沒(méi)錯(cuò),模型層也可以被稱為業(yè)務(wù)邏輯層(在學(xué)習(xí)數(shù)據(jù)庫(kù)操作后,會(huì)將模型層進(jìn)行拆分,比如拆分成service層和dao層)。

實(shí)戰(zhàn)

回顧:

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String classname = "";
        String url = "";
        String element = "";
        classname = request.getParameter("class");
        if (classname.equals("qd")) {//目前只做前端判定,后期再增加
            url = "http://www.kemok4.com/courses?direction=2120&tag=0&type=&condition=&order=";
            element = "前端微課";
        }

        request.setAttribute("url",url);
        request.setAttribute("element",element);
        RequestDispatcher view = request.getRequestDispatcher("result.jsp");
        try {
            view.forward(request,response);
        } catch (ServletException e) {
            e.printStackTrace();
        }
    }

這里的代碼中有一部分是進(jìn)行請(qǐng)求參數(shù)的判定的,這一部分的代碼雖然不多(因?yàn)闆](méi)有完整寫(xiě)完),但我們?nèi)匀挥斜匾獙膕ervlet中剝離。接下來(lái)我們新建一個(gè)專門(mén)的java類(lèi)(順便擴(kuò)寫(xiě)將完整邏輯寫(xiě)完,以顯示差異性)來(lái)處理這部分邏輯:

public class model {
    String url = "";
    String element = "";
    public void select(String classname) {
        if (classname.equals("qd")) {//目前只做前端判定,后期再增加
            url = "http://www.kemok4.com/courses?direction=2120&tag=0&type=&condition=&order=";
            element = "前端微課";
        }else if (classname.equals("hd")){
            url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
            element="后端微課";
        }else if (classname.equals("db")){
            url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
            element="后端微課";
        }else if (classname.equals("cp")){
            url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
            element="后端微課";
        }
        else if (classname.equals("Android")){
            url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
            element="后端微課";
        }else if (classname.equals("other")){
            url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
            element="后端微課";
        }
    }
    public String getUrl() {
        return url;
    }
    public String getElement() {
        return element;
    }
}

然后修改servlet的代碼(只展示doGet()方法):

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String classname = "";
        classname = request.getParameter("class");
        model select = new model();
        select.select(classname);
        request.setAttribute("url",select.url);
        request.setAttribute("element",select.element);
        RequestDispatcher view = request.getRequestDispatcher("result.jsp");
        try {
            view.forward(request,response);
        } catch (ServletException e) {
            e.printStackTrace();
        }
    }

如上代碼所示,我們將業(yè)務(wù)邏輯代碼拆分到一個(gè)專門(mén)的model類(lèi)中,然后通過(guò)調(diào)用model類(lèi)的方法來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯,這樣業(yè)務(wù)邏輯就被拆分到model類(lèi)中了,servlet只需要在請(qǐng)求到來(lái)的時(shí)候,明白要調(diào)用什么model的方法,然后將model返回的處理完畢的數(shù)據(jù)轉(zhuǎn)發(fā)給JSP進(jìn)行視圖的輸出即可。剝離了業(yè)務(wù)邏輯代碼和視圖表現(xiàn)代碼的servlet剩下的功能就是作為視圖和模型的連接,所以他又被稱為控制器(十分形象,servlet控制了業(yè)務(wù)邏輯的調(diào)用和表現(xiàn)代碼的調(diào)用)。

以上就是“MVC模型層分離實(shí)例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

mvc
AI