Spring MVC之@SessionAttributes和@CookieValue
@SessionAttributes
注解可以指定将Model
中的某些属性转存一份到HttpSession
对象中。
@CookieValue
注解用于将请求的Cookies
数据映射到功能处理方法的参数上。
@SessionAttributes
注解可以指定将Model
中的某些属性转存一份到HttpSession
对象中。
@CookieValue
注解用于将请求的Cookies
数据映射到功能处理方法的参数上。
@PathVariable
注解可以方便地获得请求URL
中的动态参数,该注解只支持一个属性value
,类型是String
, 表示绑定的名称,如果省则默认绑定同名参数。
@RequestHeader
注解可以将请求头的信息区数据映射到功能处理方法的参数上。
SpringMVC获取请求参数可以有多种方式实现,对请求方式上也有些差异,现做下总结。
从前端(浏览器)发送请求到后端基本脱离不了POST,GET
两种方式,其它方式在应用中几乎绝迹,不参与分析。SpringMVC获取这两种请求的参数有多种方式。
Spring MVC 接收多种类型的数据,及多种传参方式。
fastjson
相比默认的jackson
效率更好,在一些复杂的json
结构中更容易操作。
汇总SpringMVC
配置文件springmvc.xml
相关配置。
当页面提交请求时,提交的数据的编码格式由请求头的contentType
指定,SpringMVC根据指定的编码格式对请求提交的数据进行处理。SpringMVC 为方法提供了一些很容易使用的注解来处理请求提交的数据。
ContentType指定的类型,可以分以下几种:
application/x-www-form-urlencoded
:发请求的默认类型,可使用 @RequestParam, @ModelAttribute, @RequestBody 来处理。multipart/form-data
:@RequestBody 不能处理这种格式数据。application/json,application/xml
:必须使用 @RequestBody 来处理。实际开发中,**@RequestBody**可以很方便地接收JSON
格式数据,并转换成对应的数据类型绑定到方法属性上。
全路径:org.springframework.http.converter.HttpMessageConverter<T>
HttpMessageConverter
接口负责将请求信息转换为一个T
类型的对象,并将T
类型对象绑定到请求方法的参数中或输出为响应信息。
DispatcherServlet
默认已经装配配了RequestMappingHandlerAdapter
作为HandlerAdapter
组件的实现类,即 HttpMessageConvert 由 RequestMappingHandlerAdapter使用,将请求信息转换为对象,或将对象转换为响应信息。
@ModelAttribute
注解将请求参数绑定到Model
对象,只支持一个value
属性,类型是String
。
该注解的方法会在所有Controller方法执行前执行,所在一个Controller映射多个URL
时,谨慎使用。个人认为该注解有些鸡肋。
SpringMVC为Controller方法提供了多种注解,很方便的可以对请求进行约定和处理。@RequestParam
,@PathVariable
,@CookieValue
,@RequestHeader