SpringMVC 中的常用注解和用法

⭐ 作者:小胡_不糊涂
🌱 作者主页:小胡_不糊涂的个人主页
📀 收录专栏:JavaEE
💖 持续更文,关注博主少走弯路,谢谢大家支持 💖

1. MVC定义

MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分:
在这里插入图片描述

  • View(视图) 指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源。
  • Model(模型) 是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分。
  • Controller(控制器) 可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型。

2. 注解

2.1 @RequestMapping

@RequestMapping的作用是建立请求URL和处理方法之间的对应关系
@RequestMapping可以作用在方法和类上

作用在类上:第一级的访问目录
作用在方法上:第二级的访问目录

@RequestMapping的属性

path-指定请求路径的URL
value属性和path属性是一样的
mthod 指定该方法的请求方式
params 指定限制请求参数的条件
headers 发送的请求中必须包含的请求头

示例:

 @RequestMapping("/user")
 @RestController
 public class UserController {
	@RequestMapping("/hello")
	public String hello(){
		return "hello,Spring MVC";
	}
}

访问地址:http://127.0.0.1:8080/user/hello

@RequestMapping 的URL 路径最前⾯加不加 / (斜杠)都可以,Spring程序启动时,会进⾏判断,如果前⾯没有加 / ,Spring会拼接上⼀个 / 。

2.2 @RequestParam

用于将指定的请求参数赋值给方法中的形参。

三个属性:
value:请求参数名(必须配置)
required:是否必需,默认为 true,即请求中必须包含该参数,如果没有包含,将会抛出异常(可选配置)
defaultValue:默认值,如果设置了该值,required 将自动设为 false,无论你是否配置了required,配置了什么值,都是 false(可选配置)

示例:URL中的参数名必须为value
在这里插入图片描述
错误示例:

在这里插入图片描述

2.3 RequestBody

主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)。

GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

示例:

@RestController
public class UserController {
    @PostMapping("/users")
    public ResponseEntity<User> createUser(@RequestBody User user) {
        // 在这里处理 user 对象
        // ...
        return ResponseEntity.status(HttpStatus.CREATED).body(user);
    }
}

上述示例中,@RequestBody 注解标识的 User 参数会自动从请求体中解析,然后映射为 User 对象。

2.4 PathVariable

这个注解主要作⽤在请求URL路径上的数据绑定。

默认传递参数写在URL上,SpringMVC就可以获取到。
示例:

@RequestMapping("/user/{id}/{name}")
public String method8(@PathVariable Integer id, @PathVariable("name") String use
	return "解析参数id:"+id+",name:"+userName;
}

使用浏览器发起请求:http://127.0.0.1:8080/getmessage/user/1/zhangsan
在输入URL时,需要传递需要的参数,这样后端才能正确获取到URL中的参数。
在这里插入图片描述

如果⽅法参数名称和需要绑定的URL中的变量名称⼀致时,可以简写,不⽤给@PathVariable的属性赋值,如上述例⼦中的id变量。
如果⽅法参数名称和需要绑定的URL中的变量名称不⼀致时。需要@PathVariable的属性value赋值,如上述例⼦中的userName变量。

2.5 Controller

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。

  • 分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。
  • @Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。

相关推荐

  1. 总结 SpringMVC 注解

    2024-03-11 18:30:06       34 阅读
  2. SpringMVC 注解

    2024-03-11 18:30:06       17 阅读
  3. SpringMVC 注解

    2024-03-11 18:30:06       12 阅读
  4. SpringMVC常见注解

    2024-03-11 18:30:06       14 阅读
  5. SpringMVC注解

    2024-03-11 18:30:06       25 阅读
  6. SpringMVC注解

    2024-03-11 18:30:06       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 18:30:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 18:30:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 18:30:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 18:30:06       18 阅读

热门阅读

  1. Docker与低代码开发:重塑软件开发的未来

    2024-03-11 18:30:06       19 阅读
  2. 计算机视觉(CV)技术的优势和挑战

    2024-03-11 18:30:06       21 阅读
  3. chatgpt How to call functions with chat models

    2024-03-11 18:30:06       20 阅读
  4. Cisco IOS 使用 IP SLA 状态作为静态路由的开关

    2024-03-11 18:30:06       21 阅读