欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC路徑匹配中使用通配符問題

 更新時(shí)間:2021年09月08日 10:27:58   作者:234390216  
這篇文章主要介紹了SpringMVC路徑匹配中使用通配符問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

SpringMVC路徑匹配中使用通配符

@RequestMapping中指定的路徑也可以使用通配符*

表示任意字符。如下的處理器方法可以映射請求/antstyle/a,可以映射請求/antstyle/b,但是它不能映射請求請求/antstyle/a/b,因?yàn)樗荒苡成湟患壜窂健?/p>

@RequestMapping("/antstyle/*")
public Object testAntStyle() {
    return "antStyle";
}

通配符不是只能放在最后的

它也可以放在其它位置。下面的示例中就是把通配符放在中間位置,它可以映射請求/antstyle/a/bcd,也可以映射請求/antstyle/ab/bcd。

@RequestMapping("/antstyle/*/bcd")
public Object testAntStyle() {
    return "antStyle";
}

通配符還可以匹配以某字符結(jié)束的路徑

如下處理器方法可以映射/antstyle/后路徑以bcd結(jié)尾的路徑,比如/antstyle/abcd、/antstyle/bcd等。

@RequestMapping("/antstyle/*bcd")
public Object testAntStyle() {
    return "antStyle";
}

通配符還可以匹配以某字符開始的路徑

如下處理器方法可以映射/antstyle/abc、/antstyle/abcd等。

@RequestMapping("/antstyle/abc*")
public Object testAntStyle() {
    return "antStyle";
}

一個(gè)星號(hào)只能匹配一級路徑,如果需要匹配任意的多級路徑則可以使用兩個(gè)星號(hào)。如下處理器方法可以映射任何請求路徑以/antstyle/開頭的請求,如/antstyle/a、/antstyle/a/b等。

@RequestMapping("/antstyle/**")
public Object testAntStyle() {
    return "antStyle";
}

一個(gè)星號(hào)與兩個(gè)星號(hào)還可以一起使用,此時(shí)一個(gè)星號(hào)還是匹配任意字符,但是只能在當(dāng)前層級,而兩個(gè)星號(hào)還是可以匹配任意的層級,所以如下可以匹配/antstyle/abca/xxx/xxx等。

@RequestMapping("/antstyle/abc*/**")
public Object testAntStyle() {
    return "antStyle";
}

請求映射路徑中使用了通配符時(shí),也還是可使用路徑變量的,它們是相互獨(dú)立的。如下代碼中我們就在請求路徑中同時(shí)使用了路徑變量和通配符。

@RequestMapping("/antstylewithpathvariable/*/{path}/abc")
public Object testAntStyleWithPathVariable(@PathVariable String path) {
    return "ant style with path variable, path is " + path;
}

同時(shí)存在路徑變量和通配符匹配時(shí)的優(yōu)先級關(guān)系

當(dāng)一個(gè)請求路徑可以匹配多個(gè)處理器方法時(shí),SpringMVC將優(yōu)先匹配路徑映射更精確的那個(gè)。

  • 擁有更少的路徑變量和通配符的路徑映射更精確。比如/hotels/{hotel}/*擁有一個(gè)路徑變量和一個(gè)通配符,那么它會(huì)比/hotels/{hotel}/**更精確,會(huì)優(yōu)先匹配,因?yàn)楹笳邠碛幸粋€(gè)路徑變量和兩個(gè)通配符。
  • 如果兩個(gè)路徑映射的通配符數(shù)量是一樣的,則指定的信息更多那個(gè)路徑會(huì)更精確,比如/hotels/abc*比/hotels/*更精確。
  • 路徑變量比通配符更精確。比如/hotels/{hotel}比/hotels/*更精確。
  • 默認(rèn)映射/**比其它所有的路徑映射的優(yōu)先級都低,比如/{a}/就比它更精確。
  • 擁有兩個(gè)通配符的路徑映射比其它沒有兩個(gè)通配符的路徑映射的優(yōu)先級都低,比如/abc/**的優(yōu)先級低于/abc/{a}。

(注:本文是基于Spring4.1.0所寫)

請求路徑參數(shù)使用正則表達(dá)式

@GetMapping("/user/{id:\\d+}")  //使用正則指定Id為數(shù)字
     public User getInfo(@PathVariable String id){
         ...
     }

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

相關(guān)文章

  • Java實(shí)現(xiàn)Kafka生產(chǎn)者消費(fèi)者代碼實(shí)例

    Java實(shí)現(xiàn)Kafka生產(chǎn)者消費(fèi)者代碼實(shí)例

    這篇文章主要介紹了Java實(shí)現(xiàn)Kafka生產(chǎn)者消費(fèi)者代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • logback-spring.xml配置詳解

    logback-spring.xml配置詳解

    這篇文章主要介紹了logback-spring.xml詳解,本文介紹了logback-spring.xml相關(guān)的知識(shí)與概念,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • SpringBoot跨域Access-Control-Allow-Origin實(shí)現(xiàn)解析

    SpringBoot跨域Access-Control-Allow-Origin實(shí)現(xiàn)解析

    這篇文章主要介紹了SpringBoot跨域Access-Control-Allow-Origin實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 全面了解java基本類型和封裝類型的區(qū)別及應(yīng)用

    全面了解java基本類型和封裝類型的區(qū)別及應(yīng)用

    下面小編就為大家?guī)硪黄媪私鈐ava基本類型和封裝類型的區(qū)別及應(yīng)用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • java super關(guān)鍵字知識(shí)點(diǎn)詳解

    java super關(guān)鍵字知識(shí)點(diǎn)詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于java super關(guān)鍵字知識(shí)點(diǎn)詳解內(nèi)容,有興趣的朋友們可以參考下。
    2021-01-01
  • 自制Java工具實(shí)現(xiàn)翻譯鼠標(biāo)選中文本

    自制Java工具實(shí)現(xiàn)翻譯鼠標(biāo)選中文本

    這篇文章主要為大家詳細(xì)介紹了如何自制Java工具實(shí)現(xiàn)ctrl+c+c翻譯鼠標(biāo)選中文本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2024-01-01
  • SpringBoot對接小程序微信支付的實(shí)現(xiàn)

    SpringBoot對接小程序微信支付的實(shí)現(xiàn)

    本文主要介紹了SpringBoot對接小程序微信支付的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2023-09-09
  • mybatis?resultMap沒有全部對應(yīng)的字段處理方式

    mybatis?resultMap沒有全部對應(yīng)的字段處理方式

    這篇文章主要介紹了mybatis?resultMap沒有全部對應(yīng)的字段處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java編程實(shí)現(xiàn)用hash方法切割文件

    Java編程實(shí)現(xiàn)用hash方法切割文件

    這篇文章主要介紹了Java編程實(shí)現(xiàn)用hash方法切割文件,簡單介紹了hash的概念,然后分享了使用方法示例,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • springboot項(xiàng)目快速搭建的方法步驟

    springboot項(xiàng)目快速搭建的方法步驟

    這篇文章主要介紹了springboot項(xiàng)目快速搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論