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

b2b平台网站功能内部优化

b2b平台网站功能,内部优化,建筑设计师网站,出国游做的好的网站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/205823.html

相关文章:

  • 城乡互动联盟网站建设百度搜索如何去广告
  • 一级a做爰片_相关网站微信小程序开发费用一览表
  • stm32做网站服务器百度官网下载安装到桌面上
  • 瓯北网站建设搜索seo优化托管
  • 南京华典建设有限公司网站爱站网长尾关键词挖掘查询工具
  • 网站做英文版有用吗自动点击器app
  • 禹城有做网站智能网站排名优化
  • 佛山网站建设明细今日头条官网登录入口
  • 网站建设与管理拼音泰州seo推广
  • 南昌seo关键词网站seo诊断报告
  • 专业外贸网站济南网站建设方案
  • 上海网站建设找哪家网站数据查询
  • 网站建设里怎么写文章seo超级外链发布
  • 用ip的网站要备案吗网络营销和网站推广的区别
  • sap.net怎么做网站山东seo网页优化外包
  • 自学ui设计需要哪些资料seo服务销售招聘
  • 怎样免费做书画网站百度首页 百度一下
  • 动态网站开发项目实训报告深圳优化公司样高粱seo
  • 郑州网站建设公司招聘百度文库网页版登录入口
  • 对做网站公司的疑问视频外链工具
  • 建造网站需要多少钱有没有免费推广平台
  • 设计上海网站建设友情链接联盟
  • 做网站时怎么选择数据库类型谷歌排名
  • 做网站698靠谱吗什么推广方法是有效果的
  • 杭州网站设计建设公司广告引流推广平台
  • 自己开网站能赚钱吗网站优化就是搜索引擎优化
  • 凡科二级网站怎么做运营商推广5g技术
  • 武汉做网站哪个公司好seo工具是什么意思
  • 用c 怎么做网站系统网络视频营销策略有哪些
  • 自建商城网站用什么技术好营销策划的重要性