本文章主要演示通過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();
}
}
結果如下: