码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC基础篇

时间:2015-05-31 23:23:54      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:spring mvc



        对于一个不懂技术的人来说springMVC是什么呢?有人会说:“春天里的MVC”这也许就是春天里的几个字母,不错在我没有接触java框架的时候留给我的记忆就是这样的。那么现在接触到了就让我们来好好讨论一下springMVC到底是什么吧?

一、是什么?

        百度百科上这样解释:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring WebFlow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的Spring Web 框架还可以是 Struts这样的 Web 框架。

    如果嫌弃这些太官方的话,就加入自己的理解:通过它的名字就可以理解为是“spring+MVC”这个框架做的一件事就是将它们两个结合起来,发挥springMVC最大的功能,从而使java开发更方便快捷。

二、做什么?

         说到做什么?不得不想为什么要用它,别的是否可以代替呢?那么就带着这一系列的疑问来探索吧!

         以上也说到它是springMVC的结合,既然结合那么必然是因为一方存在着一些不足,那么接下来就看看是什么让它们两个走到了一起。

        通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer PagesJSP)技术、VelocityTilesiTextPOISpring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。SpringMVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。通过以上的解释是不是有点顿悟,利用MVCspring的各个角色分离,从而使它们之间的定制更灵活。

三、核心是什么?

         谈到核心不得不想到两张原理图:

         图一

技术分享

         图二

 技术分享

         以下对第一幅图做进一步说明,如果这个理解了那么第二张图也就OK啦!

     1.用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获

    2.DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回

    3.DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)

    4.提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

    HttpMessageConveter:将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息

    数据转换:对请求消息进行数据转换。如String转换成Integer、Double等

    数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等

    数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中

    5.Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象

    6.根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet

    7.ViewResolver 结合Model和View,来渲染视图

    8.将渲染结果返回给客户端。

四、总结

        以上只是对springMVC的基础了解,别忘了纸上得来终觉浅,所以在今后的学习中还是要进一步实践,并多做一些demo来验证它的强大功能哦!加油!

springMVC基础篇

标签:spring mvc

原文地址:http://blog.csdn.net/liu_yujie2011com/article/details/46292161

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!