之前有一次在面试其中被问到了这个问题。当时说得不是非常清楚,有些细节的地方想不起来了。所以在这里从新回想和总结一下SpringMVC的起步。请求的运行过程。

在SpringMVC其中。跟请求(Request)有关系的有下面几个部分

  • DispatcherServlet
  • HandlerMapping
  • Controller
  • ViewResolver
  • View
事实上我要做的就是用几个剪头把上边列表中的五个部分连起来,这样就能够清晰的看出来请求是如何走的了。

首先请求从浏览器发送出来到了server,我用的是Tomcat,通过在web.xml中配置的servlet与路径的映射,把请求发送到了DispatcherServlet上。该servlet是tomcat到SpringMVC的一个过度,当DispatcherServlet接收到请求之后,它就会通过HandlerMapping以及请求url来找到对应的Controller,Controller是我们通过注解,在服务启动的时候直接自己主动装配到spring应用上下文其中的对象。当请求发送到Controller之后。通过匹配url(@RequestMapping)来找到对应的方法来处理请求,在请求被处理之后,被匹配的方法须要返回一个逻辑视图的名称,能够理解为对请求的响应,那么后来这个逻辑视图名称返回给谁了呢。这个详细SpringMVC是怎么处理的我没有太细的研究,我仅仅是知道最后我们自己配置的视图解析器(ViewResolver)接收到了这个逻辑视图名称。通过我们在配置时候设定前后缀。找到响应的文件多种情况下为jsp文件(也就是以上列表中的View视图)。

请求经过以上这一番处理最后响应给浏览器一个html页面。上边的描写叙述可能会有一些绕,不好理解 ,我找了一张图片来说明这个过程



这张图片再加上我的描写叙述应该能够清楚的描写叙述出SpringMVC接收到请求的这么一个过程。

spring实战笔记6---springMVC的请求过程的更多相关文章

  1. SpringBoot对比SpringMVC,SpringMVC 处理请求过程

    (问较多:1.SpringBoot对比SpringMVC.2.SpringMVC 处理请求过程.问:springboot的理解 Spring,Spring MVC,Spring Boot 三者比较 S ...

  2. 如何在springmvc的请求过程中获得地址栏的请求

    由于spring的dispatchservlet会通过当前的handlermapping来将当前地址栏的请求映射为实际的项目目录结构,所以使用普通的request.getRequestURL()是无法 ...

  3. Spring实战笔记2---Bean的装配

    创建应用对象之间协作关系的行为通常成为装配,该篇的主要内容有两个,一个Spring装配Bean的几种方式以及Spring表达式,事实上这两者是分不开的,在Spring中,对象无需自己负责查找或者创建与 ...

  4. [Spring实战笔记]4面向切面编程的Spring-代理

    代理 代理(Proxy)是一种设计模式,可以在目标对象实现的基础上,扩展目标对象的功能. 代理对象是对目标对象的扩展,并会调用目标对象. 三种代理模式 静态代理 100% 代理对象与目标对象要实现相同 ...

  5. Spring实战笔记

    晚上看了这本书的前面几章,记录一下自己看到的要点. 全书分为四大部分,Spring核心,web,后台相关,与其它框架集成.今天主要看了第一部分. Spring最根本的使命是简化Java开发,全方位的简 ...

  6. Spring 学习笔记(3)Spring MVC

    一.什么是 MVC MVC 实际上就是一种设计模式 Model-View-Controller Model 模型其实就是数据,Dao,Bean 等等 View 视图就是所看到的东西,网页,JSP,展示 ...

  7. Spring框架系列(14) - SpringMVC实现原理之DispatcherServlet处理请求的过程

    前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet ...

  8. 《Spring实战》学习笔记-第五章:构建Spring web应用

    之前一直在看<Spring实战>第三版,看到第五章时发现很多东西已经过时被废弃了,于是现在开始读<Spring实战>第四版了,章节安排与之前不同了,里面应用的应该是最新的技术. ...

  9. 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

随机推荐

  1. Mac 安装Fiddler 抓包工具

    官方安装文档https://www.telerik.com/download/fiddler/fiddler-osx-beta 如果输入mono Fiddler.exe报下面这个错误 WARNING: ...

  2. Yii2 advance swiftmailer 不能发送邮件

    我用的是Yii2高级模板,在配置好邮箱后,并编写测试,测试结果表明是发送成功的,但我的邮箱就是接受不了邮件. 经过排查发现,是由 common/config/main-local.php 文件的 'u ...

  3. More Effective C++ - 章节二 : 操作符(operators)

    5. 对定制的 "类型转换函数" 保持警觉 允许编译器执行隐式类型转换,害处多过好处,不要提供转换函数,除非你确定需要. class foo { foo(int a = 0, in ...

  4. 【转载】WampServer图标显示红色后变成橙色怎么解决

    WampServer就是Windows Apache Mysql PHP集成安装环境,即在window下的apache.php和mysql的服务器软件. 工具/原料   WampServer 方法/步 ...

  5. 事务场景中,抛出异常被catch后,如果需要回滚,一定要手动回滚事务

    Spring使用声明式事务处理,默认情况下,如果被注解的数据库操作方法中发生了unchecked异常,所有的数据库操作将rollback:如果发生的异常是checked异常,默认情况下数据库操作还是会 ...

  6. 杭电 1260 Tickets

    Description Jesus, what a great movie! Thousands of people are rushing to the cinema. However, this ...

  7. 算法导论 第九章 中位数和顺序统计量(python)

    第i个顺序统计量:该集合中第i小的元素(建集合排序后第i位 当然算法可以不排序) 中位数:集合中的中点元素 下中位数 上中位数 9.1最大值和最小值 单独的max或min每个都要扫一遍 n-1次比较 ...

  8. xtu summer individual 2 D - Colliders

    Colliders Time Limit: 2000ms Memory Limit: 262144KB This problem will be judged on CodeForces. Origi ...

  9. Codevs 队列练习 合并版

    3185 队列练习 1  时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个队列(初始为空),只有两种操作入队和出队,现给出这 ...

  10. 汕头市赛srm8 C-3

    n<=100000个点m<=300000条边有权无向联通图,给出K<=10000个特殊点求K个点中任意两点最短路的最小值. 方法一:K小,随便搞.先构造最短路树,在最短路树上Dijk ...