SpringMVC简要工作流程及常用注解

本文详细介绍了SpringMVC的工作流程,包括用户请求处理、后端控制器执行、视图渲染等步骤,并列举了常用的注解如@Controller、@RestController、@RequestMapping等,帮助读者理解SpringMVC框架的核心机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SringMVC工作流程简述

  1. 第一步:用户发送请求到前端控制器(DispatcherServlet)。
  2. 第二步:前端控制器(DispatcherServlet)去访问处理器映射器(HandlerMapping)获取相应的url地址。处理器映射器根据url找到具体的后端控制器(Handler),如果生成处理器对象或处理器拦截器则和后端控制器(Handler)一起返回给前端控制器(DispatcherServlet)。
  3. 第三步:前端控制器(DispatcherServlet)根据返回的后端控制器(Handler)查找到合适的处理器适配器(HandlerAdapter)
  4. 第四步:处理器适配器(HandlerAdpater)会去执行后端控制器(Handler开发的时候会被叫成Controller) 执行之前会有转换器、数据绑定、校验器等等完成上面这些才会去正在执行后端控制器(Handler)。
  5. 第五步:后端控制器(Handler)根据执行结果生成ModelAndView对象。
  6. 第六步:处理器适配器(HandlerAdpater)会将这个ModelAndView返回前端控制器(DispatcherServlet)。前端控制器(DispatcherServlet)会将ModelAndView对象交给视图解析器(ViewResolver)。
  7. 第七步:视图解析器(ViewResolver)解析ModelAndView对象之后返回逻辑视图。
  8. 第八步:前端控制器(DispatcherServlet)对逻辑视图进行渲染(数据填充)之后返回真正的物理视图(View)并响应给浏览器。
    在这里插入图片描述

SpringMVC中常用的注解

  • @Controller
      负责注册一个bean 到spring 上下文中

  • @RestController
    默认所有的方法都返回

  • @responsebody
      ajax的控制器

  • @RequestMapping
      注解为控制器指定可以处理哪些 URL 请求

  • @RequestBody
      针对的请求type=“application/json ,text/json”,请求数据为json字符串。
      该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上
    再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上

  • @ResponseBody
      该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区

  • @ModelAttribute(必须加name才能save,同时起到RequestParam的效果)
      在方法定义上使用 @ModelAttribute 注解:Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了@ModelAttribute 的方法
      在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数绑定到对象中,再传入入参将方法入参对象添加到模型中

  • @RequestParam
      request.getParameter,可以把请求参数传递给请求方法

  • @PathVariable
      绑定 URL 占位符到入参

  • @ExceptionHandler
      注解到方法上,出现异常时会执行该方法

  • @ControllerAdvice
      使一个Contoller成为全局的异常处理类,类中用@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值