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("- 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("- 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( "| CLAVE: " + clave + " | " );
out.println( "" + p.getProperty(clave) + " |
" );
}
out.println( "
");
out.println("");
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
public void destroy() {
sc.log( "----> Fin de servlet Metodos" );
}
}