Home >Common Problem >What is mvc design pattern
The mvc design pattern is a software design pattern that divides the application into the above three core modules: business layer, view layer, and control layer. The business layer is responsible for implementing the business logic of the application and encapsulating various data processing methods; the view layer is responsible for displaying the application to the user. It obtains input data from the user and passes it to the business layer for processing through the control layer. The layer obtains the results returned by the business layer and displays them to the user. The control layer is responsible for controlling the flow of the application. It receives data from the view layer and then selects a business in the business layer to process.
The operating environment of this tutorial: Windows 7 system, Dell G3 computer.
MVC is Model-View-Controller (Model-View-Controller) is a software design pattern that first appeared in the Smalltalk language , and was later recommended by Sun as a design pattern for the Java EE platform.
MVC divides the application into the above three core modules. These three modules can also be called business layer-view layer-control layer. As the names suggest, the main roles of the three of them in the application are as follows:
Business layer: Responsible for implementing the business logic of the application and encapsulating various data processing methods. It doesn't care how it will be displayed by the view layer or called by the controller, it only accepts the data, processes it, and returns a result.
View layer: Responsible for the display of the application to the user. It obtains input data from the user and passes it to the business layer for processing through the control layer, and then obtains the data returned by the business layer through the control layer. The results are displayed to the user.
Control layer: Responsible for controlling the process of the application. It receives the data passed from the view layer, then selects a business in the business layer to process, and receives the results returned by the business layer. and select a view in the view layer to display the results.
The following figure can be used to represent the relationship between the three in the MVC pattern:
MVC is a design idea, and it does not have a unified standard , one of the typical implementations of MVC ideas is JavaBean (mode) jsp (view) servlet (controller), and I like to list the business logic in JavaBean separately to form service (mode) JavaBean (data set) jsp ( View) servlet (controller) structure, let's implement it below.
Here, I will apply the MVC design pattern to realize that the user enters a piece of text in the foreground, and the background obtains and splices the string "——ysy ” and then returns a simple application to be displayed in the foreground. The specific effect is as shown in the figure:
1. View layer
<%@ 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. Control layer
servlet writing:
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); //跳转到视图层 } }
If you don’t want to use comments to configure the servlet, you can also It can be configured through web.xml:
930406f08da8ee4a2ff134b688d29d1d 33f811d908019104dce50f37c23d195d 104ce0f86471f18553dacb332199720eJava_Web6016cc98de5b53c0cfd1cdb1cf6f5e32 145f58f625840b9ea02ee646738753d6 4dc738b987c616c936501769be741a6eindex.html61b13b5331cf95fd092fcea0d23c370c 4dc738b987c616c936501769be741a6eindex.htm61b13b5331cf95fd092fcea0d23c370c 4dc738b987c616c936501769be741a6eindex.jsp61b13b5331cf95fd092fcea0d23c370c 4dc738b987c616c936501769be741a6edefault.html61b13b5331cf95fd092fcea0d23c370c 4dc738b987c616c936501769be741a6edefault.htm61b13b5331cf95fd092fcea0d23c370c 4dc738b987c616c936501769be741a6edefault.jsp61b13b5331cf95fd092fcea0d23c370c 300e6fadd23fafd1b065a779b865fda9 46309ed845064fdb06e746051efff9e0 //通过配置文件配置servlet 700b5f17c4d842e4bd410f680f40946btest72eca723e64ddd01187c8b4d58572fcb b472d9135dbff3dd7fcc77f5995c97d0servlet.TestServlet4f01b97d64aea37f699ead4eb7bd2bbd 20d42bb762ac7d7e594da3a264e47fcc 870ae7edaa11700bcea972d006efb06e 700b5f17c4d842e4bd410f680f40946btest72eca723e64ddd01187c8b4d58572fcb 66e1775cbd9d5002635ae3285442ba88/test.do3ec4a5583206d351b61ed79c1a0f9c66 cb808b0e21d3ee32c89fe10adc3f12ec 9ec23d40699efb4cb39a61797a06a5a1
3, data set
package bean; public class TestBean { private String input; public String getInput() { return input; } public void setInput(String input) { this.input = input; } }
4, business layer
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; } }
1. Conducive to code reuse
2. Conducive to developers Division of labor
3. It is helpful to reduce the coupling between program modules and facilitate program maintenance and expansion.
For more related knowledge, please visit the FAQ column!
The above is the detailed content of What is mvc design pattern. For more information, please follow other related articles on the PHP Chinese website!