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中的< ...
随机推荐
- IntelliJ IDEA 使用心得与常用快捷键
那种酸爽,根本说不出来—————————————————————————— by: Jimi没有BondJimi是谁? 就是洒家啊! 刚开始学习写Java的时候,用的eclipse,正式工作后,主 ...
- Html一天入门
一.什么是HTML 1.html: HyperText Markup Language 超文本标记语言,是最基础的网页语言,而且都是由标签组成. 2.基本格式: <html> <he ...
- 【C++实现python字符串函数库】strip、lstrip、rstrip方法
[C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...
- HDU2222 Keywords Search
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- [SourceControl 有关SVN的目录:trunk、branches、tags]
原文链接:http://techlife.blog.51cto.com/212583/223704/
- InternalsVisibleToAttribute——把internal成员暴露给指定的友元程序集
友元程序集简介 我们知道一个类中被定义为internal的成员(包括类型.方法.属性.变量.事件)是只能在同一个程序集中被访问到的(当然了,我这里说的是正常的方式,不包括通过反射来访问).这个规则在. ...
- CentOS普通用户添加sudo权限
1. 进入超级用户模式 su root 2. 添加sudoers文件写权限. chmod u+w /etc/sudoers 3.添加username到sudoers文件里(参考"root A ...
- ( 译、持续更新 ) JavaScript 上分小技巧(二)
考虑到文章过长,不便于阅读,这里分出第二篇,如有后续,每15个知识点分为一篇... 第一篇地址:( 译.持续更新 ) JavaScript 上分小技巧(一) 第三篇地址:( 译.持续更新 ) Java ...
- 软件工程个人作业 - week1
<构建之法>阅读疑惑: 如何寻找开发效率和性能的均衡点?显然开发效率强调封装,重视代码重用.但是遗憾的是代码重用往往泛化了数据特征,降低了效率. 如何“公平”分配工作?尤其是团队中人员参差 ...
- 使用Wireshark 抓取数据包
Wireshark 是一个网络封包分析软件.网络封包分析软件的功能是获取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 一 ...