SpringMVC框架的工作原理
学习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框架的工作原理的更多相关文章
- 《HiWind企业快速开发框架实战》(1)框架的工作原理
<HiWind企业快速开发框架实战>(1)框架的工作原理 1.HiWind架构 HiWind的基本架构如下: 持久层部分:同时为框架本身的业务服务,也为开发人员的自定义业务服务. 逻辑层: ...
- php面试专题---21、MVC框架基本工作原理考察点
php面试专题---21.MVC框架基本工作原理考察点 一.总结 一句话总结: 会的东西快速过,不要浪费时间,生命有限,都是一些很简单的东西. 1.mvc框架单一入口的 优势 是什么? 可以进行统一的 ...
- ssh框架的工作原理
struts2的工作原理 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextClea ...
- SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
- [Java] SSH框架笔记_SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
- SSH三大框架的工作原理以及流程
Hibernate工作原理以及为什么要用 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
- PHP面试系列 之框架(一)---- MVC框架基本工作原理
题:谈谈你对MVC的认识,介绍集中目前比较流行的MVC框架 考点: (1)MVC工作原理 (2)常见MVC框架 延伸: (1)单一入口的工作原理 (2)模板引擎的理解 (1)MVC工作原理 Model ...
- Python爬虫-Scrapy框架的工作原理
Scrapy框架工作原理 Scrapy框架架构图 Scrapy框架主要由六大组件组成,分别为: 调度器(Scheduler),下载器(Downler),爬虫(Spiders),中间件(Middwa ...
- SSH三大框架的工作原理
Hibernate工作原理 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的< ...
随机推荐
- 怎么给我的Office文档加密
很多的用户朋友都可以熟练的使用office中的Word.Excel和PowerPoint文档,但大家对Office文档加密方式了解的并不多.Advanced Office Password Recov ...
- awk打开多个文件的方法
1.当awk读取的文件只有两个的时候,比较常用的有三种方法(1)awk 'NR==FNR{...}NR>FNR{...}' file1 file2 (2)awk 'NR==FNR{...}NR! ...
- 【Codeforces 723C】Polycarp at the Radio 贪心
n个数,用最少的次数来改变数字,使得1到m出现的次数的最小值最大.输出最小值和改变次数以及改变后的数组. 最小值最大一定是n/m,然后把可以改变的位置上的数变为需要的数. http://codefor ...
- 优先队列priority_queue的比较函数
STL头文件:#include<queue> 优先队列: 默认从大到小排列:priority_queuee<node>q; 自定义优先级的三种方法: 1.重载操作符: bool ...
- [学习笔记]概率&期望
概率的性质 非负性:对于每一个事件$A,0\;\leq\;P(A)\;\leq\;1$. 规范性:对于必然事件$S,P(S)=1$;对于不可能事件$A,P(A)=0$. 容斥性:对于任意两个事件$A, ...
- [bzoj1787][Ahoi2008]紧急集合
Description 给定一棵大小为的树,有组询问,每组询问给三个点,求到这三个点距离和最小的点及最小距离和. Input 第一行两个数. 接下来行,每行两个数表示到有一条边. 最后行,每行个数,为 ...
- JVM学习笔记:JVM的体系结构与JVM的生命周期
1 JVM在java平台中的位置 1.1 Java平台组成 Java平台主要由Java虚拟机和Java API这两部分组成.参考Oracle官网. 1.2 java平台结构图 JDK1.2开始,迫于J ...
- SqlServerException:拒绝对表对象的select,insert权限解决(新建账号导致的问题)
继上一篇文章所述的问题,这次又出现了不能插入的问题.经过定位,也是由于我多选择了一个数据库用户角色的权限导致的,下面是详细的操作步骤 SqlServerException:拒绝了对对象 '...'(数 ...
- Discuz! x3.1 /utility/convert/index.php Code Execution Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Discuz! x3.1的插件/utility/convert/inde ...
- [Android]加密技术
对称加密无论是加密还是解密都使用同一个key,而非对称加密需要两个key(public key和private key).使用public key对数据进行加密,必须使用private key对数据进 ...