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