spring MVC框架的配置流程(代码详解)

⑴    Tomcat服务器启动时,会自动的解析WEB-INF路径下的web.xml文件,然后会根据客户端提交上来的请求是以 .do结尾的还是 / ,都会交给其DispatcherServlet进行转发处理。在DispactherServlet初始化时,就会调用init()方法,然后它会紧接着在其WEB-INF下找其[servlet-name]-servlet.xml文件进行解析,返回一个WebApplicationContext容器,这个上下文容器就是spring IoC容器。spring MVC框架的配置流程(代码详解)_第1张图片

(2) DispatcherServlet会根据spring IoC容器中的bean配置,会找到其对应的处理器映射(请求的URL地址和处理器之间映射关系的组件称为处理器映射)处理器映射会根据其springIoC容器中哪些bean实现了HandlerMapping接口,会将其视为处理器映射,根据其order值的大小来确定谁先被调用,作为处理器映射对象(order值小的先被调用)

(3) 首先通过组件扫描,将配置的包下所有注解的类,通过bean的方式注入到Spring IoC容器当中,处理器映射对象会根据其URL地址路径,在其Spring IoC容器中找到与其对应要处理的Controller类,返回给DispatcherServlet请求分发器



(4) 请求分发器会通过HandlerAdapter处理器适配器对象在该处理器对象中找到其与之URL匹配的业务处理方法,然后将其参数进行自动类型装换,自动装载和校验等操作并返回ModelAndView对象或者模型数据和逻辑视图名。spring MVC框架的配置流程(代码详解)_第2张图片


(5) 请求分发器会根据其返回的逻辑视图名,通过其视图解析器对象(实现了ViewResolver接口的对象,默认使用实现InternalResourceViewResolver接口)对其逻辑视图名进行解析操作,返回一个实现了View接口的视图对象。自动的对其逻辑视图名进行前缀和后缀的拼接。

spring MVC框架的配置流程(代码详解)_第3张图片


(6) 请求分发器会根据视图解析器返回的视图对象,然后将模型数据传递给该视图对象,在其内部视图对象会调用render()方法来渲染,实际上是在其方法内部调用 forword 方法进行页面转发操作!

注意:如要在其内部使用redirect重定向来跳转页面时,要在其逻辑视图名前面加上 redirect:前缀,InternalResourceVireResolver在解析时会自动的去掉前缀redirect:,然后取后面的部分组成一个RedirectView对象返回。RedirectView功能是调用HttpServletResponse对象的sendRedirect()方法进行重定向。使用redirect:前缀时,须给出完整的URL路径,如”redirect:/main.jsp”.进而返回给客户端应答!











你可能感兴趣的:(java后台学习)