日常笔记

Httpservletrequest也可以用来接收http请求的参数,比如ajax的请求

AJAX对于JAVA接收HttpServletRequest和json字符串两种方式的传递写法

1、json字符串的接收形式

  在JAVA项目开发中,接口的接收参数有的是以json字符串 形式接收的,后台写法如下:

public ObjectMapper jsonTranster = new ObjectMapper();
  @CrossOrigin
    @RequestMapping(value="/add" ,method=RequestMethod.POST)
    public Object addZjLy(@RequestBody String po){
    FpzjLyb sq;
        try {
            sq = jsonTranster.readValue(po, FpzjLyb.class);
        } catch (IOException e) {
            return getResultMap(3);
        }
       //此处省略
    }

  对于这种的接收,前端ajax的写法如下:

var zzData = {
        id:1
    };
    zzData = JSON.stringify(zzData); //必写
    $.ajax({
        url: interUrl + "/fpzjZzsq/add",
        type: "POST", //必写(GET请求就写GET)
        dataType: "json", //必写
        contentType: "application/json", //必写
        data: zzData, 
        success: function (data) {
           //此处省略
        },
        error: function (data) {
            console.log("")
        }

    })

  

2、HttpServletRequest的接收形式

  有的是以HttpServletRequest 形式接收的,后台写法如下:

    @RequestMapping(value="/login",method=RequestMethod.POST)
    @ResponseBody
    public Object loginForm(HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //以下省略
    }

  对于这种的接收,前端ajax的写法如下:

var qData = {
        username:lingdada,
        password:121212
    };
    $.ajax({
        type: "POST",
        url:"/fpzj/facade",
        contentType: "application/x-www-form-urlencoded",
        data: qData,
        success: function (data) {
           //此处省略
        },
        error: function (data) {
            console.log("")
        }
    });

  

对于上边的注意地方是,contentType这个绝对不能写成那个application/json,因为这个是对json 才是用的,要用注解@RequestBody来接json格式的,为什么用requestbody可见url:https://www.cnblogs.com/qiankun-site/p/5774300.html对于application/x-www-form-urlencoded ,则可以用httpservletrequest来接收。亲测是有效,但是如果你前端项目里没有加上对于ajax的发送接口设置了一些初始的配置,我觉得,这个contentType可以不定义,但是你加上我这样的配置,绝对可以的。

json 笔记:

JSON 数据的书写格式是:名称/值对。

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

"firstName" : "John"

JSON 对象在花括号中书写:

对象可以包含多个名称/值对:

{ "firstName":"John" , "lastName":"Doe" }

JSON 数组

JSON 数组在方括号中书写:

数组可包含多个对象:

{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}

 

posted on 2019-04-30 10:56  Cherishforchen  阅读(109)  评论(0编辑  收藏  举报

导航