> 文章列表 > Spring框架的Web模块用于处理HTTP请求和响应的所有注解

Spring框架的Web模块用于处理HTTP请求和响应的所有注解

Spring框架的Web模块用于处理HTTP请求和响应的所有注解

Spring框架的Web模块,主要用于处理HTTP请求和响应。这个Web模块提供了一系列的注解来简化SpringMVC开发过程和请求参数绑定。其中,@RestController、@RequestMapping、@RequestBody、@RequestParam和@RequestHeader等是SpringMVC最常用的注解之一。同时,@RequestScope、@RequestAttribute和@RequestType等注解也是可选的,并且与Web上下文相关。在实际使用中可以根据具体的需求选择合适的注解来构建应用程序。

Spring框架的Web模块所有注解:

  1. @Controller:将类标记为SpringMVC控制器。

  2. @RestController:结合了@Controller和@ResponseBody注解的功能,表示这是一个控制器,并且返回值会直接转换为JSON或XML格式。

  3. @RequestMapping:用于映射HTTP请求到特定的处理方法或控制器类上。可以指定URI、请求方法、请求头信息等等。

  4. @PathVariable:从URI中获取参数值,并将其绑定到处理器方法的参数上。

  5. @RequestParam:将HTTP请求参数映射到处理器方法的参数上。可以设置默认值、是否必须、参数名称等等。

  6. @RequestBody:从HTTP请求体中读取参数,并将其作为Java对象进行解析。

  7. @ResponseBody:表示返回值应该作为HTTP响应体的内容传输给客户端。可以指定返回内容的类型如JSON或XML。

  8. @RequestHeader:获取HTTP请求头信息的值,并将其注入到处理器方法的参数上。

  9. @CookieValue:获取HTTP请求中指定Cookie的值,并将其注入到处理器方法的参数上。

  10. @SessionAttributes:将模型属性透明地保存在HTTP会话中,以便多个请求之间共享数据。

  11. @ModelAttribute:将前端传来的数据填充到JavaBean中,并将这个Bean作为模型对象传递给处理器方法。

  12. @InitBinder:自定义的数据绑定,例如将日期字符串转换为Java Date类型。

  13. @ExceptionHandler:定义全局异常处理程序,可以在其中定义应该如何处理不同类型的异常。

  14. @ResponseStatus:指定响应状态码和原因。

  15. @SessionAttribute:将模型属性注入到HTTP会话中,以便多个请求之间共享数据。

  16. @RequestPart:从HTTP请求正文中获取多部分(即文件)数据。通常情况下,使用@RequestPart注解来处理上传文件。

  17. @RequestBodyAdvice:允许对@RequestBody参数进行自定义前置操作。

  18. @ResponseBodyAdvice:允许对@RequestBody方法返回值进行自定义后置操作。


其中,SpringWeb模块用于处理HTTP请求和响应注解包括:

@Controller:用于将类标记为SpringMVC控制器。

@RestController:结合了@Controller和@ResponseBody注解的功能,表示这是一个控制器,并且返回值会直接转换为JSON或XML格式。

@RequestMapping:用于映射HTTP请求到特定的处理方法或控制器类上。可以指定URI、请求方法、请求头信息等等。

@PathVariable:用于从URI中获取参数值,并将其绑定到处理器方法的参数上。

@RequestParam:用于将HTTP请求参数映射到处理器方法的参数上。可以设置默认值、是否必须、参数名称等等。

@RequestBody:用于从HTTP请求体中读取参数,并将其作为Java对象进行解析。

@ResponseBody:表示返回值应该作为HTTP响应体的内容传输给客户端。可以指定返回内容的类型如JSON或XML。

@RequestHeader:用于获取HTTP请求头信息的值,并将其注入到处理器方法的参数上。

@CookieValue:用于获取HTTP请求中指定Cookie的值,并将其注入到处理器方法的参数上。

@SessionAttributes:用于将模型属性透明地保存在HTTP会话中,以便多个请求之间共享数据。

@ModelAttribute:用于将前端传来的数据填充到JavaBean中,并将这个Bean作为模型对象传递给处理器方法。

@InitBinder:用于自定义的数据绑定,例如将日期字符串转换为Java Date类型。

@ExceptionHandler:用于定义全局异常处理程序,可以在其中定义应该如何处理不同类型的异常。

这些注解提供了很多方便的功能,可以使得SpringMVC开发更加简单和高效。以下为部分代码示例。

1.@Controller

该注解用于将类标记为SpringMVC控制器。

示例代码:

@Controller
public class UserController {//控制器方法
}

2.@RestController

该注解结合了@Controller和@ResponseBody注解的功能,表示这是一个控制器,并且返回值会直接转换为JSON或XML格式。

