ServletContext接口
当Servlet启动时,会为每个Web应用创建一个唯一的ServletContext对象
表示当前Web应用,该对象不仅封装了当前Web应用的所用信息,并且实现了多个Servlet之间数据的共享
获取Web应用程序的初始化参数
在web.xml文件中,不仅可以配置Servlet的初始化信息
还可以配置整个Web应用的初始化信息
配置如下
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<servlet>
<servlet-name>TestServlet03</servlet-name>
<servlet-class>cn.itcast.chapter04.servlet.TestServlet03</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet03</servlet-name>
<url-pattern>/TestServlet03</url-pattern>
</servlet-mapping>
<context-param>
<param-name>companyName</param-name>
<param-value>itcast</param-value>
</context-param>
<context-param>
<param-name>address</param-name>
<param-value>beijing</param-value>
</context-param>
</web-app>
参数信息 <context-param>
,位于根元素中 <param-name>
,用来指定参数的名字 <param-value>
,用来指定参数的值
获取这些参数信息,可以使用ServletContext接口
它定义了getInitParameterNames()和getInitParameter(String name)方法
分别用来获取参数名和参数值
示例程序
编写TestServlet03类
代码如下
package cn.itcast.chapter04.servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet03 extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
//得到ServletContext对象
ServletContext context=this.getServletContext();
//得到包含所有初始化参数名的Enumeration对象
Enumeration<String> paramNames=context.getInitParamterNames();
//遍历所有的初始化参数名,得到相应的参数值,打印到控制台
out.println("all the paramName and paramValue are following:");
//遍历所有的初始化参数名,得到相应的参数值并打印
while(paramNames.hasMoreElement()){
String name=paramNames.nextElement();
String value=context.getInitParamter(name);
out.println(name+":"+value);
out.println("<br>");
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{
this.doGet(request,response);
}
}
通过this.getServletContext()方法,获取ServletContext对象
调用getInitParameterNames()方法,获取到包含所有初始化参数名的Enumeration对象,然后,遍历Enumeration对象,根据获取到的参数名,通过getInitParameter(String name)方法,得到对应的参数值
启动Tomcat,在浏览器中输入地址
http://localhost:8080/chapter04/TestServlet03
访问TestServlet03