In der Servlet-Konfigurationsdatei können Sie einen oder mehrere <init-param>-Tags verwenden, um einige Initialisierungsparameter für das Servlet zu konfigurieren. Wenn das Servlet mit Initialisierungsparametern konfiguriert ist, kapselt der Webcontainer diese Initialisierungsparameter beim Erstellen des Servlet-Instanzobjekts automatisch in das ServletConfig-Objekt, und wenn die Init-Methode des Servlets aufgerufen wird, wird das ServletConfig-Objekt an das Servlet übergeben. Darüber hinaus können Programmierer die Initialisierungsparameterinformationen des aktuellen Servlets über das ServletConfig-Objekt abrufen.
Der Beispielcode lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
Paket com.yyz.servletconfig;
import java.io.IOException;
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;
Die öffentliche Klasse ServletConfigDemo1 erweitert HttpServlet {
ServletConfig-Konfiguration;
public void doGet(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException, IOException {
//Die angegebenen Initialisierungsparameter abrufen
String-Wert = config.getInitParameter("xxx");
Response.getOutputStream().write(value.getBytes());
//Alle Initialisierungsparameter abrufen
Aufzählung e = cofig.getInitParameterNames();
while(e.hasMoreElements()){
String name = (String) e.nextElement();
value = config.getInitParameter(name);
Response.getOutputStream().write((name+"="+value+"<br/>").getBytes());
}
}
public void doPost(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException, IOException {
doGet(Anfrage,Antwort);
}
@Override
public void init(ServletConfig config) löst eine ServletException {
this.config = config;
}
}
Die entsprechende web.xml lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
<?xml version="1.0"kodierung="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<Servlet>
<servlet-name>ServletConfigDemo1</servlet-name>
<servlet-class>com.yyz.servletconfig.ServletConfigDemo1</servlet-class>
<init-param>
<param-name>xxx</param-name>
<param-value>yyy</param-value>
</init-param>
<init-param>
<param-name>name</param-name>
<param-value>yyz</param-value>
</init-param>
<init-param>
<param-name>Passwort</param-name>
<param-value>yyy</param-value>
</init-param>
</servlet>
<Servlet-Mapping>
<servlet-name>ServletConfigDemo1</servlet-name>
<url-pattern>/servlet/ServletConfigDemo1</url-pattern>
</servlet-mapping>
</web-app>
Die Testergebnisse lauten wie folgt:
Im obigen Code gibt es im ServletConfigDemo1-Objekt ein ServletConfig-Objekt, das eigentlich unnötig ist. Weil ServletConfigDemo1 HttpServlet erbt, das wiederum GenericServlet erbt. GenericServlet verwaltet intern bereits ein ServletConfig-Objekt. Die relevanten Implementierungen sind wie folgt:
Kopieren Sie den Codecode wie folgt:
öffentliche abstrakte Klasse GenericServlet
implementiert Servlet, ServletConfig, java.io.Serializable
{
… …
private transiente ServletConfig-Konfiguration;
public ServletConfig getServletConfig() {
Konfiguration zurückgeben;
}
}
Daher können wir das ServletConfig-Objekt direkt über die getServletConfig()-Methode des von uns geschriebenen Servlet-Objekts abrufen. Der Beispielcode lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
Paket com.yyz.servletconfig;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Die öffentliche Klasse ServletConfigDemo2 erweitert HttpServlet {
public void doGet(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException, IOException {
String-Wert = this.getServletConfig().getInitParameter("name");
System.out.println(value);
}
public void doPost(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft ServletException, IOException {
doGet(Anfrage, Antwort);
}
}
web.xml-Datei:
Kopieren Sie den Codecode wie folgt:
<?xml version="1.0"kodierung="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<Servlet>
<servlet-name>ServletConfigDemo2</servlet-name>
<servlet-class>com.yyz.servletconfig.ServletConfigDemo2</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>yyz</param-value>
</init-param>
</servlet>
<Servlet-Mapping>
<servlet-name>ServletConfigDemo2</servlet-name>
<url-pattern>/servlet/ServletConfigDemo2</url-pattern>
</servlet-mapping>
</web-app>