Segundo Parcial Práctico de Paradigmas de Programación 05/11/2009
Se necesita desarrollar un programa web que permita consultar el presupuesto de una visita a un importante Zoo de una ciudad turística el cual es visitado, por lo general, por alumnos pertenecientes a diversas Instituciones educativas ubicadas en puntos del país. Los grupos de personas visitantes, además de disfrutar de una vista de los animales viviendo en un ambiente casi exacto a su hábitat natural, el Zoo les puede ofrecer el servicio de guías especializadas, que explican por cada grupo algunas características de los animales y de su entorno natural, servicio de catering (completo, ejecutivo, básico), y servicio de traslado: diferencial o común, desde su lugar de origen, hasta el mismo Zoo. Cabe aclarar que tanto el servicio de guías, catering y de traslado son opcionales, siendo solo obligatorio solo pagar el importe de la entrada, el cual es de $10 por persona, para ingresar al Zoo. Se disponen de las siguientes clases en Java: _ Presupuesto: clase que representa a cada presupuesto que se realiza, en base a las especificaciones que se hayan seleccionado por quién solicite el presupuesto de una visita, vía web. Tiene los siguientes atributos: nombreInstitucion: String, que representa el nombre de la institución educativa que solicita, vía web, el presupuesto para realizar la visita al Zoo. cantidad: int, cantidad de personas pertenecientes a la institución educativa, que desean visitar elZoo. tipoTransporte: String, representa el tipo de transporte seleccionado por el usuario. Los valores pueden ser: “diferencial” (el cual encarece cada entrada en $5), “común” (encarece la entrada en $3), o de “Por cuenta propia” (no encarece la entrada). tipoCatering: String, representa el tipo de servicio de catering seleccionado por el usuario. Los valores que puede contener son: “Completo” (el cual encarece la entrada en $15), “Ejecutivo” (encarece cada entrada en $12), “Mínimo” (encarece cada entrada en $7), ó “Sin servicio” (el cual noencarece la entrada). guia: String, representa si se seleccionó o no el servicio de un guía/acompañante de la excursión, que informe o asesore al grupo durante la visita al Zoo. Los valores posibles para este atributo son: “Si” (el cual incrementa al monto total del presupuesto grupal, $100, independientemente de la cantidad de personas que visiten el Zoo), o “No” (no encarece el presupuesto). Los métodos que contiene son: constructor sin y con parámetros, métodos setter y getter para cada atributo, y un método getPresupuestarVisita(), de calcula y devuelve el presupuesto solicitado. _ Procesador: clase que extiende de HttpServlet. En el método protected void processRequest(request:HttpServletRequest response:HttpServletResponse), se deberán tomar a través delobjeto
request, los datos ingresados/seleccionados por el usuario de cliente web, crear un objeto de la clase Presupuesto, y devolver a la página del navegador de cliente web, el presupuesto correspondiente, obtenido a través del método getPresupuestarVisita(). Previamente, se deberá validar que la cantidad de personas ingresadas sea mayor a 0. En caso de ser 0 o negativo, se deberá informar mediante un mensaje al cliente web. También se dispone de un archivo .jsp, llamado index.jsp, con código HTML, mediante el cual el usuario del cliente web, podrá interactuar con el programa web, ingresando/seleccionado los datos de su petición, y visualizando las respuestas que brinde el sistema. Consignas: 1) En el archivo index.jsp, realizar lo siguiente: a) Completar dentro del elemento
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> JSP Page
//Clase Procesador package Bean; /** * Processes requests for both HTTP GET
and POST
methods. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { String institucion,catering,transporte,guia; int cantPersonas; //COMPLETAR 2.a)//COMPLETAR 2.b)//COMPLETAR 2.b) request.getRequestDispatcher("index.jsp").forward(request, response); } finally { out.close(); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override
public String getServletInfo() { return "Short description"; }// }//Fin clase Procesador //Clase Presupuesto package Bean; public class Presupuesto { private String nombreInstitucion,tipoTransporte,tipoCatering,guia; private int cantidad; public Presupuesto(){} public Presupuesto(String inst,int cant,String transp,String cat,String g) { nombreInstitucion=inst; cantidad=cant; tipoTransporte=transp; tipoCatering=cat; guia=g; } public double getPresupuestarVisita() { double monto=10; if(tipoTransporte.equalsIgnoreCase("Diferencial")) monto+=5; else if(tipoTransporte.equalsIgnoreCase("Comun")) monto+=3; if(tipoCatering.equalsIgnoreCase("Completo")) monto+=15; else if(tipoCatering.equalsIgnoreCase("Ejecutivo")) monto+=12; else if(tipoCatering.equalsIgnoreCase("Minimo")) monto+=7; monto*=cantidad; if(guia.equalsIgnoreCase("SI")) monto+=100; return monto; } }//Fin clase Presupuesto Preguntas: 1)Etiquetas javaBean 2)Ciclo de vida de un servlet 3)-elementos scriples