springMVC基础篇



对于一个不懂技术的人来说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来验证它的强大功能哦!加油!

时间: 2024-07-28 18:14:53

springMVC基础篇的相关文章

springmvc基础篇—掌握三种处理器

随着springmvc的广泛使用,关于它的很多实用有效的功能应该更多的被大家所熟知,下面就介绍一下springmvc的三种处理器: 一.BeanName处理器(默认) <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/

springmvc基础篇—处理图片静态资源文件

当我们在web.xml中对DispatcherServlet的过滤设置为/ 的时候,表示对所有的路径进行拦截过滤,那么不可避免的就会产生一个问题,那就是像图片这种静态资源文件我明明引用路径有,但就是加载不出来图片的情况,针对这种情况,下面做一些处理: 找到spring-mvc.xml配置文件 在里面写加上这行代码即可. <!-- 处理图片静态资源 --> <mvc:resources location="/images/" mapping="/images/

springmvc基础篇—使用注解方式为前台提供数据

一.新建一个Controller package cn.cfs.springmvc.service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.stereotype.Service; import cn.cfs.springmvc.domain.User; @Service public

springmvc基础篇—修改默认的配置文件名称及位置

springmvc的默认配置文件是放在WEB-INF下的,叫action-servlet.xml.根据咱们编程的习惯,一般都将配置文件放到src的根目录下,那么如何将这个文件迁移过来呢?其实很简单,请看: 第一步:将原有的action-servlet.xml文件拷贝一份到src目录下,改名为:spring-mvc.xml(这个名称就任意起啦,注意和下面web.xml中引用的文件名对应上即可). 第二步:修改web.xml文件,找到配置spring分发器的servlet,也就是配置Dispatch

SpringMVC 基础教程 简单入门实例

SpringMVC 基础教程 简单入门实例 标签: Spring MVCspringmvcSpringMVC教程基础教程SpringMVC实例 2013-05-09 13:44 170403人阅读 评论(69) 收藏 举报  分类: Java(23)  Spring框架(3)  版权声明:本文为博主原创文章,未经博主允许不得转载. spring MVC 入门教程二: 一个简单的入门实例教程 该实例的源码和实例中的jar 源码:http://download.csdn.net/detail/swi

SpringBoot图文教程「概念+案例 思维导图」「基础篇上」

有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 每个知识点配套自测面试题,学完技术自我测试 本文初学向,所以希望文中所有的代码案例都能敲一遍 大哥大姐新年好,点赞转发不要少 **文本已收录至GitHub开源仓库 Lu_JavaNodes 码云仓库地址Lu_JavaNodes ,**包含教程涉及所有思维导图,案例代码和后续讲解视频,欢迎Star增砖添瓦. 前言 庚子鼠年,封村儿,在试过了睡觉,打麻将,做凉皮,做蛋糕之后,我不由的陷入了对人生和社会的

oracle(sql)基础篇系列(五)&mdash;&mdash;PLSQL、游标、存储过程、触发器

  PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语言是为了补充SQL语言的,是带有了分支和循环的语言. PL/SQL 语法 基本数据类型声明 declare v_name varchar2(20); v_temp number(1); v_count binary_integer := 0; v_sal number(7,2) := 4000.00

Hybrid APP基础篇(四)-&gt;JSBridge的原理

说明 JSBridge实现原理 目录 前言 参考来源 前置技术要求 楔子 原理概述 简介 url scheme介绍 实现流程 实现思路 第一步:设计出一个Native与JS交互的全局桥对象 第二步:JS如何调用Native 第三步:Native如何得知api被调用 第四步:分析url-参数和回调的格式 第五步:Native如何调用JS 第六步:H5中api方法的注册以及格式 进一步完善JSBridge方案 思路 实现 注意 完整的JSBridge 完整调用流程图 另外实现:不采用url sche

网络基础篇----计算机网络基本概述(1)

享受生活  热爱挑战                                                                刘明远分享    一   计算机网络基本概述(1) 每章一段话: 不要让自己闲下来,给自己找些事情做.哪怕是看看书. 正文   (提示:本章内容比较无聊,最好当看故事一样来看,不必记下只需了解,内容基础) 1什么是计算机网络 号称新的"电力火花"是以计算机.通信.信息技术为支撑的计算机网络技术. 计算机网络将两台或多台计算机通过电缆或网络设