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

Spring MVC 基于URL的映射規(guī)則(注解版)

 更新時間:2017年05月21日 14:09:38   作者:xingoo  
這篇文章主要介紹了Spring MVC 基于URL的映射規(guī)則(注解版) ,詳細的介紹了幾種方式,有興趣的可以了解一下

好幾天沒有跟進Spring MVC的學習了,之前看了點源碼都忘的差不多了。這次就跟著之前的問題,繼續(xù)總結下Spring MVC中的小知識。
url-pattern

如果看過前一篇入門的帖子,應該了解到spring mvc在啟動前必須要在web.xml中配置servlet,這樣才能攔截到想要映射的url地址。

 <servlet>
  <servlet-name>SpringMVC</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
  
<servlet-mapping>
  <servlet-name>SpringMVC</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping> 

其中servlet配置了servlet的實現(xiàn)類,而servlet-mapping則定義了spring mvc起作用的url模式,常見的配置有三種:

  1.  / 這個斜杠,表示攔截所有的url,如/test,/test.html
  2.  /* 這個模式包含/,可以多攔截以*.jsp結尾的url
  3.  *.xxx 這個攔截固定結尾的url,常見的如*.do,*.json等等

RequestMapping()

基于注解風格的Spring MVC就是通過這個方法來定義映射的url的,常使用的方式如下:

基于普通的url

這種是最簡單的url映射,可以接收到localhost:8080/contextName/hello這樣的請求

 @RequestMapping("/hello")
  public @ResponseBody String test() {
    return "hello!";
  } 

基于多個普通的url路徑

RequestMapping可以同時指定多個url,映射到同一個應答邏輯中:

 //普通的url路徑映射
  @RequestMapping(value={"/multi1","/multi2","/test/multi"})
  public @ResponseBody String multiUrl() {
    return "test multi url";
  } 

基于路徑變量的URL映射

這種URL映射可以直接在路徑上指定變量,通過@PathVariable可以獲得對象。

   //基本的URL模板映射
  @RequestMapping(value="/user1/{name}")
  public @ResponseBody String basicUrl1(@PathVariable String name){
    return "hello"+name;
  }
  @RequestMapping(value="/user2/{name}/test")
  public @ResponseBody String basicUrl2(@PathVariable String name){
    return "hello"+name+"test";
  }
  @RequestMapping(value="/user1/{name}/test/{age}")
  public @ResponseBody String basicUrl3(@PathVariable String name,@PathVariable int age){
    return "hello"+name+" age"+age;
  } 

基于通配風格的url映射

第一種

   @RequestMapping(value="/ant1?")
  public @ResponseBody String ant1(){
    return "ant1?";
  } 

支持下面風格:

 localhost:8080/context/ant12 或者localhost:8080/context/ant1a

第二種:

   @RequestMapping(value="/ant2*")
  public @ResponseBody String ant2(){
    return "ant2*";
  } 

支持下面風格:

localhost:8080/context/ant2aaaa 或者localhost:8080/context/ant2

第三種

 @RequestMapping(value="/ant3/*")
  public @ResponseBody String ant3(){
    return "ant3/*";
  } 

支持下面風格:

localhost:8080/context/ant3/aaaa 或者localhost:8080/context/ant3/123

第四種:

   @RequestMapping(value="/ant4/**")
  public @ResponseBody String ant4(){
    return "ant4/**";
  }

支持下面風格

 localhost:8080/context/ant4/ 或者localhost:8080/context/ant4/aaa 或者localhost:8080/context/ant4/aaa/123

混用統(tǒng)配和路徑變量

  //混用
  @RequestMapping(value="/ant5/**/{name}")
  public @ResponseBody String ant5(@PathVariable String name){
    return "ant+url "+name;
  } 

它能匹配

localhost:8080/context/ant5/123 或者localhost:8080/context/ant5/aaa/123 或者localhost:8080/context/ant5/aaa/123/test

最后一個會被當做name值

基于正則的url映射

這個比較有意思,它支持{名稱:正則表達式}的寫法,以另一種風格限制url的映射。

   //正則表達式
  @RequestMapping(value="/student/{name:\\w+}-{age:\\d+}")
  public @ResponseBody String regUrl(@PathVariable String name,@PathVariable int age){
    return "name:"+name+" age:"+age;
  } 

