springMVC处理请求的流程

先看几个问题:

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

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


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

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


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

    


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

<servlet>  
    <servlet-name>dispatcherServlet</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springMVC.xml</param-value>
    </init-param>
<!-- 使系统在启动时装在servlet而不是第一个servlet被访问 -->
    <load-on-startup>1</load-on-startup>  
</servlet>  
<servlet-mapping>  
    <servlet-name>dispatcherServlet</servlet-name>  
    <url-pattern>/</url-pattern>  
</servlet-mapping> 

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

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

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

<!-- ViewResolver -->  
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    <property name="prefix" value="/WEB-INF/jsp/"/> <!-- 前缀 --> 
    <property name="suffix" value=".jsp"/>  <!-- 后缀 --> 
</bean> 
比如我们返回来的ModelAndView是index,那么把index进行解析和渲染:

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值