示例代码:

@RestController
public class UserController {//控制器方法
}

3.@RequestMapping

该注解用于映射HTTP请求到特定的处理方法或控制器类上。可以指定URI、请求方法、请求头信息等等。

示例代码:

@RequestMapping(value = "/user", method = RequestMethod.GET)
public String getUser(@RequestParam("id") int id) {//处理请求方法
}

4.@PathVariable

该注解用于从URI中获取参数值,并将其绑定到处理器方法的参数上。

示例代码:

@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
public String getUser(@PathVariable("id") int id) {//处理请求方法
}

5.@RequestParam

该注解用于将HTTP请求参数映射到处理器方法的参数上。可以设置默认值、是否必须、参数名称等等。

示例代码:

@RequestMapping(value = "/user", method = RequestMethod.GET)
public String getUser(@RequestParam("id") int id) {//处理请求方法
}

6.@RequestBody

该注解用于从HTTP请求体中读取参数,并将其作为Java对象进行解析。

示例代码:

@RequestMapping(value = "/user", method = RequestMethod.POST)
public void addUser(@RequestBody User user) {//处理请求方法
}

7.@ResponseBody

该注解表示返回值应该作为HTTP响应体的内容传输给客户端。可以指定返回内容的类型如JSON或XML。

示例代码:

@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
@ResponseBody
public User getUser(@PathVariable("id") int id) {//处理请求方法
}

8.@RequestHeader

该注解用于获取HTTP请求头信息的值,并将其注入到处理器方法的参数上。

示例代码:

@RequestMapping(value = "/user", method = RequestMethod.GET)
public String getUser(@RequestHeader("User-Agent") String userAgent) {//处理请求方法
}

9.@CookieValue

该注解用于获取HTTP请求中指定Cookie的值,并将其注入到处理器方法的参数上。

示例代码:

@RequestMapping(value = "/user", method = RequestMethod.GET)
public String getUser(@CookieValue("username") String username) {//处理请求方法
}

10.@SessionAttributes

该注解用于将模型属性透明地保存在HTTP会话中,以便多个请求之间共享数据。

示例代码:

@Controller
@SessionAttributes("user")
public class UserController {//控制器方法
}

11.@ModelAttribute

该注解用于将前端传来的数据填充到JavaBean中,并将这个Bean作为模型对象传递给处理器方法。

示例代码:

@RequestMapping(value = "/user", method = RequestMethod.POST)
public void addUser(@ModelAttribute("user") User user) {//处理请求方法
}

12.@InitBinder

该注解用于自定义的数据绑定,例如将日期字符串转换为Java Date类型。

示例代码:

@InitBinder
public void initBinder(WebDataBinder binder) {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}

13.@ExceptionHandler

该注解用于定义全局异常处理程序,可以在其中定义应该如何处理不同类型的异常。

示例代码:

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(Exception.class)public ModelAndView handleException(Exception ex) {ModelAndView modelAndView = new ModelAndView();modelAndView.setViewName("error");modelAndView.addObject("message", ex.getMessage());return modelAndView;}
}

补充:org.springframework.web.bind.annotation包下八个@Request注解

@RequestMapping:该注解用于将HTTP请求映射到处理器方法或控制器类。通过使用@RequestMapping注解,开发人员可以定义一个URI(或URL)模板以及与之相关联的方法或类,当用户访问该URI时,系统将自动调用相应的方法或类。

@RequestBody:该注解用于指示SpringMVC应从HTTP请求体中获取数据。它通常与@Controller、@RestController和@RequestMapping配合使用。@RequestBody注解会将HTTP请求正文中的JSON、XML或其他格式的数据绑定到Java对象上。

@RequestScope:该注解用于标注Bean的生命周期作用域为请求级别。这意味着在同一HTTP请求中,多个bean实例将共享相同的请求属性。在使用注解创建bean时,很有用。

@RequestAttribute:该注解用于标注请求属性。通过使用@RequestAttribute注解,我们可以将请求属性映射到处理程序方法的参数上,使得我们能够方便地获取请求的属性信息。

@RequestHeader:该注解用于指定请求头信息。使用@RequestHeader注解时,可以将指定的请求头信息值注入到目标方法的参数中。

@RequestType():该注解用于指示请求的类型。例如,如果您想限制请求只接受POST请求,则可以使用@RequestType(value="POST")注解。

@RequestParam:该注解用于将HTTP请求参数映射到处理程序方法的参数上。@RequestParam可以用于处理单个请求参数或多个参数,它可以指定必需的参数和默认值,以及请求参数名称等。

@RequestPart:该注解用于从HTTP请求正文中获取多部分(即文件)数据。通常情况下,使用@RequestPart注解来处理上传文件。