SpringMvc返回报文形式的控制-验证方法: JSON or HTML or XML
2017-08-02 17:10
483 查看
首先,请求通过accept请求头声明了支持的返回格式
然后,框架根据该请求头和代码实现(注解)选择了对应的MessageConverter处理返回!
一、验证过程
1、返回html
1.1、请求组装
http://10.110.20.146/cloud-web/version-info请求头:Accept=text/html; charset=utf-8
1.2、请求报文
GET /cloud-web/version-info HTTP/1.1Host: 10.110.20.146
Accept: text/html; charset=utf-8
Cache-Control: no-cache
Postman-Token: 9c41ee47-66df-cdbc-ff6f-1d581837b9c1
1.3、执行过程
2、返回json
2.1、请求组装
http://10.110.20.146/cloud-web/version-infoAccept=application/json; charset=UTF-8
2.2、请求报文
GET /cloud-web/version-info HTTP/1.1Host: 10.110.20.146
Accept: application/json; charset=UTF-8
Cache-Control: no-cache
Postman-Token: e8507a90-eaa7-c339-c78c-a24e51d9aeb6
2.3、执行过程
3、返回xml
3.1、请求组装
http://10.110.20.146/cloud-web/version-info请求头:Accept=application/xml; charset=utf-8
3.2、请求报文
GET /cloud-web/version-info HTTP/1.1Host: 10.110.20.146
Accept: application/xml
Cache-Control: no-cache
Postman-Token: ac2859b4-c38a-2b20-e432-f9f20dc8486f
3.3、执行过程
二、后台实现
1、返回xml
返回xml要满足两个条件:请求头中包含了application/xhtml+xml
1.1、开发阶段:JavaBean:@XmlRootElement注解
1.2、[b]开发阶段:Controller:[/b] @ResponseBody注解和返回Java对象
1.3、请求阶段:HTTP Request Header中的Accept属性
2、如果要返回json
开发阶段:引入json的相关jar包
或者
2.1、开发阶段:JavaBean:无@XmlRootElement注解
[b]2.2、开发阶段:Controller返回Java对象[/b]
和getEmployeeXml()相比,这里返回对象变成了Employee,
因为Employee类上没有@XmlRootElement注解,所以Spring不会选择Jaxb2RootElementHttpMessageConverter。
又因为Accept属性中包含了*/*,表示接受任意格式返回数据,所以GsonHttpMessageConverter的canWrite()方法返回true.这样Spring就会选择MappingJackson2HttpMessageConverter或者GsonHttpMessageConverter来进行数据转换。
2.3、请求阶段:HTTP Request Header中的Accept属性
[b][b]经过以上方式,返回结果就[b]可以自动被转换成对应的XML或者JSON数据[/b][/b][/b][b][b][b]三、测试用例[/b][/b][/b]
[b][b][b][/b][/b][/b]
相关文章推荐
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求
- SpringMVC 同一个方法返回Json与HTML数据的小trick
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- 关于flask表单验证json数据不通过总是返回False的解决方法(flask wtforms: Validation always false)
- springmvc后台验证返回json数据
- The AJAX response: XML, HTML, or JSON?
- 将从数据库得到的信息分别以HTML,XML,Json的形式输出
- 在Spring MVC Controller的同一个方法中,根据App还是WEB返回JSON或者HTML视图。
- django请求返回不同的类型图片json,xml,html的实例
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- Ajax技术--服务器返回数据格式(HTML,XML,JSON)
- SpringMVC 解决IE8浏览器把返回报文格式application/json当文件下载的问题
- The AJAX response: XML, HTML, or JSON?
- springMVC返回复杂的json格式数据方法
- spring接口通过配置支持返回多种格式(xml,json,html,excel)
- jQuery form插件的使用--处理server返回的JSON, XML,HTML数据
- Ajax中返回数据的格式---json、xml、html
- 使用ajax请求SpringMVC返回Json出现乱码解决方法
- JQuery调用webservice,返回的json数据和XML数据的处理方法
- SpringMVC返回json乱码处理方法