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

SpringMVC中的@RequestMapping注解解析

 更新時間:2023年12月19日 09:59:05   作者:GeGe&YoYo  
這篇文章主要介紹了SpringMVC中的@RequestMapping注解解析,SpringMVC使用@RequestMapping注解為控制器指定可以處理哪些?URL?請求,在控制器的類定義及方法定義處都可標(biāo)注@RequestMapping,需要的朋友可以參考下

1. RequestMapping 概念

SpringMVC使用@RequestMapping注解為控制器指定可以處理哪些 URL 請求。

在控制器的類定義及方法定義處都可標(biāo)注 @RequestMapping。

① 標(biāo)記在類上:提供初步的請求映射信息。相對于 WEB 應(yīng)用的根目錄

② 標(biāo)記在方法上:提供進一步的細分映射信息。相對于標(biāo)記在類上的 URL。

若類上未標(biāo)注 @RequestMapping,則方法處標(biāo)記的 URL 相對于 WEB 應(yīng)用的根目錄 。

作用:DispatcherServlet 截獲請求后,就通過控制器上 @RequestMapping 提供的映射信息確定請求所 對應(yīng)的處理方法。

2. RequestMapping源碼

package org.springframework.web.bind.annotation;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
	String[] value() default {};
	RequestMethod[] method() default {};
	String[] params() default {};
	String[] headers() default {};
	String[] consumes() default {};
	String[] produces() default {};
}

參數(shù)說明

  • value:定義處理方法的請求的 URL 地址。(重點)
  • method:定義處理方法的 http method 類型,如 GET、POST 等。(重點)
  • params:定義請求的 URL 中必須包含的參數(shù)?;蛘卟话承﹨?shù)。(了解)
  • headers:定義請求中 Request Headers 必須包含的參數(shù)?;蛘卟话承﹨?shù)。(了解)

3. RequestMapping 用法

@RequestMapping 有兩種標(biāo)注方式,一種是標(biāo)注在類級別上,一種是標(biāo)注在方法級別上。標(biāo)注在方法上時,value 表示訪問該方法的 URL 地址。標(biāo)注在類上時,value 相當(dāng)于一個命名空間,即訪問該 Controller 下的任意方法都需要帶上這個命名空間。

value屬性

@Controller
@RequestMapping("/example")
public class ExampleController {
    @RequestMapping
    public String execute(){
        return "example_page";
    }
    @RequestMapping("/todo")
    public String doSomething(){
        return "example_todo_page";
    }
}
  • /example.action:執(zhí)行的是 execute() 方法。execute() 方法的 @RequestMapping 注解缺省 value 值,在這種情況下,當(dāng)訪問命名空間時默認執(zhí)行的是這個方法。方法級別上的 @RequestMapping 標(biāo)注是必須的,否則方法無法被正確訪問。
  • /example/todo.action執(zhí)行的是 doSomething() 方法。類級別上的 @RequestMapping 標(biāo)注不是必須的,在不寫的情況下,方法上定義的 URL 都是絕對地址,否則,方法上定義的 URL 都是相對于它所在的 Controller 的。

method屬性

指定請求的method類型,可以接受GET,POST,PUT,DELETE等,默認是可以接收GET請求和POST請求

@RequestMapping(value = "/register", method = RequestMethod.GET)
public String register1(){
    return "example_register_get_page";
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register2(){
    return "example_register_post_page";
} 
@RequestMapping({"/test02_01","/test02_02"})
public ModelAndView test02(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("hello", "test01");
    modelAndView.setViewName("hello");
    return modelAndView;
}
  • 可以為多個方法映射相同的 URI,不同的 http method 類型,Spring MVC 根據(jù)請求的 method 類型是可以區(qū)分開這些方法的。當(dāng) /example/register.action 是以 GET 的方式提交的時候,Spring MVC 調(diào)用 register1() 來處理請求;若是以 POST 的方式提交,則調(diào) register2() 來處理提交的請求。
  • method 若是缺省沒指定,并不是說它默認只處理 GET 方式的請求,而是它可以處理任何方式的 http method 類型的請求。指定 method 是為了細化映射 ( 縮小處理方法的映射范圍 ),在 method 沒有指定的情況下,它的映射范圍是最大的。

params屬性

params:指定request中必須包含某些參數(shù)值,才讓該方法處理

   @RequestMapping(value = "/test04",params = "id")
    public ModelAndView test04(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("hello", "test04");
        modelAndView.setViewName("hello");
        return modelAndView;
    }

在這里插入圖片描述

請求路徑?jīng)]有id則報錯

在這里插入圖片描述

params還可以指定請求中屬性值必須為多少

在這里插入圖片描述

headers屬性

headers 的作用也是用于細化映射。只有當(dāng)請求的 Request Headers 中包含與 heanders 值相匹配的參數(shù),處理方法才會被調(diào)用。

@RequestMapping(value = "/specify", headers = "accept=text/*")
public String specify(){
	return "example_specify_page";
}

請求的 Request Headers 中 Accept 的值必須匹配 text/* ( 如 text/html ),方法才會被調(diào)用。

4. RequestMapping支持Ant風(fēng)格的通配符

通配符說明示例
?匹配一個任意字符/a/?b 可以匹配/a/ab;/a/cb。但不能匹配/a/acb之類
*匹配任意長度的字符/a/ *b可以匹配/a/cb;/a/acb。但不能匹配/a/cb/vb
**匹配多層路徑可以匹配/a/ab;/a/acb;/a/ab/abc/…/…

到此這篇關(guān)于SpringMVC中的@RequestMapping注解解析的文章就介紹到這了,更多相關(guān)@RequestMapping注解解析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java將本地項目部署到Linux服務(wù)器的實踐

    Java將本地項目部署到Linux服務(wù)器的實踐

    本文主要介紹了Java將本地項目部署到Linux服務(wù)器的實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2022-06-06
  • Java日常練習(xí)題,每天進步一點點(44)

    Java日常練習(xí)題,每天進步一點點(44)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • 一文教會你cmd命令運行java程序

    一文教會你cmd命令運行java程序

    這篇文章主要給大家介紹了關(guān)于如何使用cmd命令運行java程序的相關(guān)資料,這是一個非常有用的技能,特別是當(dāng)您需要在沒有集成開發(fā)環(huán)境(IDE)的情況下編寫和運行Java代碼時,需要的朋友可以參考下<BR>
    2024-06-06
  • Spring Data + Thymeleaf 3 + Bootstrap 4 實現(xiàn)分頁器實例代碼

    Spring Data + Thymeleaf 3 + Bo

    本篇文章主要介紹了Spring Data + Thymeleaf 3 + Bootstrap 4 實現(xiàn)分頁器實例代碼,非常具有實用價值,需要的朋友可以參考下
    2017-05-05
  • Java中遍歷Map集合的5種方式總結(jié)

    Java中遍歷Map集合的5種方式總結(jié)

    這篇文章主要給大家介紹了關(guān)于Java中遍歷Map集合的5種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java將Word轉(zhuǎn)換成PDF的常用用法

    Java將Word轉(zhuǎn)換成PDF的常用用法

    Java開發(fā)人員在處理文檔轉(zhuǎn)換時,常常需要將Word或Excel文檔轉(zhuǎn)換為PDF格式,以便于更好地保持格式一致性、便于分發(fā)和打印,這篇文章主要給大家介紹了關(guān)于Java將Word轉(zhuǎn)換成PDF的常用用法,需要的朋友可以參考下
    2024-08-08
  • JVM運行時數(shù)據(jù)區(qū)劃分原理詳解

    JVM運行時數(shù)據(jù)區(qū)劃分原理詳解

    這篇文章主要介紹了JVM運行時數(shù)據(jù)區(qū)劃分原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Maven中引入 springboot 相關(guān)依賴的方式(最新推薦)

    Maven中引入 springboot 相關(guān)依賴的方式(最新推薦)

    這篇文章主要介紹了Maven中引入 springboot 相關(guān)依賴的方式(最新推薦),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-04-04
  • SpringBoot之Profile的兩種使用方式詳解

    SpringBoot之Profile的兩種使用方式詳解

    當(dāng)在不同的環(huán)境下,想通過修改配置文件來連接不同的數(shù)據(jù)庫,比如在開發(fā)過程中啟動項目時,想連接開發(fā)環(huán)境對應(yīng)的數(shù)據(jù)庫,可以在配置文件中指定environment=dev,其他環(huán)境類似,此時就需要用到Spring為我們提供的Profile功能,本文給大家介紹了SpringBoot之Profile的兩種使用方式
    2024-10-10
  • java 基于maven多模塊合并打包部署的操作過程

    java 基于maven多模塊合并打包部署的操作過程

    這篇文章主要介紹了java 基于maven多模塊合并打包部署的操作過程,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02

最新評論

日照市| 内丘县| 恩平市| 唐河县| 中山市| 鄯善县| 河源市| 安康市| 华阴市| 饶平县| 安塞县| 凌海市| 南溪县| 祁东县| 陈巴尔虎旗| 大悟县| 吉林省| 裕民县| 天长市| 邛崃市| 湖州市| 浪卡子县| 十堰市| 吉林市| 白银市| 武穴市| 东海县| 安义县| 孟州市| 平顶山市| 耿马| 邢台市| 辽源市| 冷水江市| 古田县| 普宁市| 唐海县| 湟中县| 清苑县| 黄山市| 平昌县|