mvc設計模式是一種軟體設計模式,它把應用程式分成了上面3個核心模組:業務層、視圖層、控制層。業務層負責實現應用程式的業務邏輯,封裝有各種對資料的處理方法;視圖層負責應用程式對使用者的顯示,它從使用者那裡獲取輸入資料並透過控制層傳給業務層處理,然後透過控制層取得業務層傳回的結果並顯示給使用者。控制層負責控制應用程式的流程,它接收從視圖層傳過來的數據,然後選擇業務層中的某個業務來處理。
本教學操作環境:windows7系統、Dell G3電腦。
什麼是MVC設計模式
MVC即Model-View-Controller(模型-視圖-控制器)是一種軟體設計模式,最早出現在Smalltalk語言中,後來被Sun公司推薦為Java EE平台的設計模式。
MVC把應用程式分成了上面3個核心模組,這3個模組又可稱為業務層-視圖層-控制層。顧名思義,它們三者在應用程式中的主要作用如下:
業務層:負責實作應用程式的業務邏輯,封裝有各種對資料的處理方法。它不關心它會如何被視圖層顯示或被控制器調用,它只接受資料並處理,然後返回一個結果。
視圖層:負責應用程式對使用者的顯示,它從使用者那裡獲取輸入資料並透過控制層傳給業務層處理,然後再透過控制層取得業務層傳回的結果並顯示給使用者。
控制層:負責控制應用程式的流程,它接收從視圖層傳過來的數據,然後選擇業務層中的某個業務來處理,接收業務層傳回的結果並選擇視圖層中的某個視圖來顯示結果。
可以用下圖來表示MVC模式中三者之間的關係:
MVC是一種設計思想,它並沒有統一的標準,其中一種MVC思想的典型實作為JavaBean(模式) jsp(視圖) servlet(控制器),而我喜歡將JavaBean中的業務邏輯再單獨列出來,形成service(模式) JavaBean(資料集) jsp(視圖) servlet(控制器)的結構,下面我們來實作它。
MVC實作
在這裡,我將應用MVC設計模式,實作使用者在前台中輸入一段文字,後台取得並拼接上字串「-ysy ”,再送回前台顯示的一個簡單的應用程式。具體效果如圖:
1、視圖層
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test</title> </head> <body> <form action="./test.do" method="post"> 输入你想说的话~ <input type="text" name="input"/> <input type="submit" value="提交" /> <br/> <% String s = (String)request.getAttribute("outPut"); <!--从request域中获取结果--> if(s != null){ <!--如果有结果,显示结果--> %> <%=s %> <% } %> </form> </body> </html>
2、控制層
# servlet的寫法:
package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import bean.TestBean; import service.TestService; @WebServlet("/test.do") //通过注释配置servlet public class TestServlet extends HttpServlet { private static final long serialVersionUID = 1L; public TestServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); //设置字符集,防止中文乱码 TestBean testBean = new TestBean(); //获取数据集对象 TestService testService = new TestService(); //获取业务层对象 String s =request.getParameter("input"); //获取视图层提交的数据 testBean.setInput(s); //将数据存入数据集中 s = testService.change(testBean); //调用业务层,传入数据,接收返回结果 request.setAttribute("outPut", s); //将结果存入request域中 request.getRequestDispatcher("test.jsp").forward(request, response); //跳转到视图层 } }
如果不想使用註解來設定servlet,還可以透過web.xml進行設定:
<?xml version="1.0" encoding="UTF-8"?> <web-app> <display-name>Java_Web</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> //通过配置文件配置servlet <servlet-name>test</servlet-name> <servlet-class>servlet.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test.do</url-pattern> </servlet-mapping> </web-app>
3、資料集
package bean; public class TestBean { private String input; public String getInput() { return input; } public void setInput(String input) { this.input = input; } }
4、業務層
package service; import bean.TestBean; public class TestService { public String change(TestBean testBean) { String s = testBean.getInput(); //从数据集中获取数据 if(s != null && s != "") { //如果有数据,则拼接字符串 s += "——ysy"; } return s; } }
三、MVC框架模式的優勢
1、有利於程式碼的複用
2、有利於開發人員分工
3、有利於降低程式模組間的耦合,以便於程式的維護與擴充。
更多相關知識,請造訪常見問題欄位!
以上是mvc設計模式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver CS6
視覺化網頁開發工具