Spring MVC提供了处理XML格式请求响的 HttpMessageConverter,只需在 Spring Web容器中为RequestMappingHandlerAdapter装配处理XML的HttpMessageConverter,并在交互过程中通过请求Accept指定MIME类型,Sping MVC就可以使服务端的处理方法和客户端XML格式的消息进行通信。开发者无须关心通信层的数据格式,可以将精力集中到业务处理上。
Spring MVC提供了处理XML格式请求响的 HttpMessageConverter,只需在 Spring Web容器中为RequestMappingHandlerAdapter装配处理XML的HttpMessageConverter,并在交互过程中通过请求Accept指定MIME类型,Sping MVC就可以使服务端的处理方法和客户端XML格式的消息进行通信。开发者无须关心通信层的数据格式,可以将精力集中到业务处理上。
JavaWeb项目如果采用前后端完全分离架构,前端和后端部署在不同的服务器上,前端负责页面呈现和数据展示,后端提供数据接口给前端调用,这就产生了跨域请求。
**跨域请求:**指的是前端(一般指浏览器)向其它应用服务发起访问请求。一般发生在主域名不同、或子域名不同、或端口不同或协议不同的两个应用服务器之间的调用。一般指的是使用ajax来调用。
实现跨域请求有解决方案,本篇只对SpringMVC自带支持CORS技术进行详细描述,CORS支持多种请求方式(get,post...),在前端处理和普通请求几乎一样,后端配置也容易。
Spring MVC之@SessionAttributes和@CookieValue
@SessionAttributes注解可以指定将Model中的某些属性转存一份到HttpSession对象中。
@CookieValue注解用于将请求的Cookies数据映射到功能处理方法的参数上。
Spring MVC之@PathVariable和@RequestHeader
@PathVariable注解可以方便地获得请求URL中的动态参数,该注解只支持一个属性value,类型是String, 表示绑定的名称,如果省则默认绑定同名参数。
@RequestHeader注解可以将请求头的信息区数据映射到功能处理方法的参数上。
SpringMVC获取请求参数可以有多种方式实现,对请求方式上也有些差异,现做下总结。
从前端(浏览器)发送请求到后端基本脱离不了POST,GET两种方式,其它方式在应用中几乎绝迹,不参与分析。SpringMVC获取这两种请求的参数有多种方式。
Spring MVC Controller接收多种类型的数据
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格式数据,并转换成对应的数据类型绑定到方法属性上。
Spring MVC之HttpMessageConverter<T>接口
全路径:org.springframework.http.converter.HttpMessageConverter<T>
HttpMessageConverter接口负责将请求信息转换为一个T类型的对象,并将T类型对象绑定到请求方法的参数中或输出为响应信息。
DispatcherServlet默认已经装配配了RequestMappingHandlerAdapter作为HandlerAdapter组件的实现类,即 HttpMessageConvert 由 RequestMappingHandlerAdapter使用,将请求信息转换为对象,或将对象转换为响应信息。