springmvc请求图

SpringMVC内部的执行流程
1.用户发起到达中央调度器DispatcherServlet
2.中央调度器DispatcherServlet把请求(some.do)交给了处理器的映射器
处理器的映射器:框架中的一组类,这些类都实现了HandlerMapping接口。
处理器的映射器作用:根据请求的信息(some.do)找到对应的处理器对象(MyControler),
MyController对象是在springmvc的配置文件中定义的,MyController的对象是存放在springmvc的容器中。
意味要从springmvc的容器中获取MyController的对象,
WebApplicationContext ctx = new ...
MyController controller = (MyController)ctx.getBean("some.do");

找到的MyController对象是放在【处理器执行链】的对象中保存。

3.中央调度器DispatcherServlet把【处理器执行链】保存的MyController交给了处理器的适配器
处理器的适配器:框架中的一组类, 都实现HandleAdapater接口。
处理器的适配器作用:能够找到处理器对应的适配器对象,通过适配器对象执行处理器方法(handleRequest())
并把返回值ModelAndView交给了DispatcherServlet

通过处理器的适配器执行处理器方法。返回ModelAndView

4.中央调度器DispatcherServlet把返回值ModelAndView交给了视图解析器
视图解析器:框架中的一组类,这些类都实现了ViewResolver接口
视图解析器作用:组成视图的完整路径,并创建视

5.中央调度器DispatcherServlet调用View的方法,view.render():视图的渲染方法。
view.render()的作用:
1)把ModelAndView中Model的数据放入到request, 执行request.setAttribute();
2)执行对视图View的forward, 执行request.getRequestDispatcher("/WEB-INF/view/show.jsp").forward()

Springmvc完整执行流程图

java--springmvc的更多相关文章

  1. [Java] SpringMVC工作原理之一:DispatcherServlet

    一.DispatcherServlet 处理流程 在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作.在看 Di ...

  2. JEECG(二) JEECG框架下调用webservice java springmvc maven 调用 webservice

    JEECG系列教程二 如何在JEECG框架下使用webservice 本文所使用的webservice是c#开发的 其实无论是什么语言开发的webservice用法都一样 java springmvc ...

  3. java springMVC 报400错误问题

    java springMVC 中如果报400错误 很有可能是因为时间转换的问题. 我在项目中就遇到了这个问题,是因为我少引用了一个库,如果是因为时间问题的话添加以下依赖就可以解决. <depen ...

  4. java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis

    A 调用摄像头拍照,自定义裁剪编辑头像 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技术:313596790freemaker模版技术 ,0个代码不用写 ...

  5. Java SpringMVC实现国际化整合案例分析(i18n)

    所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语.英语等.下面我将以具体的实例来举例说明: (1)新建动态Javaweb项目,并导入几个SpringMVC必需的 ...

  6. java springmvc Log4j filter等(稍微完善一下项目)

    仅供参考-接上文 springmvc  1.设置Log4jConfigListener日志监听(可以为开发调试.发布后运行的意外调试.等) 在src/main/resources目录下新建log4j. ...

  7. BootStrap-validator 使用记录(JAVA SpringMVC实现)

    BootStrap 是一个强大的前面框架,它用优雅的方式解决了网页问题.最近正在使用其开发网站的表单验证,一点体会记录如下: 注:本文中借鉴了博客Franson 的文章<使用bootstrapv ...

  8. [java]SpringMVC+Swagger实现自动接口

    项目使用SpringMVC+Maven 1.在站点项目的POM文件中引入Swagger的jar包 <properties> <project.build.sourceEncoding ...

  9. 前后端分离跨服务器文件上传-Java SpringMVC版

    近来工作上不上特别忙,加上对后台java了解一点,所以就抽时间,写了一个java版本的前后端分离的跨服务器文件上传功能,包括前后端代码. 一.Tomcat服务器部分 1.Tomcat服务器 单独复制一 ...

  10. Java SpringMVC 定时任务

    1.web.xml 2.spring-mvc.xml <?xml version="1.0" encoding="UTF-8"?> <bean ...

随机推荐

  1. 关于LuckyE博客的前言

    第一次开始尝试怎么写博客,也不知道写点什么好...... 开始写博客的原因其实很多,主要原因是因为最近考出cisp-pte证书,然后前几天电话面试某比较有名的安全公司(x盟)的渗透测试工程师实习生被撸 ...

  2. twig 模板控制器对应列表

    {{ render(controller(metas.header,{request:app.request, course: course, member: member|default(null) ...

  3. 洛谷 题解 P2010 【回文日期】

    因为有8个字符,所以可得出每一年只有一个回文日期. 因此只要判断每一年就行了. 做法: 我们先把年倒过来,例如2018年就倒为8102,就得出8102就是回文日期的后四个字符,我们只要判断一下有没有这 ...

  4. (模板)poj3461(kmp模板题)

    题目链接:https://vjudge.net/problem/POJ-3461 题意:给出主串和模式串,求出模式串在主串中出现的次数. 思路:kmp板子题. AC代码: #include<cs ...

  5. [转帖]tr命令的用法

    tr命令的用法 https://www.cnblogs.com/bingguoguo/articles/9188703.html tr命令   tr命令可以对来自标准输入的字符进行替换.压缩和删除.它 ...

  6. mysql中的反引号``

    [1]反引号`,数字1左边的符号.tab键上面的符号. 它是为了区分MYSQL的保留字与普通字符而引入的符号. 不加反引号建的表不能包含MYSQL保留字,否则出错 如上图,很明显的,如果我们直接建立名 ...

  7. 【转帖】lmbench的简单使用

    https://www.cnblogs.com/mutong1228/p/10485840.html 下载地址 http://www.bitmover.com/lmbench/ tar -zxvf l ...

  8. 利用js对象将iframe数据缓存, 实现子页面跳转后, 返回时不丢失之前填写的数据

    利用js对象将iframe数据缓存, 实现子页面跳转后, 返回时不丢失之前填写的数据 实现描述:将数据存放在js对象中, 然后放在父页面的document对象中, 在页面刷新的时候将父页面的值取出来, ...

  9. 1.3.1 Lock接口及其实现

    1.锁的本质 2.Lock接口使用ReentrenLock 3.读写锁使用 4.读写锁实现 Lock接口方法 有点意思的是lockInterruptibly(), 只要没有获取到锁就会一直等待,直到某 ...

  10. KMP算法最浅显理解——一看就明白

    https://blog.csdn.net/starstar1992/article/details/54913261 说明 KMP算法看懂了觉得特别简单,思路很简单,看不懂之前,查各种资料,看的稀里 ...