一、SpringMVC简介
1.什么是MVC
Model:数据模型
View:视图
Controller:控制器
MVC是一种Web应用架构,是一种代码设计思想
思想:将所有客户端请求交由控制器,由控制器将其进行分发,并将结果响应给客户端。
2.常见MVC框架
使用原生Servlet实现MVC:
1 | 配置比较复杂 |
实际开发中一般都会使用MVC框架,如Struts1、Struts2、SpringMVC等
对比:
1 | 效率方面,Struts1>SpringMVC>Struts2 |
3.为什么使用SpringMVC
1 | 使用注解来替代xml配置,更简单 |
二、SpringMVC实现原理
DispatcherServlet
SpringMVC核心控制器(前端控制器):主要是用来分发请求的
HandlerMapping
映射处理器:根据请求的url来映射查找到对应的Handler
Handler就是Controller层的实现类
HandlerAdapter
适配器:用来适配不同的处理器Handler
处理器有两种实现方式:实现接口、基于注解,所以执行前需要先适配
Handler
处理器:真正用来处理和执行业务,并产生数据模型Model和视图View,
Handler会将Model和View封装成ModelAndView对象并返回。
ViewResolver
视图解析器:根据视图名称解析成具体的视图,一般多为jsp页面,然后把它封装成View对象并返回。
三、RestFul 风格
RestFul 只是一种风格,基于这个风格设计的程序可以更简洁,有层次,更易于实现缓存等机制, 他实现了请求相同的路径而产生不同的逻辑的效果, 实现了 URL 复用
一般基于数据增删改查发出的请求,是通过==区分不同的路径==达到 CRUD 的效果,例如:
1 | localhost:8080/dropUser?id=1 删除用户 |
而 RestFul 是通过==区分请求的方法==达到 CRUD 的效果,例如
1 | localhost:8080/user?id=1 删除用户 发出DELETE请求 |
在 RestFul 中针对增删改查分别对应着四种请求方法
[ 添加: POST ][ 删除: DELETE ][ 修改: PUT ][ 查询: GET ]
针对区分四种请求的方法有两种手段:
1 | 通过 RequestMapping 中的 method 属性进行区分请求 |