Está en: Inicio >> ISValidator >> Ejemplos >> Servlet
SourceForge Logo

Página... Servlet

Ejemplos de ISValidator

Esta página recoge unos ejemplos de uso de las rutinas ISValidator. Puede así mismo ver los ejemplos que se incluyen en el paquete para descargar.

Situación

Supongamos que queremos realizar un programa que funcione bajo la línea de comandos del Sistema Operativo para mandar emails y registrarlos en una base de datos. A este programa se le deben pasar cuatro parámetros:

  • Email de destino, como primer argumento. Se impone por restricciones de la base de datos donde se van a almacenar los datos a introducir, que la longitud de este campo no sea superior a 100 caracteres, y por supuesto sea un email válido.
  • Asunto, como segundo argumento. Las restricciones para este campo son que no sea nulo y tenga una longitud máxima de 255 caracteres.
  • Fecha de envío, como tercer argumento. Este campo tiene como restricción que sea una fecha válida (dd/mm/aaaa).
  • Cuerpo del mensaje, como cuarto argumento. Se impone una restricción de tamaño máximo de 1000 caracteres

Si alguna de estas restricciones no se cumpliese se deberá mostrar un mensaje por pantalla indicando todas las condiciones incumplidas.

Ejemplo

Este ejemplo está realizado sobre la versión de las rutinas 0.0.9

La adaptación a la versión 0.0.10 es muy fácil ya que solo implica cambiar los contenedores. Se ha dejado este ejemplo para poder comprobar las diferencias entre las dos versiones y la mejora que supone esta última.

public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

PrintWriter out = res.getWriter();
res.setContentType("text/plain");

try {

//For the email
ServletParameterConstraintContainer theEmail = new ServletParameterConstraintContainer("email", req);
theEmail.addConstraint(new EmailConstraint());
theEmail.addConstraint(new RegularExpresionConstraint(".{1,100}"));

//For the subject
ServletParameterConstraintContainer theSubject = new ServletParameterConstraintContainer("subject", req);
theSubject.addConstraint(new RegularExpresionConstraint(".{1,255}"));

//For the Date
ServletParameterConstraintContainer theDate = new ServletParameterConstraintContainer("date", req);
theDate.addConstraint(new DateConstraint());

//For the Body
ServletParameterConstraintContainer theBody = new ServletParameterConstraintContainer("body", req);
theBody.addConstraint(new RegularExpresionConstraint(".{1,1000}"));

//The meta container
SimpleMetaContainer inputParameters = new SimpleMetaContainer();
inputParameters.addContainer(theEmail);
inputParameters.addContainer(theSubject);
inputParameters.addContainer(theDate);
inputParameters.addContainer(theBody);
if (inputParameters.checkAll()) {
        out.println("All Ok");
        out.println("The Email is: " + theEmail.getValueToCheck());
        out.println("The Subject is: " + theSubject.getValueToCheck());
        out.println("The Date is: " + theDate.getValueToCheck());
        out.println("The Body is: " + theBody.getValueToCheck());
} else {
        out.println("Not Ok");
        Hashtable errorMessages = new Hashtable();
        errorMessages.put("EmailConstraint", "The argument ($valueToCheck;) is not a valid email");
        errorMessages.put("RegularExpresionConstraint", "The argument ($valueToCheck;) has an invalid size");
        errorMessages.put("DateConstraint", "The argument ($valueToCheck;) is not a valid date");
        errorMessages.put("NotNullConstraint", "You haven´t put all the parameters");
        errorMessages.put("NotBlankConstraint", "You have put a blank parameter");
        inputParameters.setInvalidConstraintProcesor(new SimpleInvalidConstraintProcesor(errorMessages));
        InvalidConstraintProcesorContainer errorContainer = inputParameters.getInvalidConstraintProcesorContainer();
        Enumeration iterator = errorContainer.elements();
        while (iterator.hasMoreElements()) {
                out.println(((InvalidConstraintProcesor) iterator.nextElement()).getMessage());
        }
}

} catch (Exception e) {
        e.printStackTrace(out);
}
}

                        



Iñigo Serrano todos los derechos reservados.
Queda prohibida la reproducción total o parcial del contenido aquí expuesto.