springMVC处理请求的流程

先看几个问题:

     1、我们在浏览器的地址栏输入url后是怎么传到springMVC的controller层(控制器类)的?

     2、之后又是怎么把页面传回来的?


看了很多springMVC的book还有blog。感觉很多都写得太过官方了,不太适合刚开始学springMVC的同学看。

现对springMVC处理请求的流程做出简单通俗的解释,希望各位刚学的同学少走弯路。有什么不对的地方,也请指正。


1、springMVC处理请求的流程图:

     springMVC处理请求的流程_第1张图片


步骤1)、我们在控制台输入url,发送请求后,会被我们在web.xml配置的前端控制器(DispatcherServlet)拦截,代码如下:

  
    dispatcherServlet  
    org.springframework.web.servlet.DispatcherServlet  
    
        contextConfigLocation
        classpath:springMVC.xml
    

    1  
  
  
    dispatcherServlet  
    /  
 

由上面的代码可以知道我们的前端控制器是springMVC.xml。

步骤2)、之后前端控制器把委托请求给页面控制器(controller层),页面控制器的RequestMapping注解能映射我们的对应url请求(至于为什么会能映射到,这个是在我们的springMVC.xml前端控制器配置了扫描controller层的包的注解和开启了注解驱动)。
步骤3、4)、调用业务对象和返回模型数据是我们controller层和service层的交互。

步骤5)、返回ModelAndView,比如return "index";(逻辑视图名)。
步骤6)、由我们在前端控制器配置的视图解析器进行视图解析(View)视图渲染(Model),代码如下:

  
  
      
       
 
比如我们返回来的ModelAndView是index,那么把index进行解析和渲染:

        1、视图解析:ViewResolver, ViewResolver将把逻辑视图名index解析为具体的View----/WEB-INF/jsp/index.jsp

        2、视图渲染:View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构

步骤7)、解析渲染完毕后,返回控制权给前端控制器(DispatcherServlet)。

步骤8)、返回响应给用户,这时候用户就可以看到浏览器的index.jsp页面和后台传过来的数据。到此一个流程结束。

你可能感兴趣的:(springMVC)