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:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <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, 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!