例如上面的URL就只能匹配如:

localhost:8080/context/student/wangwu-33 或者localhost:8080/context/student/zhao4-22

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • kafka生產者發(fā)送消息流程深入分析講解

    kafka生產者發(fā)送消息流程深入分析講解

    本文將介紹kafka的一條消息的發(fā)送流程,從消息的發(fā)送到服務端的存儲。上文說到kafak分為客戶端與服務端,要發(fā)送消息就涉及到了網絡通訊,kafka采用TCP協(xié)議進行客戶端與服務端的通訊協(xié)議
    2023-03-03
  • 實例講解Java讀取一般文本文件和word文檔的方法

    實例講解Java讀取一般文本文件和word文檔的方法

    讀取一般文本文件很好辦,調用Java自帶的io包里的類即可,富文本的doc文件我們可以用Apache的poi項目中的WordExtractor,這里我們一起來以實例講解Java讀取一般文本文件和word文檔的方法
    2016-06-06
  • 基于MyBatis的數(shù)據(jù)持久化框架的使用詳解

    基于MyBatis的數(shù)據(jù)持久化框架的使用詳解

    Mybatis是一個優(yōu)秀的開源、輕量級持久層框架,它對JDBC操作數(shù)據(jù)庫的過程進行封裝。本文將為大家講解一下基于MyBatis的數(shù)據(jù)持久化框架的使用,感興趣的可以了解一下
    2022-08-08
  • Java中Integer的parseInt和valueOf的區(qū)別詳解

    Java中Integer的parseInt和valueOf的區(qū)別詳解

    這篇文章主要介紹了Java中Integer的parseInt和valueOf的區(qū)別詳解,nteger.parseInt(s)是把字符串解析成int基本類型,Integer.valueOf(s)是把字符串解析成Integer對象類型,其實int就是Integer解包裝,Integer就是int的包裝,需要的朋友可以參考下
    2023-11-11
  • Java基于elasticsearch實現(xiàn)集群管理

    Java基于elasticsearch實現(xiàn)集群管理

    這篇文章主要介紹了java基于elasticsearch實現(xiàn)集群管理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • springboot整合springsecurity與mybatis-plus的簡單實現(xiàn)

    springboot整合springsecurity與mybatis-plus的簡單實現(xiàn)

    Spring Security基于Spring開發(fā),項目中如果使用Spring作為基礎,配合Spring Security做權限更加方便,而Shiro需要和Spring進行整合開發(fā)。因此作為spring全家桶中的Spring Security在java領域很常用
    2021-10-10
  • Java實現(xiàn)線程通信的案例講解

    Java實現(xiàn)線程通信的案例講解

    所謂線程通信就是線程間相互發(fā)送數(shù)據(jù),線程通信通常通過共享一個數(shù)據(jù)的方式實現(xiàn)。本文將通過案例詳解Java中線程通信的實現(xiàn),感興趣的可以了解一下
    2022-05-05
  • MyBatis-Plus中SimpleQuery查詢實現(xiàn)

    MyBatis-Plus中SimpleQuery查詢實現(xiàn)

    本文主要介紹了MyBatis-Plus中SimpleQuery查詢實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • SpringMVC訪問靜態(tài)資源的方法

    SpringMVC訪問靜態(tài)資源的方法

    本篇文章主要介紹了SpringMVC訪問靜態(tài)資源的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 一文詳解kafka序列化器和攔截器

    一文詳解kafka序列化器和攔截器

    這篇文章主要為大家介紹了kafka序列化器和攔截器使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論

乌拉特后旗| 历史| 大同市| 旌德县| 台安县| 天门市| 区。| 巴彦淖尔市| 长顺县| 赤城县| 尉氏县| 沙雅县| 墨玉县| 疏附县| 贵阳市| 凯里市| 辰溪县| 肇庆市| 和龙市| 林西县| 罗甸县| 林周县| 泸定县| 长泰县| 缙云县| 定兴县| 怀来县| 西贡区| 邮箱| 湘西| 福贡县| 三台县| 大田县| 通化县| 麻江县| 安福县| 永善县| 扬中市| 勐海县| 大化| 金乡县|