-
@Controller
-
在使用 Spring MVC 框架开发 Web 应用程序时,@Controller 注解是用来标识一个类为控制器(Controller)的注解。控制器层负责接收用户请求,并根据请求处理逻辑选择合适的业务逻辑进行处理,最终返回响应给用户。
-
控制器的主要作用包括:
-
接收用户请求:控制器负责接收用户发起的请求,可以通过注解中的 @RequestMapping 来定义请求的 URL 地址和请求方法(如 GET、POST 等),从而将请求映射到相应的处理方法。
-
处理请求:控制器包含多个处理方法,每个方法用于处理不同的请求或请求路径。这些方法通常返回数据模型、视图名称或者响应体,完成请求的处理逻辑。
-
调用业务逻辑:控制器通过调用合适的服务层或业务逻辑组件来处理业务逻辑,以满足用户请求的需求。
-
返回响应:控制器根据处理结果,可以选择返回数据模型给视图进行渲染,或者直接返回响应体给客户端。可以通过注解如 @ResponseBody 或 @RestController 来标识方法返回的是响应体。
-
-
-
@RequestMapping
-
@RequestMapping 注解是 Spring MVC 框架中的一个核心注解,用于将请求映射到相应的处理方法,它可以用在类级别和方法级别上。
-
类级别的 @RequestMapping: 用于指定该类中所有处理方法的公共请求路径前缀。当用户请求的 URL 匹配该前缀时,会进入该类中的处理方法进行处理。
-
方法级别的 @RequestMapping: 用于指定处理请求的方法和请求路径。当用户请求的 URL 匹配该路径时,会调用该方法进行处理。
-
-
-
@RequestParam
- @RequestParam 注解用于将 HTTP 请求中的参数绑定到控制器方法的参数上,即获取请求中的参数值并映射到方法参数。它支持几乎所有的数据类型,包括基本数据类型和复杂数据类型。
-
@PathVariable
- @PathVariable 注解用于获取 URL 中的动态参数,即将 URL 中的变量映射到控制器方法的参数上。这样就可以通过 URL 传递参数,而不是通过查询字符串的方式来传递参数。
-
@RequestBody
- @RequestBody 注解用于将 HTTP 请求体中的数据绑定到控制器方法的参数上,即获取 POST 请求中的数据并映射到方法参数。它通常用于处理 JSON 或 XML 格式的请求体数据。
-
@ResponesBody
- @ResponseBody 注解用于将方法的返回值直接作为 HTTP 响应的内容,而不是通过视图解析器返回一个视图。它通常与 @RequestMapping 注解一起使用。
-
@RestController
- @RestController 是一个组合注解,它是 @Controller 和 @ResponseBody 两个注解的整合。它表示控制器类中的所有方法都会返回 JSON、XML 或其他格式的数据,而不是视图。
-
@ModelAttribute
- @ModelAttribute 注解用于绑定请求参数到方法的参数或方法级别的模型属性上。
-
@SessionAttributes
- @SessionAttributes 注解是用于将模型属性暂时存储在会话(Session)中的注解。它可以用在控制器类级别或控制器方法级别。
-
@ExceptionHandler
- @ExceptionHandler 注解用于定义一个处理异常的方法。它可以用在控制器类级别或控制器方法级别。