SpringMVC_RequestMapping
@RequestMapping修饰
- SpringMVC使用 @RequestMapping 注解为控制器指定可以处理哪些URL请求
- 在控制器的类定义及方法定义处都可标注
- @RequestMapping:
—类定义处:提供初步的请求映射信息,相对于WEB应用的根目录
—方法处:提供进一步的细分映射信息。相对于类定义处的URL信息,若类定义处未标注 @RequestMapping ,则方法处标注的URL相对于WEB应用的根目录。
- DispatcherServlet 截获请求后,就通过控制器上的 @RequestMapping 提供的映射信息确定请求所对应的处理方法。
package com.smart.handlers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * @author chenpeng * @date 2018/6/9 18:24 */ @Controller(value = "/springMVC") public class SpringMVCTest { private final String SUCCESS = "success"; /** * 1、@RequestMapping 除了修饰方法还可以修饰类 * 2、 * 1)、类定义处:提供初步的请求映射信息,相当于 WEB 应用的根目录 * 2)、方法处:挺浓进一步的细分映射信息, * 相对于类定义处的URL信息,若类定义处未标注 @RequestMapping ,则方法处标注的URL相对于WEB应用的根目录。 * @return */ @RequestMapping(value = "/testRequestMapping") public String testRequestMapping(){ System.out.println("testRequestMapping"); return SUCCESS; } }
@RequestMapping请求方式
— @RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法、请求参数以及请求头映射请求
— @RequestMapping 的value、method、params 及 heads 分别表示请求URL、请求方法、请求参数及请求头的映射条件,他们之间的关系是 与 的关系,联合使用多个条件,可以让请求映射更加精确化。
— params和heads支持简单的表达式:
- param1:表示请求必须包含名为param1的请求参数
- !param1:表示请求不能包含名为param1的请求参数
- param1 != value1: 表示请求包含名为param1的请求参数,但是其值不能为value1
- {“param1 = value1”,“param2”}:请求必须包含名为param1和param2的两个请求参数,且param1的值必须为value1
package com.smart.handlers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; /** * @author chenpeng * @date 2018/6/9 18:24 */ @Controller @RequestMapping("/springmvc") public class SpringMVCTest { private final String SUCCESS = "success"; /** * 1、@RequestMapping 除了修饰方法还可以修饰类 * 2、 * 1)、类定义处:提供初步的请求映射信息,相当于 WEB 应用的根目录 * 2)、方法处:挺浓进一步的细分映射信息, * 相对于类定义处的URL信息,若类定义处未标注 @RequestMapping ,则方法处标注的URL相对于WEB应用的根目录。 * @return */ @RequestMapping("/testRequestMapping") public String testRequestMapping(){ System.out.println("testRequestMapping"); return SUCCESS; } /** * 常用:使用method属性来指定请求方式 * @return */ @RequestMapping(value = "/testMethod",method = RequestMethod.POST) public String testMethod(){ System.out.println("testMethod"); return SUCCESS; } /** * 了解:可以使用 params 和 headers 来更加精确的映射请求,params 和 headers支持简单的表达式 * @return */ @RequestMapping(value = "testParmsAndHeaders", params = {"username","age!=10"}, headers = {"Accept-Language=zh-CN,zh;q=0.8"}) public String testParmsAndHeaders(){ System.out.println("testParmsAndHeaders"); return SUCCESS; } }
Ant风格资源地址
Ant风格资源地址支持3种匹配符:
- ?:匹配文件中的一个字符
- * :匹配文件中的任意字符
- ** :匹配多层路径
@RequestMapping还支持Ant风格的URL