目录
  • url传参的方式
  • 以form_data方式传输
  • 以json数据传输
  • 注解
    • @RequestParam
    • @RequestBody
    • @PathVariable
  • formdata和json的区别
    • 关于post请求能用@pathVariable注解的尝试

      url传参的方式

          /**
           * 请求路径:http://localhost:8080/hello/show5/1/james
           */
          @PostMapping("show5/{id}/{name}")
          public void test5(@PathVariable("id") Long ids, @PathVariable("name") String names){
          }

      以form_data方式传输

          @PostMapping("/add/user")
          public JSONObject addUser(User param){
              return userService.addUser(param);
          }

      字段接收-形参

          /**
           * @RequestParam() 里边的值必须要和前端传递过来的参数名字相同
           */
          @PostMapping
          public String testUser(@RequestParam("name") String a, @RequestParam("phone") String b, String password){
              return "ok";
          }

      以json数据传输

          @PostMapping("/add/user")
          public JSONObject addUser(@RequestBody User param){
              return userService.addUser(param);
          }

      其实还有一种以前用过的请求方式:HttpServerletRequest.getParameter("name"),不常用

      注解

      @RequestParam

      作用:将指定的请求参数赋值给方法中的形参

      • 指定的参数可以是普通元素、数组、集合、对象等等
      • 一个请求——》可以有多个@RequestParam

      语法:@RequestParam(value="参数名",required="true/false",defaultValue="")

      value:参数名
      required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
      defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

      示例:

          @PostMapping("/test")
          public void test(@RequestParam(required = true)String name) {
          }

      @RequestBody

      作用:接收前端传递的Json对象的字符串。(请求体中的数据)

      • Post请求,GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据
      • 一个请求——》只有一个@RequestBody

      @PathVariable

      作用:接收请求路径中占位符的值。

      Get路径请求

      语法:@RequestMapping(value=”user/{userId}/{userName}”)
      示例:
          /**
           * 请求路径:http://localhost:8080/hello/show5/1/james
           */
          @PostMapping("show5/{id}/{name}")
          public void test5(@PathVariable("id") Long ids, @PathVariable("name") String names){
          }

      formdata和json的区别

      Content-Type(内容类型)

      语法格式:

      Content-Type: text/html; charset=utf-8
      Content-Type: multipart/form-data; boundary=something

      常见的媒体格式类型:

      • text/html : HTML格式
      • text/plain :纯文本格式
      • text/xml : XML格式
      • image/gif :gif图片格式
      • image/jpeg :jpg图片格式
      • image/png:png图片格式

      以application开头的媒体格式类型:

      • application/xhtml+xml :XHTML格式
      • application/xml: XML数据格式
      • application/atom+xml :Atom XML聚合格式
      • application/json: JSON数据格式
      • application/pdf:pdf格式
      • application/msword : Word文档格式
      • application/octet-stream : 二进制流数据(如常见的文件下载)
      • application/x-www-form-urlencoded : 中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

      另外一种常见的媒体格式是上传文件之时使用的:

      • multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

      formdata:

      Java后台接收数据的三种方式(url、form-data与application/json)

      常用有两种: application/x-www-form-urlencoded 和 multipart/form-data , 默认为application/x-www-form-urlencoded

      • multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;
      • x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的

      json:

      Java后台接收数据的三种方式(url、form-data与application/json)

      application/json: JSON数据格式,将数据进行序列化的一种方式,后端可以直接使用

      关于post请求能用@pathVariable注解的尝试

      正常来说这个注解习惯使用在get请求上, 之前偷懒代码贴出的是post, 关于此项的疑惑做个尝试

      Java后台接收数据的三种方式(url、form-data与application/json)

      找个controller复制过来之前的代码

      Java后台接收数据的三种方式(url、form-data与application/json)

      启动项目, 端口80, 打开postman, 发送请求

      Java后台接收数据的三种方式(url、form-data与application/json)

      控制台

      Java后台接收数据的三种方式(url、form-data与application/json)

      @PathVariable是spring3.0的新功能:接收请求路径中占位符的值, 请求方式post, get, put等都可以

      声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。