学习SpringMVC的工作原理,首先有三个要解决的问题:

(1)DispathcherServlet框架如何截获特定的HTTP请求,交由SpringMVC处理?

(2)位于Web层的Spring容器(WebApplicationContext),如何与位于业务层的Spring容器(ApplicationContext)建立联系,以使Web层的Bean可以调用业务层的Bean?

(3)如何初始化SpringMVC的各个组件,并将它们装配到DispatcherServlet中?

  概念,逻辑,问题。搞懂一个内容,首先重点注意涉及到的所有概念,之后学习这些概念的逻辑关系,是怎么来实现这个内容点的。其中可能会遇到一些问题,在解决问题的同时掌握了这个内容点。

  第一个问题:配置DispatcherServlet,截获特定的URL请求。DispatherServlet是框架的核心控制器,在web.xml文件中进行配置一个Servlet ,并通过<servlet-mapping>指定其处理的URL。所有此配置类型的请求将由DispatcherServlet处理(默认自动加载/WEB-INF/servletname-servlet.xml的Spring配置文件),启动Web层的Spring容器。其中web.xm文件中还配置通过contextConfigLocation参数指定业务层Spring容器的配置文件。之后配置一个Listener来通过contextConfigLocation参数所指定的Spring配置文件启动业务层的Spring容器。

  多个Spring容器之间可以设置为父子间的关系,实现程序的解耦。在这,web层的容器将作为业务层的容器。即web层容器可以引用业务层的容器,而业务层的容器不可以访问web层的容器。当然一个web.xml文件可以配置多个DispatcherServlet来处理多个不同的请求。

  ModelAndView对象既包括视图信息又包括了视图的渲染所需的模型数据信息,先理解为它代表着一个视图。接下来的问题是SpringMVC是如何根据这个对象转向真正的页面?

  同样使用了xml文件配置的方式(这个配置很重要)

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"

  p:viewClass="org.springframeword.web.servlet.view.JstLView"

  p:prefix=""

  p:suffix="*.jsp"/>

  当然,SpringMVC为试图名到具体视图的映射提供了许多可供选择的方法,这里只是其中的一种(通过为视图逻辑名添加前后缀的方式)。

以下为其工作原理图:

SpringMVC框架的工作原理的更多相关文章

  1. 《HiWind企业快速开发框架实战》(1)框架的工作原理

    <HiWind企业快速开发框架实战>(1)框架的工作原理 1.HiWind架构 HiWind的基本架构如下: 持久层部分:同时为框架本身的业务服务,也为开发人员的自定义业务服务. 逻辑层: ...

  2. php面试专题---21、MVC框架基本工作原理考察点

    php面试专题---21.MVC框架基本工作原理考察点 一.总结 一句话总结: 会的东西快速过,不要浪费时间,生命有限,都是一些很简单的东西. 1.mvc框架单一入口的 优势 是什么? 可以进行统一的 ...

  3. ssh框架的工作原理

    struts2的工作原理 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextClea ...

  4. SSH三大框架的工作原理及流程

    Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...

  5. [Java] SSH框架笔记_SSH三大框架的工作原理及流程

    Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...

  6. SSH三大框架的工作原理以及流程

    Hibernate工作原理以及为什么要用 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...

  7. PHP面试系列 之框架(一)---- MVC框架基本工作原理

    题:谈谈你对MVC的认识,介绍集中目前比较流行的MVC框架 考点: (1)MVC工作原理 (2)常见MVC框架 延伸: (1)单一入口的工作原理 (2)模板引擎的理解 (1)MVC工作原理 Model ...

  8. Python爬虫-Scrapy框架的工作原理

    Scrapy框架工作原理 Scrapy框架架构图 Scrapy框架主要由六大组件组成,分别为: ​ 调度器(Scheduler),下载器(Downler),爬虫(Spiders),中间件(Middwa ...

  9. SSH三大框架的工作原理

    Hibernate工作原理 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的< ...

随机推荐

  1. wordpress模板各文件函数解析

    修改主题时发现好多WordPress主题函数都不了解,因此网上摘抄了一份放在自己博客上,便于以后好找. 在WordPress中如何按你的意愿显示页面,关键看你是否了解WordPress主题模板页面.这 ...

  2. SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)【转载】

    最近在学习Spring+SpringMVC+MyBatis的整合.以下是参考网上的资料自己实践操作的详细步骤. 1.基本概念   1.1.Spring Spring是一个开源框架,Spring是于20 ...

  3. CAlayer层的属性

    iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...

  4. 【codevs1170】 双栈排序

    http://codevs.cn/problem/1170/ (题目链接) 题意 给出一个初始序列,判断能否通过两个栈的入栈和出栈操作构造出一个有序序列.若可以,输出字典序最小的方案. Solutio ...

  5. BZOJ1922 [Sdoi2010]大陆争霸

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  6. sersync2 安装,配置

    介绍 rsync rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息.rsync是用 “ ...

  7. AndroidStudio不能解析R的一种可能

    最近在做一个APP,突然就无法编译了,提示信息: 查了半天也没找到好的解决办法,最后想起来误删了一个文件,然后Ctrl+Z回退了事,结果不知为何,那个图片文件损坏了,倒是R无法编译出来,方才报错. 记 ...

  8. 第一个有点作用的PHP扩展

    C/C++去开发PHP扩展 我觉的对于PHP开发人员来说,学的东西非常杂,也非常多,当然了开发PHP扩展也是一个必须要掌握的技能,这里膜拜下大神鸟哥(Laruence)~ 今天要开发的第一个有点功能的 ...

  9. iOS评分(给个好评)

    id 721996244 可以测试 NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app ...

  10. MySQL安装问题

    win8.1安装mysql5.6时遇到问题,主要出现最后一步配置卡在了start server这一步会弹窗配置时间过长. 在网上查找方式并尝试之后都不能解决问题,尝试了卸载软件,清理注册表中的mysq ...