ServletConfig对象 :
主要是用于加载servlet的初始化参数。在一个web应用可以存在多个
ServletConfig对象(一个Servlet对应一个ServletConfig对象)
servlet的初始化参数配置:
一定也要有<servlet-mapping>
不然无法得到servlet参数
<servlet>
<servlet-name>ServletConfigTest</servlet-name>
<servlet-class>Hello.ServletConfig</servlet-class>
<!-- 初始参数: 这些参数会在加载web应用的时候,
封装到ServletConfig对象中 -->
<init-param>
<param-name>name1</param-name>
<param-value>value1</param-value>
</init-param>
<init-param>
<param-name>CCCC</param-name>
<param-value>CCCC's value</param-value>
</init-param>
<!-- 让servlet对象自动加载 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletConfigTest</servlet-name>
<url-pattern>/ServletConfig</url-pattern>
</servlet-mapping>
注意:
this.getServletConfig()得到ServletConfig对象
ServletConfig的API:
java.lang.String getInitParameter(java.lang.String name) 根据参数名获取参数值
java.util.Enumeration getInitParameterNames() 获取所有参数
ServletContext getServletContext() 得到servlet上下文对象
java.lang.String getServletName() 得到servlet的名称
举例:
System.out.println(this.getServletConfig().getInitParameter("name1"));//常用
System.out.println(this.getServletConfig().getServletName()); //不常用
ServletContext对象:
Servlet的上下文对象。表示一个当前的web应用环境。
一个web应用中只有一个ServletContext对象。
得到对象:
两种方式得到getServletContext:
1. ServletContext context = this.getServletContext();
2. ServletContext context =
this.getServletConfig().getServletContext();
web.xml:
<context-param>
<param-name>AAA</param-name>
<param-value>AAA's value</param-value>
</context-param>
<context-param>
<param-name>BBB</param-name>
<param-value>BBB's value</param-value>
</context-param>
<context-param>
<param-name>CCC</param-name>
<param-value>CCC's value</param-value>
</context-param>
Servlet:
//得到SErvletContext对象
ServletContext context = this.getServletContext();
//ServletContext context = this.getServletConfig().getServletContext();
System.out.println("参数"+context.getInitParameter("AAA"));
Enumeration<String> enums = context.getInitParameterNames();
while(enums.hasMoreElements()){
String paramName = enums.nextElement();
String paramValue =context.getInitParameter(paramName);
System.out.println(paramName+"="+paramValue);