JSP. 24 Ejemplo, obtener parámetros definidos en web.xml
- Creamos un proyecto web maven nuevo.
- Creamos 2 servlet añadiendo su información al archivo web.xml.
- Creamos un servlet con parámetros de inicialización y lo añadimos al web.xml.
- 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
Publicar un comentario