zoukankan      html  css  js  c++  java
  • springMVC 处理json 及 HttpMessageConverter 接口

     一、SpringMVC处理json的使用

     1、添加依赖jar包

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.8.7</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.7</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.7</version>
    </dependency>

    2、写目方法,使其返回 JSON 对应象或集合

    3、在方法上添加 @ResponseBody 注解:

    @Controller
    @RequestMapping("/user")
    public class UserController
    {
        @Autowired
        private UserService userService;
        
        @RequestMapping("/getUserList")
        @ResponseBody
        public Map<String, Object> getUserList(Model model)
        {
            List<User> userlist = userService.getUserList();
            Map<String, Object> map = new HashMap<>();
            map.put("aaData", userlist);
            return map;
        }
    }

    二、HttpMessageConverter

    1、HttpMessageConverter信息

    HttpMessageConverter<T> Spring3.0 新添加的一个接口,负责求信息转换为一个象(T),象(T为响应信息 

        

    2、HttpMessageConverter 运行原理

     

    (1)HttpInputMessage 将请求的信息先转为 InputStream 对象,InputStream 再由 HttpMessageConverter 转换为 SpringMVC 需要的java对象;

    (2)SpringMVC 返回一个 java 对象, 并通过 HttpMessageConverter 转为响应信息,接着 HttpOutputMessage 将响应的信息转换为 OutputStream,接着给出响应。

    3、 HttpMessageConveter 的实现类

    4、 SpringMVC 默认加载的 HttpMessageConverter 实现类

    (1)DispatcherServlet 默认加载 HttpMessageConveter 的6实现类,如下所示:

    (2)加入 jackson jar包后,启动的时候加载 7 HttpMessageConverter 的实现类,如下所示:

     5、使用 HttpMessageConverter

    (1) @ResponseBody 和 @RequestBody 示例:

    (2) HttpEntity 和 ResponseEntity 示例

  • 相关阅读:
    css浏览器兼容问题集锦
    【转】H264编码原理以及I帧B帧P帧
    Makefile Shell 脚本;sed命令
    oProfile 学习
    C++ 局部变量的析构
    【转】C++ 单例模式
    C++ operator 知识点 2
    C++ operator 知识点
    218多校第九场 HDU 6424 (数学)
    2018多校第九场 HDU 6416 (DP+前缀和优化)
  • 原文地址:https://www.cnblogs.com/yufeng218/p/6623329.html
Copyright © 2011-2022 走看看