Servlet ServletContext接口,在上一篇教程中,我们讨论了ServletConfig,Servlet 容器在初始化期间为每个 Servlet 创建ServletConfig
对象。ServletConfig
和ServletContext
之间的主要区别在于,与ServletConfig
不同,ServletContext
每个 Web 应用创建一次,即ServletContext
对象对 Web 应用中的所有 servlet 都是通用的。
这就是我们如何创建ServletContext
对象。在这段代码中,我们在init()
方法中创建对象,但是您可以在任何地方创建对象。
一旦我们有ServletContext
对象,我们就可以使用setAttribute()
方法设置ServletContext
对象的属性。由于ServletContext
对象可用于 Web 应用的所有 servlet,因此其他 servlet 可以使用getAttribute()
方法从ServletContext
对象中检索该属性。
上下文初始化参数
上下文初始化参数是您可以在部署描述符文件(web.xml
文件)中指定的参数名称和值对。您可以在此处指定 Web 应用中所有 servlet 都可访问的参数。
当我们部署 Web 应用时,Servlet 容器从web.xml
文件中读取初始化参数,并使用它初始化ServletContext
对象。我们可以使用ServletContext
接口的getInitParameter()
和getInitParameterNames()
方法分别获取参数名称的参数值和枚举。
例如,这里我已经使用值指定了参数email_id
,因为这对所有 servlet 都是通用的,您可以在任何 servlet 中获取参数名称和值。
获取初始化参数
在此示例中,我们在web.xml
文件中有两个上下文初始化参数(用户名和用户电子邮件),我们使用getInitParameter()
方法获取 Servlet 中的值,该方法返回给定参数的值。
DemoServlet.java
web.xml
输出:
ServletContext
接口的方法
以下是ServletContext
接口常用方法的列表。
public String getInitParameter(String param)
:返回给定参数的值,如果参数不存在,则返回null
。
public Enumeration getInitParameterNames()
:返回上下文参数名称的枚举。
public void setAttribute(String name,Object object)
:设置给定属性名称的属性值。
public Object getAttribute(String name)
:返回给定名称的属性值,如果该属性不存在,则返回null
。
public String getServerInfo()
:返回运行 servlet 的 servlet 容器的名称和版本。
public String getContextPath()
:返回 Web 应用的上下文路径。