zoukankan      html  css  js  c++  java
  • SpringMvc采用 http+json 实现前后端交互

    演示列表

    报文表示

     

    一、Json请求和Json响应

    实现:Spring4.1.1.RELEASE + jackson2.4.4+JQuery1.10.2

    1、pom.xml 

    <properties>

        <jackson.version>2.4.4</jackson.version>

    </properties>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>

    2、web.xml

    3、SpringRest-servlet.xml

    二、业务代碼

    1、GetJson2::@RequestBody/Simple- @ResponseBody

    1.1、action

     

    1.2、jsp

    1.3、測試 

     

    2.4、报文

    /GetJson.do::JsonParams:param11=req11,param12=req12,param21=req21,param22=req22
    /GetJson.do::JsonResBean:HttpResults [result11=res11-req11, result12=res12-req12, result21=res21-req21, result22=res21-req22] 

    2、PostJson1::@RequestBody/Map - @ResponseBody

    2.1、action

    2.2、jsp

    2.3、測試

    2.4、报文

    /PostJson1.do::JsonParams:HttpParams [param11=req11, param12=req12, param21=req21, param22=req22]
    /PostJson1.do::JsonResBean:HttpResults [result11=res11-req11, result12=res12-req12, result21=res21-req21, result22=res21-req22] 

    3、PostJson2::@RequestBody/Bean - @ResponseBody

    3.1、action

    3.2、jsp

    3.3、測試

    3.4、报文

    /PostJson2.do::JsonParams:{param11=req11, param12=req12, param21=req21, param22=req22}
    /PostJson2.do::JsonResBean:HttpResults [result11=res11-req11, result12=res12-req12, result21=res21-req21, result22=res21-req22]

    4、返回1个参数对象

    4.1、代码

    4.2、测试

     

    5、返回多个参数对象

    5.1、action

     

    5.2、配置 (SpringRest-servlet.xml)

    5.3、测试

    三、附录

    1、@RequestParam

    @RequestParam、@RequestBody用于接受客户端的JSON数据,GET请求好像只能用@RequestParam

    如果传输的是单层json数据,可以使用@RequestParam接收,它会把前台传输过来的json转化为后台对应的Map<String,Object>对象

    2、@RequestBody

    @RequestParam、@RequestBody用于接受客户端的JSON数据,GET请求好像不能用@RequestBody

    如果传输的是单层json数据,可以使用@RequestBody接收,它会把前台传输过来的json转化为后台对应的Map<String,Object>对象

     

    3、@ResponseBody

    @ResponseBody用于将JSON数据返回客户端,如:

    ajax请求返回json数据

    我们通常这样做,使用response.getWriter()写回json数据:

    @ResponseBody只要一个注解就搞定上述输出了!

     

  • 相关阅读:
    PostgreSQL 语法
    Linux 上安装 PostgreSQL
    Gitlab基础知识介绍
    Grafana 入门知识介绍
    数据卷容器
    Docker网络详解——原理篇
    Docker网络详细理解-容器网络互通
    搭建Elasitc stack集群需要注意的日志问题
    创建Elasticsearch集群并为它们配置TLS安全通信
    Elastic:为Elastic Docker部署设置安全
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/7346502.html
Copyright © 2011-2022 走看看