1.在web.xml中配置的信息
<servlet>
<servlet-name>ccc</servlet-name>
<servlet-class>com.web.he0330.ServletConfigDemo</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>张三</param-value>
</init-param>
<init-param>
<param-name>age</param-name>
<param-value>20</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ccc</servlet-name>
<url-pattern>/ServletConfigDemo</url-pattern>
</servlet-mapping>
2.在Java代码中实现实现
package com.web.he0330;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletConfigDemo extends HttpServlet {
private ServletConfig config=null;
//init()初始化的时候就会获取Servlet的配置信息,ServletConfig形参中带有Servlet的一些配置信息,当init()方法结束时,这个对象也就随之
//销毁了,如果想让其生命周期更长,需要在定义一个全局变量,将参数传给这个全局变量中,那么当init()方法结束后,全局变量中的config也不会被销毁
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
//super.init(config);//如果两种同时用时,需要加上这句,否则父类不会初始化init()方法,而下面的getServletConfig()方法也不会得到config配置信息
this.config=config;
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = config.getInitParameter("name");
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
System.out.println("得到的值是"+name);
Enumeration<String> configs=config.getInitParameterNames();
while (configs.hasMoreElements()) {
String key = (String) configs.nextElement();
String value=config.getInitParameter(key);
System.out.println(key+"-->"+value);
resp.getWriter().write(key+":"+value+" ");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}