package docen_servlet01; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; /********************************************************************************** * Este servlet recibe dos parametros, valida que son convertibles a numérico y si * lo son, los redirige (SendRedirect) a otro servlet para que este muestre el producto. * Si no son válidos, devuelve un código de error en la respuesta: response.SC_NOT_FOUND. *********************************************************************************/ public class SendRedirect extends HttpServlet { private Propiedades acceso; // Clase de propiedades: host, etc. private ServletContext sc; public void init(ServletConfig config) throws ServletException { super.init(config); sc = config.getServletContext(); // Obtengo contexto del servlet //// El path donde está el archivo de propiedades es 'contexto/propiedades/paquete/' //// sc.RealPath("/") me da el path del contexto de aplicación acceso = new Propiedades( sc.getRealPath("/")+"propiedades/" + getClass().getPackage().getName()+"/"); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { //// Si he leido archivo de propiedades if ( acceso.mensajeError == null) { int num1 = Integer.parseInt(request.getParameter("num1")); int num2 = Integer.parseInt(request.getParameter("num2")); response.sendRedirect( acceso.getHostHTTP()+"servlet/SendRedirect2?num1=" +request.getParameter("num1")+"&num2="+ request.getParameter("num2")); } else { response.setContentType("text/html; charset=iso-8859-1"); // Definir tipo de salida PrintWriter out = response.getWriter(); //// Página para informar de error de lectura de propiedades out.println(""); out.println("
Error al leer de " + sc.getRealPath("/")+"propiedades/" + getClass().getPackage().getName()+"/parametros.properties
"); out.println(""); } } catch (NumberFormatException e) { response.sendError( response.SC_NOT_FOUND, "Error en la conversión a numérico."); } } /***************************************************************** * Procesar una petición HTTP con el método POST. *****************************************************************/ public void doPost( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }