SpringMVC:學習筆記(2)——RequestMapping及請求映射


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
  實例:
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM