最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring請(qǐng)求路徑帶參數(shù)URL使用注解的寫(xiě)法說(shuō)明

 更新時(shí)間:2021年08月16日 15:00:11   作者:靈穎橋人  
這篇文章主要介紹了Spring請(qǐng)求路徑帶參數(shù)URL使用注解的寫(xiě)法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Spring請(qǐng)求路徑帶參數(shù)URL使用注解的寫(xiě)法

調(diào)用外部平臺(tái)http接口,Post請(qǐng)求,url 為路徑帶有參數(shù)的形式:

http://xxxxxx.com/openApi/auth/getUserAuth?version=v1.0

使用 Retrofit 框架(本文使用的2.6.2版本)發(fā)送Post請(qǐng)求,可以在 @Post 注解中直接帶上參數(shù),如下:

    @POST("auth/getUserAuth?version=v1.0")
    Call<McgjResponse<UserAuthResponseDTO>> getUserAuth(@Body UserAuthRequest userAuthRequest);

因?yàn)槌醮问褂?Retrofit 框架,所以自己?jiǎn)?dòng)Spring服務(wù)模擬外部平臺(tái)接口,發(fā)現(xiàn)之前一直都在@PostMapping中定義路徑,還沒(méi)怎么寫(xiě)過(guò)帶參數(shù)的,導(dǎo)致寫(xiě)錯(cuò)了,報(bào) 404錯(cuò)誤,記錄一下下。先說(shuō)正確寫(xiě)法:

正確寫(xiě)法:

@PostMapping(value ="/authorize/addRecord",params = "version=v1.0")
    public McgjResponse<UserAuthResponseDTO> test(){

其實(shí)@RequestMapping、@GetMapping、@PostMapping 三個(gè)注解都可以指定請(qǐng)求Header、請(qǐng)求path、以及請(qǐng)求params。

@RequestMapping("/foo") 等價(jià)于 @RequestMapping(path="/foo")

 /**
  * The primary mapping expressed by this annotation.
  * <p>In a Servlet environment this is an alias for {@link #path}.
  * For example {@code @RequestMapping("/foo")} is equivalent to
  * {@code @RequestMapping(path="/foo")}.
  * <p>In a Portlet environment this is the mapped portlet modes
  * (i.e. "EDIT", "VIEW", "HELP" or any custom modes).
  * <p><b>Supported at the type level as well as at the method level!</b>
  * When used at the type level, all method-level mappings inherit
  * this primary mapping, narrowing it for a specific handler method.
  */
 @AliasFor("path")
 String[] value() default {};

所以平常在括號(hào)中直接寫(xiě),只是指定了 path。如果錯(cuò)誤地把參數(shù)寫(xiě)到請(qǐng)求 path 中,則會(huì)報(bào) HTTP 404 錯(cuò)誤,如下錯(cuò)誤寫(xiě)法:

錯(cuò)誤寫(xiě)法:

//錯(cuò)誤寫(xiě)法
@PostMapping(value ="/auth/getUserAuth?version=v1.0")
    public McgjResponse<UserAuthResponseDTO> test(){

小結(jié):

這三個(gè)注解平時(shí)用的是如此之多,卻如此不熟悉,實(shí)在不應(yīng)該!

Spring注解@RequestMapping請(qǐng)求路徑映射問(wèn)題

@RequestMapping請(qǐng)求路徑映射,如果標(biāo)注在某個(gè)controller的類(lèi)級(jí)別上,則表明訪(fǎng)問(wèn)此類(lèi)路徑下的方法都要加上其配置的路徑;最常用是標(biāo)注在方法上,表明哪個(gè)具體的方法來(lái)接受處理某次請(qǐng)求。

以下兩種方式都可以從url中傳參數(shù),但是第二種方式的適用性更高一些,當(dāng)參數(shù)中包含中文的時(shí)候,如果用第一種方式傳參數(shù),經(jīng)常會(huì)出現(xiàn)參數(shù)還沒(méi)到controller就已經(jīng)經(jīng)過(guò)編碼了(例如:經(jīng)過(guò)utf-8編碼后,原本要傳的參數(shù)就會(huì)以%+ab...cd這樣的方式出現(xiàn)),然后controller接受到這樣的請(qǐng)求后,根本無(wú)法解析該請(qǐng)求應(yīng)該走那個(gè)業(yè)務(wù)方法。

然后就會(huì)出現(xiàn)常見(jiàn)的404問(wèn)題。。。

package com.test.jeofey.web; 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; 
 
@Controller
@RequestMapping("/path")
public class TestController {
 
 // 第一種傳參數(shù)的方式 訪(fǎng)問(wèn)地址例如:http:域名/path/method1/keyWord.html
 @RequestMapping("method1/{keyWord}")
 public String getZhiShiDetailData(@PathVariable("keyWord") String keyWord,
   HttpServletRequest request, HttpServletResponse response){
  System.out.println(keyWord);
  return "v1/detail";
 }
 
 // 第二種傳參數(shù)的方式 訪(fǎng)問(wèn)地址例如:http:域名/path/method2.html?key=keyWord
 @RequestMapping("method2")
 public String getCommonData(HttpServletRequest request, 
   HttpServletResponse response){
  String keyWord= request.getParameter("key");
  System.out.println(keyWord);
  return "v1/common";
 }  
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 帶著新人看java虛擬機(jī)01(推薦)

    帶著新人看java虛擬機(jī)01(推薦)

    這篇文章主要介紹了java虛擬機(jī),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 用java實(shí)現(xiàn)掃雷游戲

    用java實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了用java實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Spring?boot框架JWT實(shí)現(xiàn)用戶(hù)賬戶(hù)密碼登錄驗(yàn)證流程

    Spring?boot框架JWT實(shí)現(xiàn)用戶(hù)賬戶(hù)密碼登錄驗(yàn)證流程

    這篇文章主要介紹了Springboot框架JWT實(shí)現(xiàn)用戶(hù)賬戶(hù)密碼登錄驗(yàn)證,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Java經(jīng)典用法總結(jié)(二)

    Java經(jīng)典用法總結(jié)(二)

    這篇文章主要介紹了Java經(jīng)典用法總結(jié),在本文中,盡量收集一些java最常用的習(xí)慣用法,特別是很難猜到的用法,本文重點(diǎn)講解了java應(yīng)用和輸入輸出常用方法,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Java多線(xiàn)程下載網(wǎng)圖的完整案例

    Java多線(xiàn)程下載網(wǎng)圖的完整案例

    這篇文章主要給大家介紹了關(guān)于Java多線(xiàn)程下載網(wǎng)圖的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 例舉fastJson和jackson轉(zhuǎn)json的區(qū)別

    例舉fastJson和jackson轉(zhuǎn)json的區(qū)別

    今天小編就為大家分享一篇關(guān)于例舉fastJson和jackson轉(zhuǎn)json的區(qū)別,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • MyBatis-Plus updateById不更新null值的方法解決

    MyBatis-Plus updateById不更新null值的方法解決

    用Mybatis-Plus的updateById()來(lái)更新數(shù)據(jù)時(shí),無(wú)法將字段設(shè)置為null值,更新后數(shù)據(jù)還是原來(lái)的值,本文就來(lái)詳細(xì)的介紹一下解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • 淺談Java高并發(fā)解決方案以及高負(fù)載優(yōu)化方法

    淺談Java高并發(fā)解決方案以及高負(fù)載優(yōu)化方法

    這篇文章主要介紹了淺談Java高并發(fā)解決方案以及高負(fù)載優(yōu)化方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 三行Java代碼實(shí)現(xiàn)計(jì)算多邊形的幾何中心點(diǎn)

    三行Java代碼實(shí)現(xiàn)計(jì)算多邊形的幾何中心點(diǎn)

    因?yàn)楣ぷ餍枰?jì)算采煤機(jī)工作面的中心點(diǎn),如果套用數(shù)學(xué)的計(jì)算公式,用java去實(shí)現(xiàn),太麻煩了。本文將利用java幾何計(jì)算的工具包,幾行代碼就能求出多變形的中心,簡(jiǎn)直yyds!還不快跟隨小編一起學(xué)起來(lái)
    2022-10-10
  • Java設(shè)置Access-Control-Allow-Origin允許多域名訪(fǎng)問(wèn)的實(shí)現(xiàn)方法

    Java設(shè)置Access-Control-Allow-Origin允許多域名訪(fǎng)問(wèn)的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java設(shè)置Access-Control-Allow-Origin允許多域名訪(fǎng)問(wèn)的實(shí)現(xiàn)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10

最新評(píng)論

浙江省| 商都县| 杭锦旗| 邢台市| 汤原县| 阳谷县| 大邑县| 屯门区| 称多县| 突泉县| 怀安县| 桃园县| 柯坪县| 台前县| 多伦县| 洪雅县| 开平市| 曲阳县| 安康市| 丰城市| 来凤县| 东乡族自治县| 大新县| 秦皇岛市| 德保县| 赫章县| 略阳县| 阳谷县| 营口市| 方正县| 雅安市| 白山市| 资中县| 稷山县| 麻栗坡县| 伊春市| 镇平县| 文成县| 什邡市| 临澧县| 日土县|