https://blog.csdn.net/a745233700/article/details/80963758
https://thinkwon.blog.csdn.net/article/details/104397427
1、MVC的理解
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
View(视图) - 视图代表模型包含的数据的可视化。
Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
Controller层用来调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。所以Controller中的内容能少则少,这样才能提供最大的灵活性。controller相当于路由的作用
2、拦截器和过滤器的区别
- SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。
- 可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链
中的拦截器会按着定义的顺序执行。 - 拦截器和过滤器的功能比较类似,有区别
- 过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。
- 拦截器是SpringMVC框架独有的。
- 过滤器配置了/*,可以拦截任何资源。
- 拦截器只会对控制器中的方法进行拦截。
- 拦截器也是AOP思想的一种实现方式
- 想要自定义拦截器,需要实现HandlerInterceptor接口。
3、SpringMVC的常见注解
@RequestMapping
一、作用:用于请求url和处理请求方法之间的对应关系
二、出现的位置:
1. 作用在类上:第一级的访问目录
2. 作用在方法上:第二级的访问目录
3. 细节:路径可以不编写 / 表示应用的根目录开始
4. 细节:${ pageContext.request.contextPath }也可以省略不写,但是路径上不能写 /
三、属性:
1. path 指定请求路径的url
2. value value属性和path属性是一样的
3. mthod 指定该方法的请求方式
4. params 指定限制请求参数的条件
5. headers 发送的请求中必须包含的请求头
注意:
以上四个属性只要出现 2 个或以上时,他们的关系是与的关系。
@RequestParam
一、作用:把请求中指定名称的参数指定给控制器中的形参赋值
二、属性
1. value:请求参数中的名称
2. required:请求参数中是否必须提供此参数,默认值是true,必须提供
@RequestBody
一、作用:用于获取请求体的内容(注意:get方法不可以)
二、属性
1. required:是否必须有请求体,默认值是true
@PathVariable
一、作用:用于绑定url中的占位符,例如:url中有/delete/{id},{id}就是占位符
二、属性:
1. value:用于指定 url 中占位符名称。
2. required:是否必须提供占位符。
@RequestHeader
一、作用:获取指定请求头的值
二、属性:
1. value:请求头的名称
@CookieValue
一、作用:用于获取指定cookie名称的值
二:属性:
1. value:cookie的名称
@ModelAttribute
一、作用:
1. 出现在方法上:表示当前方法会在控制器方法执行前先执行。它可以修饰没有返回值的方法,也可
以修饰有具体返回值的方法。
2. 出现在参数上:获取指定的数据给参数赋值。
二、属性:
1. value: 用于获取指定属性的值
三、. 应用场景
1. 当提交表单数据不是完整的实体数据时,保证没有提交的字段使用数据库原来的数据。
@SessionAttributes
一、作用:用于多次执行控制器方法间的参数共享,将指定的 Model 的键值对保存在 session 中
二、属性:
1. value:指定存入属性的名称
2. type: 指定存入属性的类型
Model、ModelMap、ModelAndView 的区别 https://www.jianshu.com/p/8f8f198243f3