美文网首页
mvc和springmvc在b/s下的实现原理

mvc和springmvc在b/s下的实现原理

作者: 探索的影子 | 来源:发表于2018-08-11 22:01 被阅读0次

        关于昨天mvc说到是框架,但是不知道你们发现没有这里说的框架和我们平时说的框架比如spring框架,sturts框架等等,感觉有什么不对劲。可以在知乎里面看一下,mvc是否是设计模式。

      这里不过多讨论,毕竟笔主目前也没有参加过什么项目,只是自己做几个不入流小系统。《设计模式》那本书,我也还没有看。所以我妄下结论。


        虽然没有学过这么多更深层次的东西,但是毕竟我们还是要继续学习,马士兵老师也说了一些,不要往一个点深究(当然有时间,想这些还是有很多好处的)。因为这样学习,进度会十分缓慢。

      借视频里面的图让我们来说一说mvc在bs系统下的运行过程

    mvc和springmvc在b/s下的实现原理

    1.用户发出请求到控制器(如果有过滤器另说~废话真多23333)。

    2.控制器接收到请求以后,控制器会请求模型让它去处理。

    3.模型处理完数据以后,就会将请求结果响应回控制器。

    4.控制器接受到模型处理后的数据,就会将数据渲染到视图里面。

    5.然后将视图响应给用户。

    这就是比较传统的步骤。当然如果前端用的是静态页面,用ajax请求,响应给浏览器,那怎么渲染?我就不清楚(毕竟前端学的还是不行),懂得可以在讨论区说一下,还有怎么测试ajax请求?


    springmvc的运行原理

      视频截屏截不完,所以我在网上找了一张图。

    mvc和springmvc在b/s下的实现原理

    这图将步骤过程描述了出来。

    我在重新整理一遍过程。

    1.用户发出请求,但是目的地不同虽说都是控制器,但是springmvc里面是叫前端控制器。

    2.前端控制器向处理处理映射器映射器发出请求,这一步和原来的mvc有所区别。这里因为初学,个人推测是不是url里面比如login.jsp和Login.jsp都是找到LoginController。在servlet的时候是通过注解和xml文件配置实现(注意这里是个人臆测)。在这里加入处理器映射器可能又多了一些操作,看后面学习分解。

    3.然后返回的是一个执行链,其中包括我们需要的handler处理器(其实就是以前的controller),拦截器1,拦截器2等等。执行链本身就是个包装类,包装了上面的一些属性。

    4.前端控制器根据返回的执行链,请求handler适配器执行handler。

    5.handler执行完了以后,会返回模型和视图和视图给前端控制器(这里的视图和最终显示的视图还是有区别的)。

    6.前端控制器将返回来的模型和视图给视图解析器。

    7.视图解析器将视图解析成真正的视图(怎么换的?)

    8.视图解析器将view返回给前端控制器。

    9.前端控制器将model数据渲染到视图里面,然后响应给浏览器。

    虽然自己写的和图步骤编号不同,但是内容步骤是一样的。

    这里有几点问题

    1.处理器映射器返回回来的执行链里面的拦截器是什么时候执行的?

    2.handler适配器,是怎么选择handler的?

    3.返回的model是在哪里真正执行的?

    handler里面执行的,然后将数据存入modelandview里面

    有想法可以在下方一起讨论。

    相关文章

      网友评论

          本文标题:mvc和springmvc在b/s下的实现原理

          本文链接:https://www.haomeiwen.com/subject/krfjbftx.html