您的位置:首页 > 编程语言 > Java开发

springMVC基础篇

2015-05-31 21:45 501 查看



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

一、是什么?

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


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

二、做什么?

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


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


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

三、核心是什么?

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


图一




图二





以下对第一幅图做进一步说明,如果这个理解了那么第二张图也就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来验证它的强大功能哦!加油!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: