让我们一起走进SpringMvc(一)

在讲述之前,首先讲一下什么是springMvc呢?

       肯定很多人会说,这个谁不知道啊,springMvc不就是用来前后端交互的嘛,他就是一个框架嘛,让开发变得简单。当然这样理解也不是说不可以,只能说这样有点俗,哈哈  ,没有专业气质。好了 ,开个玩笑,现在可以正式说了,就我自己理解来说,springMvc是spring的一个子框架,它是基于mvc模式下的一个轻量级框架,无需中间整合层整合。它能够把业务处理和逻辑控制分离的很清楚。并且最舒服的是方便开发者的开发工作 (这句话显得我也没有专业气质,哈哈)。

既然说到mvc,那么何为mvc呢?

       mvc它的全英文是model,view,controller,三个单词的首字母小写,通过这几个单词我想你应该知道了吧,没错,就是模型,视图和控制器。那么可能你又想问:“什么是模型呢?什么是视图呢?什么是控制器呢?”;看知道你想问的这么多,我瞬间想说:”那有那么多问题,自己百度去”。但是博主是不会说的。博主还是爱你们的,我就和你们解释一下,模型(model)它其实就是存储数据的一个对象或者java的pojo。通常就是在与数据库交互时拿到的结果集,它将把这些数据返回给控制器。控制器就是作用在视图和模型上的,把二者分离。(它就相当一个桥梁,沟通你我的心)它通常把model返回的数据进行渲染,进过处理返回给view。进行展示给用户。

上面啰嗦了很多,下面我要要进行正题了,springMvc它是如何工作的?它的底层是怎么实现的?

      可能我在这样还要啰嗦一下,(考虑哪些没有基础的人)一个web项目的启动,它的入口是究竟是什么?现在我来告诉你,每次服务启动时,访问该web项目,它会首先去你web-INF下的web.xml,这里就是入口,先上截图在解释:

让我们一起走进SpringMvc(一)

     在这里对应配置你会发现,和通常的springMvc不一样,当然不一样,因为这是博主自己写的springmvc,原理一样,我就照我自己写的这个给你们说明,我们可以看到 servlet-mapping里面有一个url-pattern,对这就是入口,我配置的是/*,因为我目的为了让一切请求都可以进来,方便我调试自己写的这个小框架,在实际工作中,大家根据需求进行配置。请求进来,会找到那个servlet-mapping里面的servlet-name,根据配置的属性值,到达servlet标签中的servlet-name,到这里就要正式进入springmvc的拦截入口了 ,根据配置的路径会进入控制器DispatcherServlet,在这里就开始工作了。

    我先大致和大家讲一下这个流程,等后来文章我会详细的讲述,并且告诉大家底层的运转。

       1.拦截请求,进入前端控制器(dispatcherServlet),前端控制器会根据请求去找处理器映射器(HanderMapping)处理

       2.处理器映射器会根据这个请求找到对应的处理器执行链,并返回给前端控制器

       3.前端控制器会根据返回的处理器,调用处理器适配器来调用该处理器(controller),处理完成返回ModelAndView给处理器适配器

       4.处理器适配器把收到的ModelAndView返回给前端控制器,前端控制器接收到,在把ModelAndView交给视图解析器。

      5.视图解析器解析view,然后把数据渲染到view上去,返回给前端控制器,从而返回给用户查看。

到现在为止,大家应该心里大致知道了springmvc的整体运行流程,博主先说到这里,要说的东西太多了 ,未完待续(说的不好的地方请大家多担待。)