java produces_springMVC produces属性含义
@RequestMapping(value = "/produces", produces = "application/json"):表示将功能处理方法将生产json格式的数据,此时根据请求头中的Accept进行匹配,如请求头“Accept:application/json”时即可匹配;
@RequestMapping(value = "/produces", produces = "application/xml"):表示将功能处理方法将生产xml格式的数据,此时根据请求头中的Accept进行匹配,如请求头“Accept:application/xml”时即可匹配。
此种方式相对使用@RequestMapping的“headers = "Accept=application/json"”更能表明你的目的。
服务器控制器代码详解cn.javass.chapter6.web.controller.consumesproduces.ProducesController;
客户端代码类似于之前的Content-Type中的客户端,详见ProducesController.java代码。
当你有如下Accept头:
①Accept:text/html,application/xml,application/json
将按照如下顺序进行produces的匹配 ①text/html ②application/xml ③application/json
②Accept:application/xml;q=0.5,application/json;q=0.9,text/html
将按照如下顺序进行produces的匹配 ①text/html ②application/json ③application/xml
q参数为媒体类型的质量因子,越大则优先权越高(从0到1)
③Accept:*/*,text/*,text/html
将按照如下顺序进行produces的匹配 ①text/html ②text/* ③*/*
即匹配规则为:最明确的优先匹配。
代码详见ProducesPrecedenceController1、ProducesPrecedenceController2、ProducesPrecedenceController3。
三、窄化时是覆盖 而 非继承
如类级别的映射为 @RequestMapping(value="/narrow", produces="text/html"),方法级别的为@RequestMapping(produces="application/xml"),此时方法级别的映射将覆盖类级别的,因此请求头“Accept:application/xml”是成功的,而“text/html”将报406错误码,表示不支持的请求媒体类型。
详见cn.javass.chapter6.web.controller.consumesproduces.NarrowController。
只有生产者/消费者 模式 是 覆盖,其他的使用方法是继承,如headers、params等都是继承。
四、组合使用是“或”的关系
@RequestMapping(produces={"text/html", "application/json"}) :将匹配“Accept:text/html”或“Accept:application/json”。
五、问题
消费的数据,如JSON数据、XML数据都是由我们读取请求的InputStream并根据需要自己转换为相应的模型数据,比较麻烦;
生产的数据,如JSON数据、XML数据都是由我们自己先把模型数据转换为json/xml等数据,然后输出响应流,也是比较麻烦的。
Spring提供了一组注解(@RequestBody、@ResponseBody)和一组转换类(HttpMessageConverter)来完成我们遇到的问题,详见6.6.8节。
https://blog.csdn.net/lzwglory/article/details/17252099
java produces_springMVC produces属性含义相关推荐
- java produces_java-有关在Spring MVC中@RequestMapping中的Produces属性的一些信息
在Spring MVC Showcase示例(可从STS仪表板了解)中,我遇到以下情况. 我认为我有以下链接: ">@ResponseBody (UTF-8 charset produ ...
- mybatis操作Oracle数据库批量插入与更新、运行注意事项、属性含义
一.项目需求 针对将近300万用户的用电数据进行统计分析,将结果更新保存Oracle数据库.我需要往一个表里面插入数据,数据量总计在500万条左右.一条一条插入的话非常慢,2万条数据近20分钟,后面就 ...
- java中蛇的属性有哪些_学习Java类的属性
学习Java类的属性-武汉北大青鸟 Public.private.protected显示了三种类中的属性和服务的类型,public是可以随意访问的.private是外界不能访问的(显示了数据的封装性) ...
- 【java】java获取对象属性类型、属性名称、属性值
java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...
- Java中static的含义和用法
Java中static的含义和用法 static:静态的,用于修饰成员(成员变量,成员方法); 1.被static所修饰的变量或者方法会储存在数据共享区; 2.被static修饰后的成员变量只有一份! ...
- Linux中的Java类,Java基础入门学习-Java中类的属性
Java基础入门学习-Java中类的属性 发布时间:2006-05-27 00:46:15来源:红联作者:WWW Public.private.protected显示了三种类中的属性和服务的类型,pu ...
- Java使用对象使用属性过滤集合对象重复数据
使用流Stream方式过滤对象中重复的数据-Java使用对象使用属性过滤集合对象重复数据 1.先创建一个方法工具类 private static <T> Predicate<T> ...
- java遍历一个类的属性名,java遍历对象属性
java对象动态添加属性,Class对象和Java反射机制,java遍历对象属性,js对象动态添加属性 java 对象动态添加属性,Class对象和Java反射机制,java遍历对象属性,js对象动态 ...
- 如何配置数据库带有下划线字段对应Java实体类属性(驼峰命名)
一般开发中,数据库字段设计推荐使用下划线(u_name),Java实体类属性使用驼峰命名(uName),为了能使数据库字段与Java实体类属性一一映射,需要做一下的配置,这里我用的是spring bo ...
最新文章
- 动态规划(DP),Human Gene Functions
- 文件传输:二进制文件传输与文本传输(file transfer)
- SAP中过账码or记账码posting code
- 2019 surf project for a milestone
- 九宫重排_康拓展开_bfs
- 《Adobe Flash Professional CC经典教程》——1.15 复习
- h5页面移动端的社会化分享_Adobe年尾续运H5页面
- 第三方网站调用微信公众号的图片被禁止
- 锁 公平 非公平_推荐引擎也需要公平!
- 几款常用UML建模工具介绍
- 监控系统存储服务器和磁盘阵列,监控怎样用磁盘阵列存储服务器
- 开心赚手机网赚操作真实赚钱项目揭秘
- JS 超大文件上传解决方案:分片断点上传(一)
- 将sql数据库字段中的NULL都替换为空
- Xiaojie雷达之路---TI实战笔记---ESM Driver说明
- 世界主要的大半岛有哪些?
- 武汉市2010年 第六次全国人口普查主要数据公报
- PMO项目经理必备的简洁解决问题方案和报告模板
- 手机外接usb摄像头软件下载_佳能推出Mac测试版LUMIX Tether软件 可将相机变身USB外接摄像头...
- 飞利浦Zoom!正式进入中国市场;西门子医疗首台发热门诊“无人”CT落地;埃森哲意向收购法国领先云服务提供商 | 美通企业周刊...
热门文章
- HRED+VHRED+AWI模型介绍
- 关于mysql连接报10055错误的解决
- DuiVision开源界面库介绍
- 修改chrome或edge缓存位置
- Week 2互评作业:用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。
- C语言数据类型(超详细)
- emacs+prelude问题配置
- php 外观模式,PHP设计模式 外观设计模式
- OpenCV-Python 读取显示图像 | 五
- MATLAB中canny算子边缘检测