一:ServletContext
- 基本概念
说起ServletContext,一些人会产生误解,以为一个servlet对应一个ServletContext。其实不是这样的,事实是一个web应用对应一个ServletContext,所以ServletContext的作用范围是整个应用,明确这点很重要,这是基础中的基础,对应jsp的application。
- 生命周期
- ServletContext对象的创建是在服务器启动时完成的。
- ServletContext对象的销毁是在服务器关闭时完成的。
- 获取方式
// 在javax.servlet.Filter中直接获取
ServletContext context = filterConfig.getServletContext();
// 在HttpServlet中直接获取
ServletContext context = config.getServletContext();
//在其他方法中,通过ServeltRequest、HttpServletRequest获得
request.getServletContext();
request.getSession().getServletContext();
- 应用
①. 获取当前 WEB 应用的初始化参数
设置初始化参数: 可以为所有的 Servlet 所获取, 而 Servlet 的初始化参数只用那个 Serlvet 可以获取.
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
String driver = servletContext.getInitParameter("driver");
//driver:com.mysql.jdbc.Driver
System.out.println("driver:" + driver);
②添加属性,得到值,删除属性
setAttribute(String name, Object obj);
//这个方法返回Object
getAttribute(String name)
removeAttribute(String name)
二:ServletConfig
用于加载Servlet的初始化参数,在一个web应用可以存在多个ServletConfig对象,一个Servlet对应一个ServletConfig对象。
一个servletconfig对应着一个web.xml文本中的一段配置信息,可以通过各种方法来获得web.xml中的值。
三:pageContext
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
四:作用域排序
page(jsp有效) <request(一次请求)< session(一次会话)< application(当前web应用)