Servlet_ServletConfig对象
ServletConfig对象概述
ServletConfig封装了Servlet的相关配置信息。ServletConfig是一个接口,其具体实现是由服务器的厂商所实现。通过ServletConfig对象。我们可以获取一些配置文件(web.xml)中的配置信息。如果需设置一些配置信息,那么我们可以通过在web.xml中设置,然后通过该对象获取即可。这样做的好处就是方便配置文件中的信息复用和修改。
ServletConfig接口常用方法
1.public String getInitParameter(String name);获取指定参数名的初始化参数
2.public Enumeration getInitParameterName();获取参数名组成的Enumeration
3.public ServletContext getServletContext();返回一个Servlet的上下文对象(重要)
4.public String getServletName();获取Servlet的名字
ServletConfig基本使用
1.在web.xml中配置,然后通过SrvletConfig对象获取内容
web.xml配置信息:
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.cn.test</servlet-class>
<!--配置Servlet的初始化参数信息,并且该节点必须在load-on-startup节点之前-->
<init-param>
<!--初始化参数名-->
<param-name>user</param-name>
<!--初始化参数值-->
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123456</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
使用servletConfig获取配置文件中的内容
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("method init");
//获取配置的参数
String user = servletConfig.getInitParameter("user");
System.out.println("获取的参数是:"+user);
//不常使用
Enumeration<String> names = servletConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name = names.nextElement();
String value = servletConfig.getInitParameter(name);
System.out.println("获取的参数是:" + name +"---"+value);
}
//获取Servlet的名字
String servletName = servletConfig.getServletName();
System.out.println("Servlet的名字是:"+servletName);
}
获取结果如下:
2.在注解中配置相关的参数,然后获取并显示输出
package com.cn.test;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "TestServlet",
urlPatterns = "/TestServlet",
initParams = {
@WebInitParam(name="user", value="root"),
@WebInitParam(name="password", value="123456")
}
)
public class TestServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
public void init(ServletConfig servletConfig) throws ServletException {
super.init(servletConfig);
System.out.println("method init");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("doPost.....");
ServletConfig servletConfig = this.getServletConfig();
String user = servletConfig.getInitParameter("user");
System.out.println("获取的参数是:"+user);
//不常使用
Enumeration<String> names = servletConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name = names.nextElement();
String value = servletConfig.getInitParameter(name);
System.out.println("获取的参数是:" + name +"---"+value);
}
//获取Servlet的名字
String servletName = servletConfig.getServletName();
System.out.println("Servlet的名字是:"+servletName);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req, resp);
}
}
显示效果如下: