最典型的MVC就是JSP + servlet + javabean的模式html
Model1優勢:架構簡單,比較適合小型項目開發;前端
Model1缺點:JSP職責不單一,職責太重,不便於維護;vue
Model2把一個項目分紅三部分,包括視圖、控制、模型。java
職責分析:react
Controller:控制器angularjs
Model:模型web
View:視圖spring
Model2這樣不只提升的代碼的複用率與項目的擴展性,且大大下降了項目的維護成本。Model 1模式的實現比較簡單,適用於快速開發小規模項目,Model1中JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現邏輯混雜在一塊兒,從而致使代碼的重用性很是低,增長了應用的擴展性和維護的難度。Model2消除了Model1的缺點。設計模式
新建一個Maven工程當作父工程! pom依賴!api
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.9.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies>
創建一個Moudle:springmvc-01-servlet , 添加Web app的支持!
導入servlet 和 jsp 的 jar 依賴
<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency>
編寫一個Servlet類,用來處理用戶的請求
package com.xiaohua.servlet; //實現Servlet接口 public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //取得參數 String method = req.getParameter("method"); if (method.equals("add")){ req.getSession().setAttribute("msg","執行了add方法"); } if (method.equals("delete")){ req.getSession().setAttribute("msg","執行了delete方法"); } //業務邏輯 //視圖跳轉 req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } }
編寫Hello.jsp,在WEB-INF目錄下新建一個jsp的文件夾,新建hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>huangdajie</title> </head> <body> ${msg} </body> </html>
在web.xml中註冊Servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.xioahua.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/user</url-pattern> </servlet-mapping> </web-app>
配置Tomcat,並啓動測試
MVC框架要作哪些事情
說明:
常見的服務器端MVC框架有:Struts、Spring MVC、ASP.NET MVC、Zend Framework、JSF;常見前端MVC框架:vue、angularjs、react、backbone;由MVC演化出了另一些模式如:MVP、MVVM 等等....