servlet的生命周期
1.所有的servlet接口实现类,只能由http服务器(tomcat)负责创建
2.servlet对象的创建时机
1)大多数正常情况下,只有当一个用户向tomcat讨要某个servlet的时候,此时tomcat才会负责创建这个servlet的对象
2)在人工干预的情况下,要求tomcat启动时,就创建某个servlet对象
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
<load-on-startup>8888</load-on-startup> //只要写入一个大于0的整数
</servlet>
3)一个servlet接口实现类,在tomcat运行期间,只能被创建一个实例对象
4)tomcat关闭时,由tomcat负责销毁所有的servlet对象
请求对象和响应对象的生命周期
在Tomcat接收到来自于浏览器发送的一个请求协议包时,自动为这个请求协议包创建一个请求对象和一个响应对象
Tomcat调用对应Servlet时,负责将请求对象和响应对象作为实参传递到[doGet]/[doPost]
在[doGet]/[doPost]执行完毕后,意味着本次请求处理完毕了。在Tomcat推送响应包之前,又Tomcat负责销毁与本次请求关联的请求对象和响应对象
全局作用域对象(servletContext)的声明周期
贯穿整个网站的运行期间
1)http服务器在启动时,自动为当前网站创建一个全局作用域对象
2)一个网站只有一个全局作用域对象
3)在http服务器关闭时,有http服务器负责销毁网站中的全局作用域对象
cookie的生命周期
1.由servlet调用构造方法创建
2.默认情况下,cookie对象存放在浏览器内存中,意味着浏览器关闭,cookie就被销毁
3.特殊情况下,要求浏览器在接收的cookie对象存放在客户端计算机硬盘的同时指定cookie对象在硬盘上的存活时间。在未达到存活时间之前,关闭浏览器,关闭服务器,关闭计算机都不会导致cookie对象销毁
4.cookie.setMaxAge(存活时间)以秒为单位
会话作用域对象(httpsession)的生命周期
1.用户第一次向tomcat索要会话作用域对象时,由tomcat负责生成
2.由于JSESSIONID只能存放在浏览器内存中,所以浏览器在关闭时,用户与自己的httpsession对象失去联系
3. httpsession对象空闲时间达到最大空闲时间,此时tomcat认为当前空户放弃了自己的httpsession,此时进行销毁
dom对象的生命周期
1.浏览器在接收到html文件之后,将HTML文件标签加载到浏览器缓存中,每当加载一个html标签时候,自动为这个标签生成一个实例对象,这个实例对象就是DOM对象
2.在浏览器关闭之前或者浏览器请求其他资源文件之前,本次生成的DOM对象一直存活在浏览器缓存中
3.在浏览器关闭时候,浏览器缓存中dom对象将要被销毁
4.在浏览器请求到新资源文件后,浏览器缓存中原有的dom对象将会被覆盖
springbean的生命周期
1.spring容器根据配置中的bean定义中实例化bean
2.spring使用依赖注入填充所有属性,如bean中所定义的配置
3. 如果 bean 实现 BeanNameAware 接口,则工厂通过传递 bean 的 ID 来调用 setBeanName()。
4. 如果 bean 实现 BeanFactoryAware 接口,工厂通过传递自身的实例来调用 setBeanFactory()。
5. 如果存在与 bean 关联的任何 BeanPostProcessors,则调用 postProcessBeforeInitialization() 方法。
6. 如果为 bean 指定了 init 方法( 的 init-method 属性),那么将调用它。
7. 最后,如果存在与 bean 关联的任何 BeanPostProcessors,则将调用postProcessAfterInitialization() 方法。
8. 如果 bean 实现 DisposableBean 接口,当 spring 容器关闭时,会调用 destory()。
9. 如果为 bean 指定了 destroy 方法( 的 destroy-method 属性),那么将调用它。