SpringMVC相关知识点

本文详细解析了MVC模式的概念及其在应用程序开发中的应用,并深入介绍了SpringMVC框架中的常用注解,如@RequestMapping、@RequestParam等的功能与使用场景。

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、拦截器和过滤器的区别
  1. SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。
  2. 可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链
    中的拦截器会按着定义的顺序执行。
  3. 拦截器和过滤器的功能比较类似,有区别
    1. 过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。
    2. 拦截器是SpringMVC框架独有的。
    3. 过滤器配置了/*,可以拦截任何资源。
    4. 拦截器只会对控制器中的方法进行拦截。
  4. 拦截器也是AOP思想的一种实现方式
  5. 想要自定义拦截器,需要实现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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值