SpringMvc---对请求映射设置过滤条件(RequsetMapping)
1、普通请求映射处理
@RequestMapping:RequestMapping可以定义在类上也可以定义在方法上,主要的功能就是路径的请求映射。
当绑定在类上时,所有方法的路径必须加上类上面注解的Value。
@Controller
@RequestMapping("/mapping")
public class MappingController {
@RequestMapping("/mapping01")
public String mapping01(String name){
System.out.println(name);
return "index.jsp";
}
}
2、method参数使用
method注解可以指定请求方式。
@RequestMapping(value = "/mapping01", method = {RequestMethod.GET,RequestMethod.POST})
public String mapping01(String name){
System.out.println(name);
return "index.jsp";
}
@GetMapping(value = "/mapping02")
@PostMapping(value = "/mapping02")
public String mapping02(String name){
System.out.println(name);
return "index.jsp";
}
3、params参数使用
当使用这个参数的时候,会有以下四种情况:
1、设置必须带什么参数。必须要传入username参数。
@RequestMapping(value = "/mapping03", params = {"username"})
public String mapping03(String name){
System.out.println(name);
return "index.jsp";
}
2、设置必须不带什么参数。不能带username参数。
@RequestMapping(value = "/mapping03", params = {"!username"})
public String mapping03(String name){
System.out.println(name);
return "index.jsp";
}
3、参数必须要等于什么值。username必须等于HaHa。
@RequestMapping(value = "/mapping03", params = {"username=HaHa"})
public String mapping03(String name){
System.out.println(name);
return "index.jsp";
}
4、参数必须不要等于什么值。username不能等于HaHa。
@RequestMapping(value = "/mapping03", params = {"username!=HaHa"})
public String mapping03(String name){
System.out.println(name);
return "index.jsp";
}
4、headers参数使用
设置头中的Accept-Language参数的值必须是zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
@RequestMapping(value = "/headers01", headers = {"Accept-Language=zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"})
public String headers01(){
System.out.println("请求头映射成功");
return "index.jsp";
}
5、consumes参数使用
可以设置请求的源头,比如下面这个就是只能从form表单请求过来。
@RequestMapping(value = "/consumes", consumes = {"application/x-www-form-urlencoded"})
public String consumes(){
System.out.println("请求头映射成功");
return "index.jsp";
}
6、produces参数使用
响应的内容必须是一个json的字符串
@RequestMapping(value = "/produces", produces = {"application/json"})
public String produces(){
System.out.println("响应内容类型");
return "index.jsp";
}
7、RequestMapping映射的路径也可支持通配符
通配符分为以下三种:
? 只能匹配到单个的确定的字符。
* 匹配到任意个字符。
** 匹配到无限制的路径层。
如果通配符有包含情况,优先匹配精确度最高的那一个。
举例如下:
@RequestMapping(value = "/ant?")
public String ant01(){
System.out.println("响应通配符?");
return "/index.jsp";
}
@RequestMapping(value = "/ant*")
public String ant02(){
System.out.println("响应通配符*");
return "/index.jsp";
}
@RequestMapping(value = "/ant/**")
public String ant03(){
System.out.println("响应通配符**");
return "/index.jsp";
}