Spring Web MVC 备忘录

理解

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,围绕前端控制器模式设计的
Dispatcher :调度
Servlet:小服务程序

DispatcherServlet

中央控制器Servlet为DispatcherServlet请求处理提供共享算法,而实际工作由可配置的委托组件执行。
DispatcherServlet使用 Spring 配置来发现 请求映射、视图解析、异常处理等所需的委托组件。

路径匹配

可用 PathMatcher的解析来更全面地解决

请求映射

  • @RequestMapping
    将请求映射到控制器方法。
    有各种属性来匹配 URL、HTTP 方法、请求参数、标头和媒体类型。
    可以在类级别使用它来表达共享映射,或者在方法级别使用它来缩小到特定的端点映射。
    还有HTTP方法特定的快捷方式变体
    • @GetMapping
    • @PostMapping
    • @PutMapping
    • @DeleteMapping
    • @PatchMapping

1.耗材类型
可以根据请求缩小请求映射Content-Type
使用consumes属性按内容类型缩小映射范围

@PostMapping(path = "/pets", consumes = "application/json")

2.可生产的媒体类型
可以根据Accept请求标头和控制器方法生成的内容类型列表来缩小请求映射

@GetMapping(path = "/pets/{petId}", produces = "application/json") 

3.参数、标题
可以根据请求参数条件缩小请求映射。您可以 测试请求参数是否存在 ( myParam)、是否存在 ( !myParam) 或特定值 ( myParam=myValue)

@GetMapping(path = "/pets/{petId}", params = "myParam=myValue")
@GetMapping(path = "/pets", headers = "myHeader=myValue")

处理程序方法

方法参数

  • javax.servlet.ServletRequest;javax.servlet.ServletResponse
    选择任何特定的请求或响应类型
  • java.security.Principal
    Principal当前经过身份验证的用户——如果已知,可能是特定的实现类
  • @PathVariable
    用于访问 URI 模板变量
  • @RequestParam
    • 用于访问 Servlet 请求参数,包括多部分文件。参数值被转换为声明的方法参数类型。
    • 默认情况下,使用此注解的方法参数是必需的,但您可以通过将@RequestParam注解的required标志设置为 false或使用java.util.Optional包装器声明参数来指定方法参数是可选的。
  • @RequestHeader
    用于访问请求标头。
  • @CookieValue
    用于访问 cookie。Cookies 值被转换为声明的方法参数类型。
  • @RequestBody
    用于访问 HTTP 请求正文。使用实现将正文内容转换为声明的方法参数类型HttpMessageConverter。
  • @RequestPart
    要访问请求中的某个部分,multipart/form-data请使用HttpMessageConverter。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值