SpringMVC框架 第2 章 @RequestMapping注解

2?章?@RequestMapping注解?

2.1 @RequestMapping 映射請求注解

2.1.1 @RequestMapping 概念

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

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

  • 標(biāo)記在類上:提供初步的請求映射信息。相對于 ?WEB 應(yīng)用的根目錄
  • 標(biāo)記在方法上:提供進(jìn)一步的細(xì)分映射信息。相對于標(biāo)記在類上的 URL。

     

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

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

2.1.2 @ RequestMapping源碼參考

2.2 RequestMapping 可標(biāo)注的位置

2.2.1 實驗代碼

定義頁面鏈接、控制器方法

2.3 RequestMapping映射請求方式

2.3.1 標(biāo)準(zhǔn)的 HTTP 請求報頭

2.3.2 映射請求參數(shù)、請求方法或請求頭

1)@RequestMapping 除了可以使用請求 URL 映射請求外,還可以使用請求方法、請求參數(shù)及請求頭映射請求

2)@RequestMapping 的 value【重點】、method【重點】、params【了解】 及 heads

【了解】 分別表示請求 URL、請求方法、請求參數(shù)及請求頭的映射條件,他們之間是與的關(guān)系,聯(lián)合使用多個條件可讓請求映射更加精確化。

3)params 和 headers支持簡單的表達(dá)式:

param1: 表示請求必須包含名為 param1 的請求參數(shù)

!param1: 表示請求不能包含名為 param1 的請求參數(shù)

param1 != value1: 表示請求包含名為 param1 的請求參數(shù),但其值不能為 value1

{"param1=value1", "param2"}: 請求必須包含名為 param1 和param2 的兩個請求參數(shù),且 param1 參數(shù)的值必須為 value1

2.3.3 實驗代碼

? 1)? 定義控制器方法

發(fā)生請求錯誤?? ?3)? 以POST方式請求

2.4 RequestMapping映射請求參數(shù)&請求頭

2.4.1 RequestMapping_請求參數(shù)&請求頭【了解】

2.4.2 實驗代碼

2.5 RequestMapping映射請求占位符PathVariable注解

2.5.1 @PathVariable

帶占位符的 URL 是 Spring3.0 新增的功能,該功能在 SpringMVC 向 REST?目標(biāo)挺進(jìn)發(fā)展過程中具有里程碑的意義

通過 @PathVariable 可以將 URL 中占位符參數(shù)綁定到控制器處理方法的入?yún)⒅?/b>

URL 中的 {xxx} 占位符可以通過 @PathVariable("xxx") 綁定到操作方法的入?yún)⒅小?/p>

2.5.2 實驗代碼

? 1)? 定義控制器方法