springmvc运行流程

本文详细介绍了Spring MVC中请求处理的整个流程,包括从发送请求到最终渲染视图的全过程,涉及HandlerMapping、HandlerAdapter、拦截器及视图解析器等关键组件。

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

图示:

        首先,发送一个请求,查看请求路径是否与springDispatcherServlet的url-pattern相对应,在springmvc中是否存在对应的映射@RequestMapping(),如果不存在话,

       是否配置了<mvc:default-servlet-handler/>,如果依旧没有 <mvc:default-servlet-handler/>的话,则会出现404页面,并且在控制台输出No mapping found for HTTP request with URI [/xx/xx] in DispatcherServlet。

    配置了<mvc:default-servlet-handler/>,去访问目标资源,如果没有目标资源的话,依旧是404界面,但是控制台不会输出 No mapping found...

  在springmvc中存在对应映射的情况下,由 HandlerMapping 获取 HandlerExecutionChain 对象,然后获取HandlerAdapter(适配器),调用拦截器的PreHandle,调用目标Handler 的目标方法得到 ModelAndView 对象,调用拦截器的 postHandle方法,查看是否存在异常

  如果有异常的话,会由异常解析器解析这个异常,得到一个新的ModelAndView 对象

没有异常的话,依旧是那个ModelAndView 对象,然后由 ViewResolver 组件根据 ModelAndView 对象得到实际的 View,渲染视图,最后调用拦截器的 afterCompletion方法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值