中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MVC模型層分離實例分析

發布時間:2022-02-24 16:56:08 來源:億速云 閱讀:99 作者:iii 欄目:開發技術

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

MVC進階介紹

什么是模型層,它是用來干什么的?模型層其實可以理解為一種邏輯。就像解題模型一樣,servlet將數據傳給模型層,然后模型給出一個結果返回給servlet。沒錯,模型層也可以被稱為業務邏輯層(在學習數據庫操作后,會將模型層進行拆分,比如拆分成service層和dao層)。

實戰

回顧:

 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.5655pk.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();
        }
    }

這里的代碼中有一部分是進行請求參數的判定的,這一部分的代碼雖然不多(因為沒有完整寫完),但我們仍然有必要將從servlet中剝離。接下來我們新建一個專門的java類(順便擴寫將完整邏輯寫完,以顯示差異性)來處理這部分邏輯:

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

如上代碼所示,我們將業務邏輯代碼拆分到一個專門的model類中,然后通過調用model類的方法來實現業務邏輯,這樣業務邏輯就被拆分到model類中了,servlet只需要在請求到來的時候,明白要調用什么model的方法,然后將model返回的處理完畢的數據轉發給JSP進行視圖的輸出即可。剝離了業務邏輯代碼和視圖表現代碼的servlet剩下的功能就是作為視圖和模型的連接,所以他又被稱為控制器(十分形象,servlet控制了業務邏輯的調用和表現代碼的調用)。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

mvc
AI

隆尧县| 陈巴尔虎旗| 宁城县| 岳阳县| 施甸县| 芦溪县| 南溪县| 启东市| 乌什县| 东辽县| 周至县| 旌德县| 永胜县| 铁岭市| 舞钢市| 玉林市| 青河县| 东城区| 尉氏县| 濮阳市| 宜昌市| 类乌齐县| 成安县| 贡觉县| 双流县| 兰州市| 喀喇沁旗| 剑川县| 揭东县| 宁陵县| 阳高县| 灵台县| 安远县| 山西省| 孟州市| 阳原县| 柳江县| 大化| 泰州市| 嘉黎县| 岳普湖县|