传统原生的JSP+Servlet在开发上过程上虽然简单明了,JSP页面传递数据到Servlet,Servlet整理数据(逻辑开发)或者从数据库提取数据接着再转发到JSP页面上,但是其似乎只能止步于此,我们都知道我们request和response都依赖于url,当我们想要通过针对围绕url进行编程的话单纯的JSP+Servlet在实现上只有过滤器Filter在抵达相对应的Servlet之前起作用,但是如果我们想要在Servlet转发或者重定向之后再进行一些工作呢?一个url对应一个Servlet,项目需求的url稍微复杂了一些,其相对应的Servlet的数量将十分庞大,诸多问题,在这里便不多讲了,而这些问题,基本都在SpringMVC中得以解决。

  SpringMVC围绕着Servlet进行开发Web,代码的实现上同时也依赖Spring开发,不然也不会叫做SpringMVC,本文着重强调的重点在于SpringMVC的工作流程,并不设计具体代码开发,所以并不要求掌握Spring的知识

  1.从第一点开始,请求的开始当然来源的用户访问的url,之后SpringMVC的工作正式开始,就好比一个人进城,必须要先经过城门才能进去,请求也是一样,他必须先经过一个叫做Dispatcher Servlet的前端控制器,

  2.之后,你总要有工作地点吧(请求需要工作),可是不认路啊(请求需要在哪里被分析),所以你需要先去找到地图,然后在地图上找到地点,在SpringMVC中,从Dispatcher Servlet开始率先找到Handler Mapper,该组件映射找到工作点的老板(HandlerAdapter)。

  3.到这里我们仅仅是知道怎么找到工作点而已,而且路径是从城门(Dispatcher Servlet前端控制器)开始的,我们按照地图(HandlerMapper组件里面的信息)的指引找到了指使我们工作的HandlerAdapter。

  4.老板指使我们工作,此时我们化身为员工(Handler,也就是请求所对应的事件),我们工作的内容就控制层(也就是MVC中的C)下请求url所对应的方法,工作完成之后,我们需要提交工作数据呈现给老板看(返回ModelAndView对象给HandlerAdapter)

  5.之后老板把你的工作数据贴到城门上(将ModelAndView对象返回给DispatcherServlet),再经历一番修饰后呈现给来往的商人(用户)

  一个从大局上观看的基本流程大概就是如此,然而SpringMVC在具体的实现上远比这复杂许多,基本上在普通项目开发下我们在配置完SpringMVC要求配置环境后,所需要开发的地方就只有视图层和控制层,控制层里面的代码一般是有逻辑层和数据层的实现。

  下面是我用思维导图制作的流程,比文字看起来直观一些。

  

了解SpringMVC框架及基本工作流程的更多相关文章

  1. SpringMVC的简介和工作流程

    一.简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.Spri ...

  2. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

  3. SSH三大框架的各自工作流程

    一.Struts2的工作流程:1.用户在客户端发起请求,客户端会初始化一个servlet容器请求:2.servlet容器把请求会传递给context容器,context容器找到目标web工程.3.进行 ...

  4. springmvc的框架搭建及工作流程

    1.搭建要点 web.xml: <servlet-mapping>     <servlet-name>springDispatcherServlet</servlet- ...

  5. SpringMVC的应用与工作流程解析

    一:SpringMVC是什么 SpringMVC只是Spring的一个子框架,作用学过Struts2的应该很好理解,他们都是MVC的框架.学他就是用来代替Struts2的,那么为什么不用Struts2 ...

  6. springMVC框架介绍以及运行流程(图解)

    1 Springmvc是什么? spring web mvc和struts2都属于表现层的框架,spring web mvc是spring框架的一部分(所以spring mvc与spring之间不需要 ...

  7. springMVC的拦截器工作流程

    首先,springmvc的拦截器配置在这就不多说了.主要讲一下拦截器的三个方法的执行顺序. preHandle方法一定是最先执行的方法,如果它返回为false下面的方法均不执行. postHandle ...

  8. J2EE进阶(六)SSH框架工作流程项目整合实例讲解

    J2EE进阶(六)SSH框架工作流程项目整合实例讲解 请求流程 经过实际项目的进行,结合三大框架各自的运行机理可分析得出SSH整合框架的大致工作流程. 首先查看一下客户端的请求信息: 对于一个Web项 ...

  9. springMVC框架集成tiles模板

    将tiles模板集成到springMVC框架下,大概流程如下: 1.在配置文件中加入tiles支持 我的servlet配置文件名为spring-mvc.xml.具体配置如下: <?xml ver ...

随机推荐

  1. DataTables 控件使用和心得 (2) - 参数Options

    什么是DataTables参数(Options) 上篇我们说了,DataTables控件的加载函数dataTable()一般都有一个对象参数,这个对象参数就是整个DataTables控件的参数(Opt ...

  2. 备忘: Install MODI for use with Microsoft Office 201x

    简介 Microsoft Office 2010 中删除了 Microsoft Office Document Imaging (MODI).本文提供了在计算机上安装 MODI 的步骤,还说明了重新获 ...

  3. [PCB设计] 2、畸形PCB板子的制作核心——AD14导入dwg格式文件的方法

    本文参考园友:The Zone of up.Craftor http://www.cnblogs.com/craftor/archive/2012/06/28/2567259.html 硬件工程师在做 ...

  4. 手把手教你用python打造网易公开课视频下载软件4-图形化界面

    上一篇讲解完函数:def getdownLoadInfo (url): 传入公开课的url地址,就可以提取课程的信息,这一篇讲解一下如何编写图像化界面.大概思考一下图像化界面需要的内容: (1)一个标 ...

  5. SignalR + KnockoutJS + ASP.NET MVC4 实现井字游戏

    1.1.1 摘要 今天,我们将使用SignalR + KnockoutJS + ASP.NET MVC实现一个实时HTML5的井字棋游戏. 首先,网络游戏平台一定要让用户登陆进来,所以需要一个登陆模块 ...

  6. Devexpress 等待窗体

    加载窗体以及等待窗体 程序加载时,需要等待加载完成后在显示 窗体显示顺序 1. 给用户看的等待窗体 2. 加载完成后的主窗体 代码如下: 1. 等待窗体代码 #region using using S ...

  7. Oracle日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...

  8. redis常用命令小结

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/107.html?1455867352 1.redis-benchmarkr ...

  9. Session自定义存储及分布式存储

    默认情况下,PHP 使用内置的文件会话保存管理器(files)来完成会话的保存.我们无需设置,PHP默认将session以文件的形式保存到服务器. 通过调用函数 session_start() 即可手 ...

  10. qqzoneQQ空间漏洞扫描器的设计attilax总结

    qqzoneQQ空间漏洞扫描器的设计attilax总结 1.1. 获取对方qq(第三方,以及其他机制)1 1.2. QQ空间的html流程1 1.3. 判断是否有权限1 1.4. 2015年度Web服 ...