MVC生命周期,springmvcbean生命周期
今天是我第一次接触Spring mvc。首先,让我们从Spring mvc的生命周期来了解它。
推荐课程:Java教程。
如何解决写爬虫IP受阻的问题?立即使用。
首先,浏览器发送一个请求,我们的项目通过spring中一个名为dispatcherServlet的servlet接收请求。
收到请求后,这个Servlet会验证是否是第一次加载这个Servlet。如果这个Servlet是第一次加载,dispatcherServlet将在此时执行一些初始化操作。
DispatcherServlet初始化HandlerMapping(注意:它处理客户机请求到每个控制器处理器的映射)
DispatcherServlet会初始化HandlerAdapter(注意:HandlerMapping会根据它调用要在控制器中执行的方法)
DispatcherServlet会初始化handlerExceptionResolver(注意:在spring mvc流程中,如果抛出异常,会交给它进行异常处理)
DispatcherServlet将初始化ViewResolver(注意:HandlerAdapter将最终把控制器中的调用返回值包装到
ModelAndView,ViewResolver将检查其中的视图。如果view是一个字符串,它将负责处理这个字符串并返回一个真实的视图。如果
如果视图是真实视图,则不会被它处理)
在所有这些初始化之后,dispathcerServlet将开始查询一个或多个handlerMaprring,以将请求映射到一个控制器对象。
如果此时没有找到控制器对象,将会抛出一个异常。
如果发现控制器对象,请求将由拦截器链的preHandle处理,控制器对象的具体方法将由handlerAdapter匹配。
然后,在这个方法中,将根据我们的业务逻辑处理请求。处理后,控制器会得到一个ModelAndView对象(注意:这个类中的vie
该属性属于Object类型,可以是视图名称或实际视图。)得到这个ModelAndView后,spring会判断ModelAndView的Viewname是否为String类型。
如果是字符串类型,直接调用ModelAndView的getView方法,然后找到对应的页面,将信息返回给DispatcherServlet。
如果不是字符串类型,它会根据viewName在ViewResolver中找到名称,然后确定其对应的页面,再将页面返回给dispatcherserlvet。
最后,dispatcherSerlvet会将获取的页面返回给浏览器。
这就是Spring MVC生命周期的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。