ServletContext
1.servletContext接口是Servlet中最大的一个接口,呈现了web应用的Servlet视图。
2.ServletContext实例是通过 getServletContext()方法获得的,
3.由于HttpServlet继承Servlet的关系GenericServlet类和HttpServlet类同时具有该方法。
ServletContext 何时创建,何时销毁
创建:服务器启动的时候,会为托管的每一个web应用程序,创建一个ServletContext对象。
销毁:从服务器移除托管,或者是关闭服务器的时候,就会销毁。
- ServletContext 的作用范围
相当于一个全局的概念,在整个 web 应用中,都可以使用。
ServletContext 与 ServletConfig 的关系
如果假设说,我们拥有一个Web应用,这个Web应用中有10个Servlet。
那么,在这里,这个Web应用就拥有一个它自己的仓库,ServletContext,而这10个 Servlet 共享这个大仓库,并且拥有属于它们自己的小仓库 ServletConfig
总的来说,ServletContext 属于 Web 应用,但有时候我们不想让某些参数给其他 Servlet 应用,仅仅想在自己的 Servlet 中被共享,这时候,就可以把这些参数存在 ServletConfig 中了。
ServletContext 与 Application 的异同
- 相同点
ServletContext 和 Application 是一样的,相当于是一个类创建了两个不同名称的变量。
在 Servlet 中,ServletContext 就是 application 对象。
打开 jsp 编译过后生成的 Servlet 中的 _jspService() 方法可以看到如下声明。
ServletContextapplication = null;
application= pageContext.getServletContext();
- 不同点
两者的区别就是,application 应用在 jsp 中,ServletContext 应用在 Servlet 中
而且 application 的作用域是整个Tomcat启动的过程
page,request,session和application 称之为 jsp 的四大作用域,这四个作用域的作用范围,由前到后比一个大。
在后台用ServletContext存储的属性数据可以用 application对象获得。