JSP. 24 Ejemplo, obtener parámetros definidos en web.xml


  1. Creamos un proyecto web maven nuevo.
  2. Creamos 2 servlet añadiendo su información al archivo web.xml.
  3. Creamos un servlet con parámetros de inicialización y lo añadimos al web.xml.
  4. Netbeans nos facilita el trabajo con el archivo web.xml. Abrimos web.xml, en la pestaña General hacemos click en Context Parameters y añadimos un parámetro cualquiera y su valor.
Si pulsamos la pestaña Source debería verse algo tal que así:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
         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_3_0.xsd">
    <context-param>
        <param-name>iniParam1</param-name>
        <param-value>valor iniParam1</param-value>
    </context-param>
    <servlet>
        <servlet-name>Servlet1</servlet-name>
        <servlet-class>com.me.jsp.jspwebxml.Servlet1</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>Servlet2</servlet-name>
        <servlet-class>com.me.jsp.jspwebxml.Servlet2</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>Servlet3</servlet-name>
        <servlet-class>com.me.jsp.jspwebxml.Servlet3</servlet-class>
        <init-param>
            <param-name>param1</param-name>
            <param-value>valor1</param-value>
        </init-param>
        <init-param>
            <param-name>param2</param-name>
            <param-value>valor2</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet1</servlet-name>
        <url-pattern>/Servlet1/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Servlet2</servlet-name>
        <url-pattern>/Servlet2/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Servlet3</servlet-name>
        <url-pattern>/Servlet3</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

Abrimos los tres servlet para modificar sus métodos processRequest, el código de Servlet3 sería el siguiente, el de los demás es igual modificando la cadena que muestra el nombre del servlet.
protected void processRequest(HttpServletRequest request, 
   HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet Servlet3</title>");            
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Servlet Servlet3 at " + 
        request.getContextPath() + "</h1>");
            
        // Parámetros de inicialización de la aplicación
        out.println("<h3>Ini Params globales</h3>");
        Enumeration<String> iniParam = 
            request.getServletContext().getInitParameterNames();
        while (iniParam.hasMoreElements()) {
            String param = iniParam.nextElement();
            String value = request.getServletContext().getInitParameter(param);
            out.println("<br />"+param+": "+value);
        }
            
        // Parámetros de configuración del servlet
        out.println("<h3>Ini Params del Servlet</h3>");
        Enumeration<String> iniConfig = 
            getServletConfig().getInitParameterNames();
        while (iniConfig.hasMoreElements()) {
            String param = iniConfig.nextElement();
            String value = getServletConfig().getInitParameter(param);
            out.println("<br />"+param+": "+value);
        }
            
        out.println("</body>");
        out.println("</html>");
    } finally {            
        out.close();
    }
}

La página index.jsp quedaría:
<form action="Servlet1" method="post">
    <input value="Servlet 1" type="submit" />
</form>
<form action="Servlet2" method="post">
    <input value="Servlet 2" type="submit" />
</form>
<form action="Servlet3" method="post">
    <input value="Servlet 3" type="submit" />
</form>
 
Los tres servlet muestran
   iniParam1: valor iniParam1

Pero solo el servlet 3 muestra:
   param1: valor1
   param2: valor2

Descargar Proyecto.

Comentarios

Entradas populares de este blog

Java. Texto de colores en la consola

javax.swing.JPasswordField

javax.swing.JList