欧美日韩国产一区,亚洲一区视频,色综合久久久久,私密按摩师舌头伸进去了,99re6这里只有精品,夜夜性日日交xxx性hd

java框架(2.2)@ResponseBody和@Requestbody

  • • 發表于 8年前
  • • 作者 大妖怪
  • • 2771 人瀏覽
  • • 1 條評論
  • • 最后編輯時間 8年前
  • • 來自 [技 術]

原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處

上章講到了@RestController注解,該注解是對@Controller注解的增強,處理標記控制器,還可以讓類下所有的方法都返回json格式的數據。有人會問了:我并不是控制器下每個方法都要返回json啊,我有可能要返回渲染頁面啥的怎么辦?不用擔心,接下來要講到的@ResponseBody就是解決方案。
在上章基礎之上,我們改回@Controller,然后在類上加上一個@ResponseBody注解。

@Controller
@RequestMapping(value = "/json")
@ResponseBody
public class JsonController {

    @RequestMapping(value = "/test")
    public String jsonTest(){
        return "dayaoguai";
    }
}

運行效果一樣

我們再改成注解到類上面,為了有區別,我們再寫一個同樣功能的:

@Controller
@RequestMapping(value = "/json")
public class JsonController {

    @RequestMapping(value = "/test")
    @ResponseBody
    public String jsonTest(){
        return "dayaoguai";
    }

    @RequestMapping(value = "/test1")
    public String jsonTest1(){
        return "dayaoguai";
    }
}

訪問test:

訪問test1:

由上述實驗可以看出我們的@ResponseBody注解的作用就是返回json格式的內容。而@RestController其實就是@Controller和@ResponseBody的結合。我們來對比一下@Controller和@RestController的源碼:

  • @Controller:
  • @RestController:

    很顯然,@RestController的做法就是加了@Controller和@ResponsBody罷了:

    所以其實真正控制返回json格式的注解還是@ResponsBody。
    那么我們既然有返回json格式的方法,那么有沒有接收json格式的方法呢?
    答案還是有(廢話,要是沒有我在這問什么!!!)。我們可以用@Requestbody作為解決方案。
    新建一個方法,然后我們去接收一個參數name:
    @RequestMapping(value = "/jsonParam",method = RequestMethod.POST)
      public void jsonParam(String name){
          System.out.println(name);
      }
    
    我們用poster先用普通方式訪問一下,傳參數name=dayaoguai:

    在控制臺我們可以看到接收到了結果:

    那么我們再用json方式訪問一下:

    可以在控制臺看到打印了null:

    這說明請求成功了但是沒有成功獲取到參數。
    那么,我們再加上@Requestbody注解試試:
    @RequestMapping(value = "/jsonParam",method = RequestMethod.POST)
      public void jsonParam(@RequestBody String name){
          System.out.println(name);
      }
    
  • 注意這個注解必須要加在參數的前面。
    我們再來進行json請求試試:

    這次看到控制臺打印了參數,說明接收成功了:

    但是我們用普通傳參試試:

    但是結果并不是我們想要的:

    通過這個結果,我們不難猜出加了@ResponseBody注解SrpingMVC注解在底層對我們的數據進行了某些拼裝,有興趣的同學可以自己去了解了解源碼。

總結:

  • @ResponseBody可以注解到類或方法上,注解到類表示對該類下所有方法都生效,注解到方法上則表示只對該方法生效
  • @RequestBody只能注解到參數上,表示要接收的參數是一個json格式的參數。
  • 帶@RequestBody只能接收json格式的參數不能接收普通參數。

老規矩,獻上源碼:https://share.weiyun.com/93cc277170716b0c8f9dc36bbf9f30de

分享到:
1條評論
Ctrl+Enter
作者

大妖怪

大妖怪

APP:1 帖子:76 回復:200 積分:7517

已加入社區[3076]天

夢里巷口,可有你倚門回首

作者詳情》
Top