概述
容器:就是用来存放东西,spring容器就是用存放spring的bean的,可以简单理解为一个数组.
上下文环境:某某上下,应该一用中可以有多个上下文.比如你自己可以简称为张三上下文,你的手 张三的手上下文,就是代表了一个特定的对象,里面放一下关于这个特定对象信息,凡是你想获取什么东西,都可以从对象的上下文中获取.
一般web应用都需要一个 /webapp/WEB-INF/web.xml的文件,又叫做部署描述符,正常情况下,没有这个tomcat会认为这不是一个web应用,部署不到servlet容器中去.
web.xml可以理解为代表了一个web应用,他是由web容器(tomcat)加载使用,里面可以定义三大组件:
- Listener(监听器):监听ServletContext对象的生命周期,在其中做一些事情.
- Filter(过滤器):用来对请求的拦截过滤.
- Servlet:用来做请求的转发和响应
web容器加载web.xml中元素的顺序
在加载web.xml时候先生成了一个ServletContext,然后把context-param中配置的参数值放到ServletContext中,然后在操作Listener,Filter,Servlet等等.这些对象都可以通过ServletContext获取到.
所以顺序应该是: servletcontext->context-param -> listener -> filter -> servlet
ServletContext应用上下文
ServletContext代表了整个应用,一个应用只有一个上下文,在任何代码的都可以获取到上下文里面的东西,里面存放了很多初始化时候的对象.
Spring和SpringMVC框架
这是两个框架也是两个容器熟称父子容器,一般Spring用来管理Bean的依赖(IOC)还是一项就是AOP,这是Spring的核心功能点,主要的就是用来管理Service层的bean.
在容器启动的时候会加载在web.xml中配置的spring的配置文件地址.
让后把生成的WebApplicationContext放到ServletContext中,这用以后就能用到.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class> org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
SpringMVC是一个Controller层框架,主要是用来做请求的控制转发的,
SpringMVC容器初始化完成之后,会把Spring容器设置成SpringMVC的父容器,这样SpringMVC可以用Spring容器里面的东西,但是Spring用不到SpringMVC里面的东西.