本文章主要演示通过ServletConfig获取Servlet初始参数的几种方式
首先在web.xml中写下一些参数
web.xml
<servlet>
<servlet-name>ConfigServlet</servlet-name>
<servlet-class>cn.hncu.servlets.ConfigServlet</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>Jack</param-value>
</init-param>
<init-param>
<param-name>age</param-name>
<param-value>17</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ConfigServlet</servlet-name>
<url-pattern>/conf</url-pattern>
</servlet-mapping>
这几种方法在代码中的注释中详细的列出来了
ConfigServlet.java
package cn.hncu.servlets;
import java.io.IOException;
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 ConfigServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
//读取servlet初始化参数--法1--通过getServletConfig()获得conf对象 --死的
ServletConfig conf=this.getServletConfig();
String name=conf.getInitParameter("name");
String age=conf.getInitParameter("age");
out.println(name+","+age+"<br/>");
//读取servlet初始化参数--法2--直接通过当前servlet类的getInitParameter()方法 --死的
String name2=this.getInitParameter("name");
String age2=this.getInitParameter("age");
out.println(name2+","+age2);
out.println("<hr/>");
//不知道参数名的情况下,去遍历
//读取servlet初始化参数--法3--通过getServletConfig()或当前servlet类的getInitParameterNames()动态获取所有的参数名
ServletConfig conf2=this.getServletConfig();
Enumeration<String> enumeration = conf2.getInitParameterNames();
while (enumeration.hasMoreElements()){
String paramName=enumeration.nextElement();
String value=conf2.getInitParameter(paramName);
out.println(paramName+","+value+"<br/>");
}
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}
结果如下: