package docen_servlet01; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; /***************************************************************** * Información de ServletContext (se obtiene en init()) y del sistema (se * obtiene de doPost()) *****************************************************************/ public class Metodos extends HttpServlet { StringBuffer m = new StringBuffer(800); // Cadena que se define en init() ServletContext sc; // Contexto del servlet /**************************************************************** * init(): inicialización del servlet * Un ejemplo de cómo obtener información de ServletConfig (params de * inicialización de web.xml) y de contexto *****************************************************************/ public void init(ServletConfig config) throws ServletException { //// Nombre del servlet m.append("

Servlet '"+config.getServletName()+"' arrancado a las " + new Date()); //// Obtener parametros del servidor web m.append( "

    "); for ( Enumeration e= config.getInitParameterNames(); e.hasMoreElements(); ) { String nom_par = (String) e.nextElement(); // Obtiene nombre del parámetro m.append("
  1. Parámetro de inicialización (ServletConfig): " + nom_par); m.append(". Valor: " + config.getInitParameter( nom_par ) ); // Obtiene valor del parametro } m.append( "
"); sc = config.getServletContext(); // Conseguimos un contexto // Obtener el path real a partir de un path virtual, dentro del contexto de aplicación del servlet m.append( "

RealPath: " + sc.getRealPath( "/")); m.append( "

ServerInfo: " + sc.getServerInfo());// Nombre del servidor web m.append( "

Versión API Servlet: " + sc.getMajorVersion() + "." +sc.getMinorVersion());//API //// Obtener atributos del contexto m.append( "

    "); for ( Enumeration e= sc.getAttributeNames(); e.hasMoreElements(); ) { String nom_par = (String) e.nextElement(); // Obtenemos el nombre del atrib m.append("
  1. Atributo de contexto: " + nom_par); m.append(". Valor: " + sc.getAttribute( nom_par ) ); // Se obtiene el valor del atrib } m.append( "
"); sc.log( "----> Inicio de servlet Metodos" ); // Salida a archivo LOG o consola } /***************************************************************** * Procesar una petición HTTP con el método POST *****************************************************************/ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType( "text/html; charset=iso-8859-1" ); PrintWriter out = response.getWriter(); //// Empezamos a escribir la página de respuesta usando 'out' out.println(""); out.println("Ejemplo de Servlet"); out.println(""); out.println("

Uso de ServletContext y propiedades del sistema


"); //// Información obtenida en init() out.println("

El servlet da información en init() que puede ser interesante:

"); out.println( m ); //// Propiedades del sistema out.println("

Información de propiedades del sistema (System):

"); Properties p = System.getProperties(); out.println( ""); for (Enumeration en= p.keys(); en.hasMoreElements(); ) { String clave = (String) en.nextElement(); out.println( "" ); out.println( "" ); } out.println( "
CLAVE: " + clave + "" + p.getProperty(clave) + "
"); out.println(""); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void destroy() { sc.log( "----> Fin de servlet Metodos" ); } }