SpringMVC(2) 接收数据
2023-11-01 20:19:12 # Backend # SpringMVC

1. 访问路径设置

  1. 精准路径匹配
  • @RequestMapping注解指定 URL 地址时,不使用任何通配符,按照请求地址进行精确匹配

  • value属性是一个字符串类型的数组,表示该请求映射能够匹配多个请求地址所对应的请求

@RequestMapping(value = {"/user/login"})
@ResponseBody
public String login(){
return "login success!!";
}
  1. 模糊路径匹配
  • @RequestMapping注解指定 URL 地址时,通过使用通配符,匹配多个类似的地址
  • /*: 只能匹配URL地址中的一层,如果想准确匹配两层,重复两次即可,如代码示例
  • /**: 可以匹配URL地址中的任意层
@RequestMapping("/product/*/*")
@ResponseBody
public String show(){
return "product show!";
}
  1. 类和方法级别区别

@RequestMapping 注解可以用于类级别和方法级别

//1.标记到handler方法
@RequestMapping("/user/login")

//2.优化标记类+handler方法
//类上
@RequestMapping("/user")
//handler方法上
@RequestMapping("/login")
  1. 附带请求方式限制

HTTP 协议定义了八种请求方式,在 SpringMVC 中封装到了下面这个枚举类:

public enum RequestMethod {
GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
}

默认情况下:@RequestMapping("/logout") 任何请求方式都可以访问, 也可以通过method参数指定

@Controller
public class UserController {
/**
* method = RequestMethod.POST 可以指定单个或者多个请求方式!
* 注意:违背请求方式会出现405异常!
*/
@RequestMapping(value = {"/user/login"}, method = {RequestMethod.POST, RequestMethod.GET})
@ResponseBody
public String login(){
System.out.println("UserController.login");
return "login success!!";
}
}
  1. 进阶注解

@RequestMapping 的 HTTP 方法特定快捷方式变体:

  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMapping

注意:进阶注解只能添加到handler方法上,无法添加到类上

目前浏览器只支持get和post,若在form表单提交时,为method设置了其他请求方式的字符串(put或delete),则按照默认的请求方式get处理

若要发送put和delete请求,则需要通过spring提供的过滤器HiddenHttpMethodFilter

2. 接收参数