SpringMVC——RequestMapping及請求映射
@RequestMapping
說明
Spring MVC 使用 @RequestMapping 注解為控制器指定可以處理哪些 URL 請求。
在控制器的類定義及方法定義處都可標注@RequestMapping
說明:
– 類定義處:提供初步的請求映射信息。相對於 WEB 應用的根目錄
– 方法處:提供進一步的細分映射信息。相對於類定義處的 URL。
1.在方法定義處標注@RequestMapping
2.在類定義處標准@RequestMapping
類定義處未標注 @RequestMapping,則方法處標記的 URL 相對於WEB 應用的根目錄
限制請求
1.指定請求方式
2.限制請求頭和請求參數
URL路徑映射
說明
現在我們已經可以利用@RequestMapping處理URL請求了,但是一個控制器可能要處理多個URL路徑的請求,這時候就需要用到URL路徑映射了。
1.普通URL路徑映射
@RequestMapping(value={"/test1", "/user/create"}):多個URL路徑可以映射到同一個處理器的功能處理方法。
2.ANT風格路徑
Ant 風格資源地址支持 3 種匹配符:
– ?:匹配文件名中的一個字符
– *:匹配文件名中的任意字符
– **:** 匹配多層路徑
@RequestMapping 還支持 Ant 風格的 URL:
– /user/*/createUser: 匹配 /user/aaa/createUser、/user/bbb/createUser 等 URL
– /user/**/createUser: 匹配 /user/createUser、/user/aaa/bbb/createUser 等 URL
– /user/createUser??: 匹配 /user/createUseraa、/user/createUserbb 等 URL
3.URL模板模式映射
說明:
1.帶占位符的 URL 是 Spring3.0 新增的功能,該功能在SpringMVC 向 REST 目標挺進發展過程中具有里程碑的意義。
2.通過 @PathVariable 可以將 URL 中占位符參數綁定到控制器處理方法的入參中:URL 中的 {xxx} 占位符可以通過@PathVariable("xxx") 綁定到操作方法的入參中。
演示:
了解:
為了去執行@PathVariable注解,SpringMVC需要通過名字去找到相匹配的URI模板變量.你也可以表明它通過使用另一個注解:
說明:
Spring4.3中引進了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},來幫助簡化常用的HTTP方 法的映射,並更好地表達被注解方法的語義。
映射請求信息
標准的HTTP請求報頭
映射請求參數
1.編寫POST請求表單
2.在控制器中使用注解@RequestParam,將請求信息入參
映射請求頭
映射Cookie值
使用POJO對象綁定請求參數值
說明:
Spring MVC 會按請求參數名和 POJO 屬性名進行自動匹配,自動為該對象填充屬性值。支持級聯屬性。如:dept.deptId、dept.address.tel 等。
實例:
1.創建表單:
2.編寫POJO類
3.編寫控制器方法
使用Servlet API作為入參
說明:
我們也可以使用原聲的ServletAPI作為參數,MVC的Handle方法可以接受的ServletAPI參數:
• HttpServletRequest
• HttpServletResponse
• HttpSession
• java.security.Principal
• Locale
• InputStream
• OutputStream
• Reader
• Writer
實例: