当前位置: 首页 > wzjs >正文

终身免费建站广东seo网站推广

终身免费建站,广东seo网站推广,工作总结加强部门网站建设,东莞贸易公司寮步网站建设价格Spring MVC 请求类型注解详解 1. 核心注解分类 Spring MVC 中的请求处理注解分为以下几类: 类别注解示例作用范围方法级注解RequestMapping, GetMapping 等方法级别参数级注解RequestParam, RequestBody方法参数模型/会话注解ModelAttribute, SessionAttributes方…

Spring MVC 请求类型注解详解


1. 核心注解分类

Spring MVC 中的请求处理注解分为以下几类:

类别注解示例作用范围
方法级注解@RequestMapping, @GetMapping方法级别
参数级注解@RequestParam, @RequestBody方法参数
模型/会话注解@ModelAttribute, @SessionAttributes方法或类级别

2. 方法级注解详解
@RequestMapping

功能:定义请求映射规则,支持所有 HTTP 方法。

属性列表

属性说明示例
method指定支持的 HTTP 方法(如 RequestMethod.GET)。method = RequestMethod.POST
value请求路径(可省略,与 path 等效)。value = "/user"path = "/user"
params条件过滤:请求参数需满足指定条件(如 param1, !param2)。params = {"name", "!age"}
headers条件过滤:HTTP 头需满足指定条件(如 User-Agent:Chrome)。headers = "Content-Type=application/json"
consumes限制请求内容类型(如 MediaType.APPLICATION_JSON_VALUE)。consumes = MediaType.APPLICATION_JSON_VALUE
produces限制响应内容类型(如 text/html)。produces = "text/html"

@GetMapping / @PostMapping 等

功能@RequestMapping 的简化版,按 HTTP 方法分类:

  • @GetMapping:对应 method = RequestMethod.GET
  • @PostMapping:对应 method = RequestMethod.POST
  • @PutMapping:对应 method = RequestMethod.PUT
  • @DeleteMapping:对应 method = RequestMethod.DELETE
  • @PatchMapping:对应 method = RequestMethod.PATCH

3. 参数级注解详解
@RequestParam

功能:绑定 URL 查询参数或表单参数到方法参数。

属性列表

属性说明示例
value参数名称(可省略,与 name 等效)。value = "id"name = "id"
required是否必须(默认 true)。required = false
defaultValue参数缺失时的默认值。defaultValue = "0"

示例

@GetMapping("/user")
public String getUser(@RequestParam("id") int userId) { ... }

@PathVariable

功能:绑定 URL 路径中的变量到方法参数。

属性列表

属性说明示例
value路径变量名称。value = "id"
required是否必须(默认 true)。required = false

示例

@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") String userId) { ... }

@RequestBody

功能:将 HTTP 请求体(如 JSON/XML)反序列化为 Java 对象。

属性

  • 无显式属性,直接用于方法参数。
  • 依赖 MappingJackson2HttpMessageConverter(JSON)或自定义转换器。

示例

@PostMapping("/user")
public User createUser(@RequestBody User user) { ... }

@RequestHeader

功能:绑定 HTTP 请求头到方法参数。

属性列表

属性说明示例
value请求头名称。value = "User-Agent"
required是否必须(默认 true)。required = false
defaultValue缺省值。defaultValue = "unknown"

示例

@GetMapping("/headers")
public String getHeaders(@RequestHeader("User-Agent") String userAgent) { ... }

@CookieValue

功能:绑定 Cookie 值到方法参数。

属性列表

属性说明示例
valueCookie 名称。value = "JSESSIONID"
required是否必须(默认 true)。required = false
defaultValue缺省值。defaultValue = "not-set"

示例

@GetMapping("/cookie")
public String getCookie(@CookieValue("theme") String theme) { ... }

4. 模型/会话注解
@ModelAttribute

功能

  1. 方法级:在目标方法执行前预处理模型数据(如填充对象)。
  2. 参数级:将请求参数绑定到 Java 对象。

示例

// 方法级:预加载数据
@ModelAttribute("user")
public User getUser() {return new User();
}// 参数级:绑定参数到对象
@PostMapping("/user")
public String saveUser(@ModelAttribute User user) { ... }
@SessionAttributes

功能:将模型属性存储到 HTTP Session。

属性

  • value:需存储的属性名列表(如 {"user"})。
  • types:需存储的属性类型列表。

示例

@Controller
@SessionAttributes({"user"})
public class UserController { ... }

5. 文件上传注解
@RequestPart

功能:处理多部分请求中的文件或参数(结合 @RequestParam)。

示例

@PostMapping("/upload")
public String uploadFile(@RequestPart("file") MultipartFile file) { ... }

6. 总结表格
注解类型注解名称作用参数示例
方法级@RequestMapping定义请求映射规则(路径、方法、条件等)。method = POST, consumes = "application/json"
HTTP 方法专用@GetMapping仅处理 GET 请求。/user/{id}
参数绑定@RequestParam绑定查询参数或表单参数。@RequestParam("id") int userId
路径变量@PathVariable绑定 URL 路径中的变量。@PathVariable("id") String userId
请求体@RequestBody反序列化请求体为对象。@RequestBody User user
HTTP 头@RequestHeader绑定请求头值。@RequestHeader("User-Agent") String agent
Cookie@CookieValue绑定 Cookie 值。@CookieValue("theme") String theme
模型/会话@ModelAttribute绑定对象或预加载模型数据。@ModelAttribute User user
文件上传@RequestPart处理多部分请求中的文件或参数。@RequestPart("file") MultipartFile file

关键总结

  1. 方法级注解:定义请求路径和条件,优先使用 @GetMapping 等 HTTP 方法专用注解。
  2. 参数级注解:根据数据来源(路径、请求体、请求头等)选择对应注解。
  3. 模型/会话@ModelAttribute 用于对象绑定和预处理,@SessionAttributes 管理会话数据。
  4. 最佳实践
    • 使用 @RequestBody 处理 JSON/XML 请求体。
    • 通过 @RequestParam@PathVariable 精确控制参数来源。
    • 结合 @Valid 注解实现参数校验(需 @ControllerAdvice 处理异常)。
http://www.dtcms.com/wzjs/168068.html

相关文章:

  • 品牌网站建设有哪两种模式微信小程序开发费用一览表
  • 哪家网站建设公司靠谱十个有创意的线上活动
  • wordpress 页面开发教程视频谷歌seo怎么优化
  • 做暧暧动态网站百度招聘电话
  • 成都哪里做网站便宜百度关键词工具
  • 淄博网站建设有实力google登录
  • 教育平台网站开发百度一下网页版搜索引擎
  • 京东商城网站建设策划书seo大牛
  • 网站建设与规划实验总结android优化大师
  • 金华市住房和城乡建设局网站手机百度高级搜索入口
  • 做网站运营需要什么证百度搜索引擎的优缺点
  • 网站建设的必要性及意义百度助手安卓版下载
  • 程序员做图网站百度推广开户联系方式
  • 怎样做网站平台湘潭网站seo磐石网络
  • 网站建设应列支什么科目营销技巧有哪些
  • 什么网站可以看女人唔易做个人网站设计作品
  • 怎么做网站交易简单的网站建设
  • 做网站用什么cms 知乎大连最好的做网站的公司
  • 网站开发企业开发焦作网站seo
  • wordpress codecolorer广州seo外包
  • 学校网络营销推广方案优化网站seo
  • 免费分销软件如何将网站的关键词排名优化
  • 企业网站宣传册应该哪个部门做哪有培训seo
  • 网站推送怎么做的网络推广站
  • 企业网站设计开发服务营销推广有哪些公司
  • dz可以做旅游网站吗网络营销理论包括哪些
  • 珠海网站排名提升优化快速排名公司
  • 我想做网站服务器选用什么东莞seo推广公司
  • 河北网站建设发稿网
  • 阿里云备案网站建设方案书案例什么软件可以搜索关键词精准