四.请求配置
1.基本配置
使用`@RequestMapping(value=“url”)进行直接配置
该注解表示配置访问命令,可以配置在类上,也可以配置在方法上
2.ANT风格配置
通配符配置
*
- 匹配一层路径
**
- 匹配0或多层路径
?
- 只匹配一个字符
- 可以与其他字符联合使用
@RequestMapping("/f1/*")
public void f1(){
System.out.println("RequestController.f1");
}
@RequestMapping("/f2/**")
public void f2(){
System.out.println("RequestController.f2");
}
@RequestMapping("/f3/a?")
public void f3(){
System.out.println("RequestController.f3");
}
3.REST风格配置
- {xxx}
- 表示一层路径
- 该方式必须与
@PathVariable("xxx")
联合使用 - 该注解标注在方法的参数前,表示将路径中的
xxx
与方法的参数进行绑定 - 当用户输入访问命令的时候,
xxx
部分的值即为当前参数的值 - 当注解中
xxx
的值与变量名一致的时候,注解的参数可以省略 - REST配置在一个请求中可以配置无数个
- {xxx:正则表达式}
- 可以限制当前参数的格式
- 如果格式不对,限制访问对应的Handler方法
@RequestMapping("/f4/{name}")
public void f4(@PathVariable String name){
System.out.println("RequestController.f4,name:"+name);
}
@RequestMapping("/f5/{aaa}/{password}")
public void f5(@PathVariable("aaa") String username,@PathVariable String password){
System.out.println("username:"+username+",password:"+password);
}
@RequestMapping("/f6/{id}")
public void f6(@PathVariable Integer id){
System.out.println("id:"+id);
}
@RequestMapping("/f7/{id:\\d+}")
public void f7(@PathVariable Integer id){
System.out.println("id:"+id);
}
4.其他配置
-
一个方法可以配置多个访问命令
@RequestMapping
的value属性的值可以是字符串数组- 数组中的每一个元素都是一个访问命令
@RequestMapping(value = {"/f8","/test8"}) public void f8(){ System.out.println("RequestController.f8"); }
-
可以限制请求提交的方式
- 可以通过两种方式进行设置
- 方式一
- 通过
@RequestMapping
的method属性指定当前请求的类型 - 其值是一个枚举类型,通过
RequestMethod
进行获取 - 请求方式一共八种
- GET
- POST
- PUT
- DELETE
- HEAD
- PTACH
- OPTIONS
- TRACE
- 通过
- 方式二
- 直接通过使用
@XXXMapping
代替原有的@RequestMapping
注解 XXX
的值即为请求方式- 例如:
@PostMapping
表示使用post请求进行访问
- 直接通过使用
@RequestMapping(value = "/f9",method = RequestMethod.POST)
public void f9(){
System.out.println("RequestController.f9");
}
@PostMapping("/f10")
public void f10(){
System.out.println("RequestController.f10");
}
- 限制参数
- 可以限制请求中参数必须包含指定的某一个参数
- 还能限制请求中的某个参数的值必须是什么
- 还能限制请求中的某个参数的值不能是什么
@RequestMapping(value = "/f11",params = "username")
public void f11(){
System.out.println("RequestController.f11");
}
@RequestMapping(value = "/f12",params = "username=admin")
public void f12(){
System.out.println("RequestController.f12");
}
@RequestMapping(value = "/f13",params = "username!=abc")
public void f13(){
System.out.println("RequestController.f13");
}