@RequestParam,@PathParam,@PathVariable,@QueryParam註解的使用區別

       獲取url模板上數據的(/{id})@DefaultValue 獲取請求參數的(包括post表單提交)鍵值對(?param1=10&param2=20)、能夠設置defaultValue
JAX-RS @PathParam @QueryParam
Spring @PathVariable @RequestParam

 

@RequestParam @PathVariable 註解是用於從request中接收請求的,兩個均可以接收參數,關鍵點不一樣的是@RequestParam 是從request裏面拿取值,而 @PathVariable 是從一個URI模板裏面來填充html

@RequestParam

看下面一段代碼:java

http://localhost:8080/springmvc/hello/101?param1=10&param2=20spring

根據上面的這個URL,你能夠用這樣的方式來進行獲取json

public String getDetails(
    @RequestParam(value="param1", required=true) String param1,
        @RequestParam(value="param2", required=false) String param2){
...
}

@RequestParam 支持下面四種參數服務器

  • defaultValue 若是本次請求沒有攜帶這個參數,或者參數爲空,那麼就會啓用默認值
  • name 綁定本次參數的名稱,要跟URL上面的同樣
  • required 這個參數是否是必須的
  • value 跟name同樣的做用,是name屬性的一個別名

@PathVariable

這個註解可以識別URL裏面的一個模板,咱們看下面的一個URLmarkdown

http://localhost:8080/springmvc/hello/101?param1=10&param2=20

上面的一個url你能夠這樣寫:mvc

@RequestMapping("/hello/{id}")
    public String getDetails(@PathVariable(value="id") String id,
    @RequestParam(value="param1", required=true) String param1,
    @RequestParam(value="param2", required=false) String param2){
.......
}

區別很明顯了app

@PathParam

這個註解是和spring的pathVariable是同樣的,也是基於模板的,可是這個是jboss包下面的一個實現,上面的是spring的一個實現,都要導包post

@QueryParam

@QueryParam 是 JAX-RS 原本就提供的,和Spring的RequestParam做用一致ui

@ResponseBody

responseBody表示服務器返回的時候以一種什麼樣的方式進行返回, 將內容或對象做爲 HTTP 響應正文返回,值有不少,通常設定爲json

@RequestBody

通常是post請求的時候纔會使用這個請求,把參數丟在requestbody裏面

轉:https://blog.csdn.net/u011410529/article/details/66974974

相關文章
相關標籤/搜索