Version: Next
1. 回顾MVC
- MVC是(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范
- 采用将业务逻辑、数据、显示分离的方法来组织代码
- MVC主要作用是降低了视图与业务逻辑间的双向耦合
- MVC不是一种设计模式,MVC是一种框架模式,不同的MVC存在差异
Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件,不过现在一般都分离开来:Value Object (数据Dao)和服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务
View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西
Controller(控制器)“:接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。
2. 回顾Servlet
新建Maven项目,把src删了
- junit
- Spring
- Servlet
- JSTL和EL
- JSP
<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>新建空maven模块,springmvc-01-servlet
编写Servlet类
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.获取前端参数String method = req.getParameter("method");if ("add".equals(method)) {req.getSession().setAttribute("msg", "执行了add方法");}if ("delete".equals(method)) {req.getSession().setAttribute("msg", "执行了delete方法");}//2.调用业务层//3.视图转发或者重定向req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}}web.xml注册servlet
<servlet><servlet-name>hello</servlet-name><servlet-class>com.bsx.servlet.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>test.jsp和form.jsp
form.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>Title</title></head><body><form action="/hello" method="post"><input type="text" name="method"/><input type="submit"/></form></body></html>test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>Title</title></head><body>${msg}</body></html>配置Tomcat
访问http://localhost:8080/hello?method=add
3. MVC框架要做那些事情
- 将url映射到java类或java类的方法
- 封装用户提交的数据
- 处理器请求,调用相关的业务处理,封装响应数据
- 将响应的数据进行渲染。 jsp/html等表示层数据
MVC -> MVVM ( Model View ViewMidel双向绑定)
4. 为什么学习SpringMVC
- 轻量级,简单易学
- 高效,基于请求响应的MVC框架
- 与Spring兼容性好,无缝结合
- 约定优于配置
- 功能强大:RESTful、数据验证、格式化、本地化、主题等
- 简洁灵活
Spring的Web框架围绕DispatcherServlet
(调度Servlet)设计,其作用是将请求分发到不同的处理器