美文网首页IT修真院_JAVA
ContentType 在Spring MVC中如何接收

ContentType 在Spring MVC中如何接收

作者: 老菜菜 | 来源:发表于2017-08-29 01:48 被阅读0次

    大家好,我是IT修真院深圳分院第01期学员,一枚正直纯洁善良的web程序员。今天给大家分享一下,修真院官网JAVA(职业)任务2的知识点——ContentType 在Spring MVC中如何接收。

    1.背景介绍

    Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。

    2.知识剖析

    2.1 常用的ContentType三种类型:

    1)application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码,大部分服务端语言都对这种方式有很好的支持。

    2)multipart/form-data:使用表单上传文件时,必须让 form 的 enctyped 等于这个值。

    3)application/json:目前最流行的请求头格式,告诉服务端消息主体是序列化后的 JSON 字符串。可以方便的提交复杂的结构化数据,特别适合 RESTful 的接口。

    2.2 @RequestMapping

    @Target({ElementType.METHOD, ElementType.TYPE})

    @Retention(RetentionPolicy.RUNTIME)

    @Documented

    @Mapping

    public @interface RequestMapping {

    String[] value() default {};

    RequestMethod[] method() default {};

    String[] params() default {};

    String[] headers() default {};

    String[] consumes() default {};

    String[] produces() default {};

    }

    value:指定请求的实际地址, 比如 /action/info之类。

    method:指定请求的method类型, GET、POST、PUT、DELETE等

    params:指定request中必须包含某些参数值是,才让该方法处理

    headers:指定request中必须包含某些指定的header值,才能让该方法处理请求

    consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

    produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回

    3.常见问题

    在Spring MVC中接收

    4.解决方案

    根据consumes值进行判断

    5.编码实战

    6.扩展思考

    text/xml格式

    7.参考文献

    参考:Http请求中Content-Type讲解以及在Spring MVC中的应用

    PPT链接


    ContentType类型在Spring MVC如何使用_腾讯视频

    8.更多讨论

    其他Http ContentType格式

    问:@RequestMapping的方法只有以上这些吗?

    答:spring新版本又增加了path()方法,需要去看API了解。

    问:控制器方法如何匹配处理请求?

    答:通过consumes方法的值进行判断。

    问:header中的accept的设置是怎么回事?

    答:不同的客户端发送请求,请求的accept有可能不一样,不全是*/*,比如点击jsp的<a>标签,之后获取的accept值并不是*/*。accept有具体的匹配规则,可以参考上面的参考链接。

    鸣谢

    感谢大家观看

    ------------------------------------------------------------------------------------------------------------------------

    今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

    相关文章

      网友评论

        本文标题:ContentType 在Spring MVC中如何接收

        本文链接:https://www.haomeiwen.com/subject/gwzwrxtx.html