1.SpringMVC使用@RequestMapping註解爲控制指定能夠處理哪些URL請求。
java
2.在控制器的類定義及方法定義處均可標註。
spring
@RequestMappingmvc
--類定義處:提供初步的請求映射信息。相對於WEB應用的根目錄
app
--方法處:提供進一步的細分映射信息。相對於類定義處的URL若類定義處未標註:@RequestMapping,則方法處標記 的URL相對於WEB應用的根目錄。
spa
3.DispatcherServlet截獲請求後,就經過控制器上@RequestMapping提供的隱射信息肯定請求所對應的處理方法。
code
@RequestMapping("/hello") @Controller public class HelloWorld{ @RequestMapping("/spingmvc") public String springmvc(){ System.out.println("hello world"); return "hello"; } }
@RequestMapping除了能夠使用請求URL映射請求外,還能夠使用請求方法、請求參數及請求頭映射請求
資源
@RequestMapping 的value、method、params及heads分別表示請求URL、請求參數及請求頭的映射條件,他們之間是與的關係,聯合使用多個條件可以讓請求映射更加精準化。class
4.params 和 headers支持簡單的表達式:
test
--param1:表示請求必須包含爲param1的請求參數
請求
--!param1:表示請求不能包含名爲param1的請求參數
--param1!=value1:表示請求包含名爲param的請求參數,但其值不能爲value!
--{"param1 = value1","param2"};請求必須包含名爲param1 和 param2的兩個請求參數,且param1參數的值必須爲value1.
/** * 使用method屬性來制定請求方式 * header的用法相似。 * headers={"Accept-Language=zh-CN,zh;q=0.8"} */ @RequestMapping(value="/testParamOrHeaders",params={"username","password!=12345678"},method=RequestMethod.POST) public String testParamOrHeaders(){ System.out.println("testParamOrHeaders"); return SUCCESS; } /** * 使用method屬性來制定請求方式 */ @RequestMapping(value="/testMethod",method=RequestMethod.POST) public String testMethod(){ System.out.println("testMethod"); return SUCCESS; }
5.Ant風格資源地址支持3種匹配符:
?:匹配文件名中的一個字符
*:匹配文件名中的任意字符
**:匹配多層路徑
@RequestMapping還支持Ant風格的URL:
-- /user/*/createUser: 匹配/user/aaa/createUser、/user/bbb/createUser等
-- /user/**/createUser:匹配/user/createUser、/user/aaa/bbb/createUser等
-- /user/createUser??:匹配/user/createUseraa 、/user/createUserbb等URL