SpringMVC中RequestMapping注解(作用、出現(xiàn)的位置、屬性)
RequestMapping注解
作用出現(xiàn)位置屬性
作用
用于建立請(qǐng)求 URL 和處理請(qǐng)求方法之間的對(duì)應(yīng)關(guān)系。
出現(xiàn)位置
1.作用在類(lèi)上:請(qǐng)求 URL 的第一級(jí)訪問(wèn)目錄。此處不寫(xiě)的話,就相當(dāng)于應(yīng)用的根目錄。寫(xiě)的話需要以/開(kāi)頭。
2.作用在方法上:請(qǐng)求 URL 的第二級(jí)訪問(wèn)目錄。
控制器中部分代碼示例:
@Controller
@RequestMapping(path = "/user") //第一級(jí)的訪問(wèn)目錄
public class HelloController {
@RequestMapping(path = "/hello") //第二級(jí)的訪問(wèn)目錄
public String sayHello(){
System.out.println("Hello SpringMVC");
return "success";
}
@RequestMapping(value = "/testRequestmapping") //第二級(jí)的訪問(wèn)目錄
public String testRequestmapping(){
System.out.println("測(cè)試注解");
return "success";
}
}
jsp中部分代碼示例:
<!-- 第一種訪問(wèn)方式 -->
<a href="${pageContext.request.contextPath}/user/hello">sayHello</a> <br/>
<!-- 第二種訪問(wèn)方式 -->
<a href="user/testRequestmapping">測(cè)試注解</a>
需要注意的細(xì)節(jié):
1.細(xì)節(jié):路徑可以不編寫(xiě) / 表示應(yīng)用的根目錄開(kāi)始
2.細(xì)節(jié):${ pageContext.request.contextPath }也可以省略不寫(xiě),但是路徑上不能寫(xiě) /
屬性
value: 用于指定請(qǐng)求的 URL。它和 path 屬性的作用是一樣的。
method: 用于指定請(qǐng)求的方式。
params: 用于指定限制請(qǐng)求參數(shù)的條件。它支持簡(jiǎn)單的表達(dá)式。要求請(qǐng)求參數(shù)的 key 和 value 必須和配置的一模一樣。
例如:
params = {“username”},表示請(qǐng)求參數(shù)必須有 username
params = {“age!100”},表示請(qǐng)求參數(shù)中 age 不能是 100
headers: 用于指定限制請(qǐng)求消息頭的條件。
注意:以上四個(gè)屬性只要出現(xiàn) 2 個(gè)或以上時(shí),他們的關(guān)系是與的關(guān)系。
value或path 屬性的示例
上面出現(xiàn)位置的示例就是value或path 屬性的示例。
method 屬性的示例
控制器的部分代碼:
@RequestMapping(value="/saveAccount",method=RequestMethod.POST)
public String saveAccount() {
System.out.println("保存了賬戶");
return "success";
}
jsp的部分代碼:
<!-- 請(qǐng)求方式的示例 --> <a href="account/saveAccount">保存賬戶,get 請(qǐng)求</a> <br/> <form action="account/saveAccount" method="post"> <input type="submit" value="保存賬戶,post 請(qǐng)求"> </form>
注意:當(dāng)使用 get 請(qǐng)求時(shí)即method="get",提示錯(cuò)誤信息是 405,信息是方法不支持 get 方式請(qǐng)求。

params 屬性的示例
控制器的部分代碼:
@RequestMapping(value="/removeAccount",params= {"accountName","money>100"})
public String removeAccount() {
System.out.println("刪除了賬戶");
return "success";
}
jsp的部分代碼:
<!-- 請(qǐng)求參數(shù)的示例 --> <a href="account/removeAccount?accountName=aaa&money>100">刪除賬戶,金額 100</a> <br/> <a href="account/removeAccount?accountName=aaa&money>150">刪除賬戶,金額 150</a>
注意:
當(dāng)我們點(diǎn)擊第一個(gè)超鏈接時(shí),可以訪問(wèn)成功。
當(dāng)我們點(diǎn)擊第二個(gè)超鏈接時(shí),無(wú)法訪問(wèn)。如下圖:

params鍵值對(duì)的情況以及headers屬性
還存在params = {"username=keafmd"}鍵值對(duì)的情況:這個(gè)示例的意思就是不光要有username的屬性還要求值為Keafmd。
同時(shí)headers屬性也就是表示必須包含相應(yīng)的請(qǐng)求頭才可以。
控制器的部分代碼:
@Controller
@RequestMapping(path = "/user")
public class HelloController {
@RequestMapping(value = "/testRequestmapping",method = {RequestMethod.GET},params = {"username=keafmd"},headers = {"Accept"})
public String testRequestmapping(){
System.out.println("測(cè)試注解");
return "success";
}
}
jsp的部分代碼:
<a href="user/testRequestmapping?username=keafmd">RequestMapping注解</a>
這樣就是可以成功訪問(wèn)的。
以上就是SpringMVC中RequestMapping注解【作用、出現(xiàn)的位置、屬性】全部?jī)?nèi)容。
到此這篇關(guān)于SpringMVC中RequestMapping注解(作用、出現(xiàn)的位置、屬性)的文章就介紹到這了,更多相關(guān)SpringMVC中RequestMapping注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringMVC整合,出現(xiàn)注解沒(méi)有起作用的情況處理
- 如何使用Idea搭建全注解式開(kāi)發(fā)的SpringMVC項(xiàng)目
- SpringMVC?@RequestMapping注解屬性詳細(xì)介紹
- SpringMVC中RequestBody注解的List參數(shù)傳遞方式
- SpringMVC @GetMapping注解路徑?jīng)_突問(wèn)題解決
- 解決SpringMVC使用@RequestBody注解報(bào)400錯(cuò)誤的問(wèn)題
- SpringMVC注解@RequestParam方法原理解析
- springMVC?@RestControllerAdvice注解使用方式
相關(guān)文章
SpringBoot整合RestTemplate用法的實(shí)現(xiàn)
本篇主要介紹了RestTemplate中的GET,POST,PUT,DELETE、文件上傳和文件下載6大常用的功能,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
Spring Security實(shí)現(xiàn)5次密碼錯(cuò)誤觸發(fā)賬號(hào)自動(dòng)鎖定功能
在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中,賬號(hào)安全是重中之重,然而,暴力 破解攻擊依然是最常見(jiàn)的安全威脅之一,攻擊者通過(guò)自動(dòng)化腳本嘗試大量的用戶名和密碼組合,試圖找到漏洞進(jìn)入系統(tǒng),所以為了解決這一問(wèn)題,賬號(hào)鎖定機(jī)制被廣泛應(yīng)用,本文介紹了Spring Security實(shí)現(xiàn)5次密碼錯(cuò)誤觸發(fā)賬號(hào)鎖定功能2024-12-12
Java ShardingJDBC實(shí)戰(zhàn)演練
Sharding-JDBC 采用在 JDBC 協(xié)議層擴(kuò)展分庫(kù)分表,是一個(gè)以 jar 形式提供服務(wù)的輕量級(jí)組件,其核心思路是小而美地完成最核心的事情2021-11-11
Java創(chuàng)建線程池為什么一定要用ThreadPoolExecutor
本文介紹了Java創(chuàng)建線程池為什么一定要用ThreadPoolExecutor,手動(dòng)方式使用ThreadPoolExecutor創(chuàng)建線程池和使用Executors執(zhí)行器自動(dòng)創(chuàng)建線程池,下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-05-05
Springboot整合Freemarker的實(shí)現(xiàn)詳細(xì)過(guò)程
這篇文章主要介紹了Springboot整合Freemarker的實(shí)現(xiàn)詳細(xì)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
SpringBoot測(cè)試類(lèi)注入Bean失敗的原因及分析
SpringBoot 2.2版本前后測(cè)試類(lèi)有所變化,2.2版本之后使用JUnit 5,導(dǎo)入注解@SpringBootTest和@Test來(lái)自junit.jupiter.api包;而2.2版本之前使用JUnit 4,需要額外導(dǎo)入@RunWith注解來(lái)自junit.runner包,無(wú)論哪個(gè)版本,都需確保測(cè)試類(lèi)和啟動(dòng)類(lèi)的包名一致2024-09-09
MyBatis-Plus結(jié)合Layui實(shí)現(xiàn)分頁(yè)方法
MyBatis-Plus 使用簡(jiǎn)單,本文主要介紹使用 service 中的 page 方法結(jié)合 Layui 前端框架實(shí)現(xiàn)分頁(yè)效果,具有一定的參考價(jià)值,感興趣的可以了解一下2021-08-08

