En el archivo de configuración del servlet, puede utilizar una o más etiquetas <init-param> para configurar algunos parámetros de inicialización del servlet. Cuando el servlet está configurado con parámetros de inicialización, el contenedor web encapsulará automáticamente estos parámetros de inicialización en el objeto ServletConfig al crear el objeto de instancia del servlet, y al llamar al método init del servlet, el objeto ServletConfig se pasará al servlet. Además, los programadores pueden obtener la información del parámetro de inicialización del servlet actual a través del objeto ServletConfig.
El código de muestra es el siguiente:
Copie el código de código de la siguiente manera:
paquete com.yyz.servletconfig;
importar java.io.IOException;
importar java.util.Enumeration;
importar javax.servlet.ServletConfig;
importar javax.servlet.ServletException;
importar javax.servlet.http.HttpServlet;
importar javax.servlet.http.HttpServletRequest;
importar javax.servlet.http.HttpServletResponse;
la clase pública ServletConfigDemo1 extiende HttpServlet {
Configuración de ServletConfig;
public void doGet (solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException, IOException {
//Obtener los parámetros de inicialización especificados
Valor de cadena = config.getInitParameter("xxx");
respuesta.getOutputStream().write(value.getBytes());
//Obtener todos los parámetros de inicialización
Enumeración e = cofig.getInitParameterNames();
mientras(e.hasMoreElements()){
Nombre de cadena = (Cadena) e.nextElement();
valor = config.getInitParameter(nombre);
respuesta.getOutputStream().write((nombre+"="+valor+"<br/>").getBytes());
}
}
public void doPost (solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException, IOException {
doGet(solicitud,respuesta);
}
@Anular
public void init (configuración de ServletConfig) lanza ServletException {
this.config = configuración;
}
}
El web.xml correspondiente es el siguiente:
Copie el código de código de la siguiente manera:
<?xml versión="1.0" codificación="UTF-8"?>
<aplicación web 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"
versión="2.5">
<servlet>
<nombre-servlet>ServletConfigDemo1</nombre-servlet>
<servlet-clase>com.yyz.servletconfig.ServletConfigDemo1</servlet-clase>
<parámetro-inicio>
<nombre-param>xxx</nombre-param>
<valor-param>aaa</valor-param>
</init-param>
<parámetro-inicio>
<nombre-param>nombre</nombre-param>
<valor-param>yyz</valor-param>
</init-param>
<parámetro-inicio>
<param-name>contraseña</param-name>
<valor-param>aaa</valor-param>
</init-param>
</servlet>
<mapeo-servlet>
<nombre-servlet>ServletConfigDemo1</nombre-servlet>
<url-pattern>/servlet/ServletConfigDemo1</url-pattern>
</servlet-mapping>
</aplicación web>
Los resultados de la prueba son los siguientes:
En el código anterior, hay un objeto ServletConfig en el objeto ServletConfigDemo1, que en realidad no es necesario. Porque ServletConfigDemo1 hereda HttpServlet, que a su vez hereda GenericServlet. GenericServlet ya mantiene un objeto ServletConfig internamente. Las implementaciones relevantes son las siguientes:
Copie el código de código de la siguiente manera:
clase abstracta pública GenericServlet
implementa Servlet, ServletConfig, java.io.Serializable
{
……
configuración privada transitoria de ServletConfig;
público ServletConfig getServletConfig() {
configuración de retorno;
}
}
Por lo tanto, podemos obtener directamente el objeto ServletConfig a través del método getServletConfig () del objeto Servlet que escribimos. El código de muestra es el siguiente:
Copie el código de código de la siguiente manera:
paquete com.yyz.servletconfig;
importar java.io.IOException;
importar java.io.PrintWriter;
importar javax.servlet.ServletException;
importar javax.servlet.http.HttpServlet;
importar javax.servlet.http.HttpServletRequest;
importar javax.servlet.http.HttpServletResponse;
la clase pública ServletConfigDemo2 extiende HttpServlet {
public void doGet (solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException, IOException {
Valor de cadena = this.getServletConfig().getInitParameter("nombre");
System.out.println(valor);
}
public void doPost (solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException, IOException {
doGet(solicitud, respuesta);
}
}
archivo web.xml:
Copie el código de código de la siguiente manera:
<?xml versión="1.0" codificación="UTF-8"?>
<aplicación web 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"
versión="2.5">
<servlet>
<nombre-servlet>ServletConfigDemo2</nombre-servlet>
<servlet-clase>com.yyz.servletconfig.ServletConfigDemo2</servlet-clase>
<parámetro-inicio>
<nombre-param>nombre</nombre-param>
<valor-param>yyz</valor-param>
</init-param>
</servlet>
<mapeo-servlet>
<nombre-servlet>ServletConfigDemo2</nombre-servlet>
<url-pattern>/servlet/ServletConfigDemo2</url-pattern>
</servlet-mapping>
</aplicación web>