Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.ejie.r01f.servlet
Class RequestParamParser

    java.lang.Object
      com.ejie.r01f.servlet.RequestParamParser

public class RequestParamParser
extends java.lang.Object

Clase para simplificar el tratamiento de parametros de la request - Obtiene parametros en cualquier tipo primitivo sin necesidad de hacer cast - Lanzar una excepción cuando el parametro no se encuentra - Establece valores por defecto en los parámetros

Ejemplo de utilización:

>      RequestParamParser parser = new RequestParamParser(_req);

>      float ratio = parser.getFloatParameter("ratio", 1.0);

>      int count = 0;
>      try {
>           count = parser.getIntParameter("count");
>      } catch (NumberFormatException e) {
>           handleMalformedCount();
>      } catch (ParameterNotFoundException e) {
>           handleNoCount();
>      }

Además se puede buscar qué parametros requeridos no vienen en la request

>      RequestParamParser parser = new RequestParamParser(_req);
>      String[] required = { "fname", "lname", "account" };
>      String[] missing = parser.getMissingParameters(required);

El charset por defecto para los paramtros de entrada es ISO-8859-1 (Latin-1). Si los parametros están codificados de otra forma, especificarlo utilizando el metodo setCharacterEncoding() antes de parsear. ATENDIÓN!!! Los nombres de los parámetros sin embargo HAN DE ESTAR en la codificacion Latin-1

>      RequestParamParser parser = new RequestParamParser(_req);
>      parser.setCharacterEncoding("Shift_JIS");
>      String japaneseValue = parser.getStringParameter("latinName");

ver com.oreilly.servlet.ParameterNotFoundException

Author:
  Jason Hunter, Copyright © 1998, 1999 Modificado por Alex Lara (EJIE)

Constructor Summary
`RequestParamParser()` Constructor vacío
`RequestParamParser(javax.servlet.ServletRequest req)` Constructor a partir de la request

Method Summary
`boolean` | `getBooleanParameter(java.lang.String name)` Devuelve un parametro como boolean, pudiendose indicar los valores como: true = true,on,yes,si (en mayúsculas, minúsculas, etc) false = false,off,no (en mayúsculas, minúsculas, etc)
`boolean` | `getBooleanParameter(java.lang.String name, boolean def)` Devuelve un parametro como boolean o un valor por defecto si el parametro no está presente
`byte` | `getByteParameter(java.lang.String name)` Devuelve un parametro como un byte
`byte` | `getByteParameter(java.lang.String name, byte def)` Devuelve un parametro como byte o su valor por defecto si el parametro no se encuentra.
`char` | `getCharParameter(java.lang.String name)` Devuelve un parametro como un char
`char` | `getCharParameter(java.lang.String name, char def)` Devuelve un parametro como char o su valor por defecto si no se encuentra el parametro
`double` | `getDoubleParameter(java.lang.String name)` Devuelve un parametro como un double
`double` | `getDoubleParameter(java.lang.String name, double def)` Devuelve un parametro convertido a double o un valor por defecto si el parametro no se encuentra
`float` | `getFloatParameter(java.lang.String name)` Devuelve un parametro como un float
`float` | `getFloatParameter(java.lang.String name, float def)` Devuelve un parametro como float o su valor por defecto si el parametro no se encuentra
`int` | `getIntParameter(java.lang.String name)` Devuelve un parametro como int
`int` | `getIntParameter(java.lang.String name, int def)` Devuelve un parametro como int o un valor por defecto si el parametro no se encuentra
`long` | `getLongParameter(java.lang.String name)` Devuelve un parametro como long
`long` | `getLongParameter(java.lang.String name, long def)` Devuelve un parametro como long o un valor por defecto si el parametro no se encuentra
`java.lang.String[]` | `getMissingParameters(java.lang.String[] required)` Determina cuales de los parametros requeridos en la request no vienen en ella Devuelve null si están presentes todos los parametros requeridos
`short` | `getShortParameter(java.lang.String name)` Devuelve un parametro como short
`short` | `getShortParameter(java.lang.String name, short def)` Devuelve un parametro como short o un valor por defecto si no puede convertirse a short
`java.lang.String` | `getStringParameter(java.lang.String name)` Devuelve un parametro como cadena
`java.lang.String` | `getStringParameter(java.lang.String name, java.lang.String def)` Devuelve un parametro y si esta no llega se devuelve un valor por defecto
`static java.util.Map` | `parseParameters(byte[] data, java.lang.String encoding)` Obtener un Map a partir de los parametros de la request NOTA: Se presume que el mapa especificado no es accedido por otro thread con lo que no se hacen sincronizaciones IMPLEMENTATION NOTE: Se realiza una decodificacion de URL individualmente tanto en el nombre como en el valor del parametro en lugar de hacerlo en toda la query string Esto es así para soportar el caso en que el nombre o el valor incluyan el caracter "=" o "&" codificados que de otra forma podrían ser interpretados como delimitadores NOTE: Los datos del byte array de entrada son modificados en este método... cuidadin!
`static java.util.Map` | `parseParameters(java.lang.String data, java.lang.String encoding)` Obtener un Map a partir de los parametros de la request NOTA: Se presume que el mapa especificado no es accedido por otro thread con lo que no se hacen sincronizaciones IMPLEMENTATION NOTE: Se realiza una decodificacion de URL individualmente tanto en el nombre como en el valor del parametro en lugar de hacerlo en toda la query string Esto es así para soportar el caso en que el nombre o el valor incluyan el caracter "=" o "&" codificados que de otra forma podrían ser interpretados como delimitadores NOTE: Los datos del byte array de entrada son modificados en este método... cuidadin!
`void` | `setCharacterEncoding(java.lang.String encoding)` Establece el juego de caracteres de la request Por defecto se devuelven valores SIN codificar tal y como lo haría el método getParameter() de la request.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RequestParamParser

    public RequestParamParser()

  Constructor vacío

### RequestParamParser

    public RequestParamParser(javax.servlet.ServletRequest req)

  Constructor a partir de la request

Parameters:
  `req` - the servlet request

Method Detail

### setCharacterEncoding

    public void setCharacterEncoding(java.lang.String encoding)
                              throws java.io.UnsupportedEncodingException

  Establece el juego de caracteres de la request Por defecto se devuelven valores SIN codificar tal y como lo haría el método getParameter() de la request.

  Parameters:
    `encoding` - El juego de caracteres
  Throws:
    `java.io.UnsupportedEncodingException` - si el juego de caracteres NO está soportado

### getStringParameter

    public java.lang.String getStringParameter(java.lang.String name)
                                        throws ParameterNotFoundException

  Devuelve un parametro como cadena

  Parameters:
    `name` - Nombre del parametro
  Returns:
    El valor del parametro como una cadena
  Throws:
    `ParameterNotFoundException` - si el parametro no se encuentra o es una cadena vacía

### getStringParameter

    public java.lang.String getStringParameter(java.lang.String name,
                                               java.lang.String def)

  Devuelve un parametro y si esta no llega se devuelve un valor por defecto

  Parameters:
    `name` - Nombre del parametro
    `def` - valor por defecto
  Returns:
    el valor del parametro como una cadena o su valor por defecto si el parametro no llega

### getBooleanParameter

    public boolean getBooleanParameter(java.lang.String name)
                                throws ParameterNotFoundException,
                                       java.lang.NumberFormatException

  Devuelve un parametro como boolean, pudiendose indicar los valores como: true = true,on,yes,si (en mayúsculas, minúsculas, etc) false = false,off,no (en mayúsculas, minúsculas, etc)

  Parameters:
    `name` - Nombre del parametro
  Returns:
    El valor del parametro como boolean
  Throws:
    `ParameterNotFoundException` - Si no se encuentra el parametro
    `java.lang.NumberFormatException` - Si el parametro no puede ser convertido a boolean

### getBooleanParameter

    public boolean getBooleanParameter(java.lang.String name,
                                       boolean def)
                                throws java.lang.NumberFormatException

  Devuelve un parametro como boolean o un valor por defecto si el parametro no está presente

  Parameters:
    `name` - Nombre del parámetro
    `def` - Valor por defecto
  Returns:
    Valor del parametro como boolean o el valor por defecto si no llega el parametro en la request
  Throws:
    `java.lang.NumberFormatException` - Si el parametro no puede ser convertido a boolean

### getByteParameter

    public byte getByteParameter(java.lang.String name)
                          throws ParameterNotFoundException,
                                 java.lang.NumberFormatException

  Devuelve un parametro como un byte

  Parameters:
    `name` - Nombre del parametro
  Returns:
    valor del parametro como un byte
  Throws:
    `ParameterNotFoundException` - si no se encuentra el parametro
    `java.lang.NumberFormatException` - si el parametro no puede ser convertido a byte

### getByteParameter

    public byte getByteParameter(java.lang.String name,
                                 byte def)
                          throws java.lang.NumberFormatException

  Devuelve un parametro como byte o su valor por defecto si el parametro no se encuentra.

  Parameters:
    `name` - nombre del parametro
    `def` - valor por defecto del parametro
  Returns:
    valor del parametro como byte o el valor por defecto si el parametro no se encuentra
  Throws:
    `java.lang.NumberFormatException` - si el parametro no puede ser convertido a byte

### getCharParameter

    public char getCharParameter(java.lang.String name)
                          throws ParameterNotFoundException

  Devuelve un parametro como un char

  Parameters:
    `name` - Nombre del parametro
  Returns:
    the parameter valor del parametro como un char
  Throws:
    `ParameterNotFoundException` - si no se encuentra el parametro

### getCharParameter

    public char getCharParameter(java.lang.String name,
                                 char def)

  Devuelve un parametro como char o su valor por defecto si no se encuentra el parametro

  Parameters:
    `name` - nombre del parametro
    `def` - valor por defecto del parametro
  Returns:
    valor como char o el valor por defecto si no se encuentra el parametro

### getDoubleParameter

    public double getDoubleParameter(java.lang.String name)
                              throws ParameterNotFoundException,
                                     java.lang.NumberFormatException

  Devuelve un parametro como un double

  Parameters:
    `name` - nombre del parametro
  Returns:
    valor del parametro como un double
  Throws:
    `ParameterNotFoundException` - si el parametro no se encuentra
    `java.lang.NumberFormatException` - si el parametro no puede ser convertido a double

### getDoubleParameter

    public double getDoubleParameter(java.lang.String name,
                                     double def)
                              throws java.lang.NumberFormatException

  Devuelve un parametro convertido a double o un valor por defecto si el parametro no se encuentra

  Parameters:
    `name` - nombre del parametro
    `def` - valor por defecto del parametro
  Returns:
    valor como double o el valor por defecto si el parametro no se encuentra
  Throws:
    `java.lang.NumberFormatException` - si el parametro no puede ser convertido a double

### getFloatParameter

    public float getFloatParameter(java.lang.String name)
                            throws ParameterNotFoundException,
                                   java.lang.NumberFormatException

  Devuelve un parametro como un float

  Parameters:
    `name` - nombre del parametro
  Returns:
    valor del parametro como un float
  Throws:
    `ParameterNotFoundException` - si el parametro no se encuentra
    `java.lang.NumberFormatException` - si el parametro NO puede ser convertido a float

### getFloatParameter

    public float getFloatParameter(java.lang.String name,
                                   float def)
                            throws java.lang.NumberFormatException

  Devuelve un parametro como float o su valor por defecto si el parametro no se encuentra

  Parameters:
    `name` - nombre del parametro
    `def` - valor por defecto del parametro
  Returns:
    valor como float o el valor por defecto si el parametro no se encuentra
  Throws:
    `java.lang.NumberFormatException` - si el parametro NO puede ser convertido a float

### getIntParameter

    public int getIntParameter(java.lang.String name)
                        throws ParameterNotFoundException,
                               java.lang.NumberFormatException

  Devuelve un parametro como int

  Parameters:
    `name` - nombre del parametro
  Returns:
    el valor del parametro como entero
  Throws:
    `ParameterNotFoundException` - si el parametro no se ha podido encontrar
    `java.lang.NumberFormatException` - si el parametro no puede convertirse a int

### getIntParameter

    public int getIntParameter(java.lang.String name,
                               int def)

  Devuelve un parametro como int o un valor por defecto si el parametro no se encuentra

  Parameters:
    `name` - nombre del parametro
    `def` - valor por defecto del parametro
  Returns:
    valor del parametro como int o su valor por defecto si no se encuentra
  Throws:
    `java.lang.NumberFormatException` - si el parametro no puede convertirse a int

### getLongParameter

    public long getLongParameter(java.lang.String name)
                          throws ParameterNotFoundException,
                                 java.lang.NumberFormatException

  Devuelve un parametro como long

  Parameters:
    `name` - nombre del parametro
  Returns:
    valor del parametro como un long
  Throws:
    `ParameterNotFoundException` - si el parametro no se encuentra
    `java.lang.NumberFormatException` - si el parametro no puede convertirse a long

### getLongParameter

    public long getLongParameter(java.lang.String name,
                                 long def)
                          throws java.lang.NumberFormatException

  Devuelve un parametro como long o un valor por defecto si el parametro no se encuentra

  Parameters:
    `name` - nombre del parametro
    `def` - valor por defecto del parametro
  Returns:
    el valor del parametro o su valor por defecto si no se encuentra
  Throws:
    `java.lang.NumberFormatException` - si el parametro no puede convertirse a long

### getShortParameter

    public short getShortParameter(java.lang.String name)
                            throws ParameterNotFoundException,
                                   java.lang.NumberFormatException

  Devuelve un parametro como short

  Parameters:
    `name` - nombre del parametro
  Returns:
    valor del parametro como un short
  Throws:
    `ParameterNotFoundException` - si el parametro no se encuentra
    `java.lang.NumberFormatException` - si el parametro no puede ser convertido a short

### getShortParameter

    public short getShortParameter(java.lang.String name,
                                   short def)
                            throws java.lang.NumberFormatException

  Devuelve un parametro como short o un valor por defecto si no puede convertirse a short

  Parameters:
    `name` - nombre del parametro
    `def` - valor por defecto del parametro
  Returns:
    valor del parametro o su valor por defecto si no se encuentra
  Throws:
    `java.lang.NumberFormatException` - si el parametro no puede convertirse a short

### getMissingParameters

    public java.lang.String[] getMissingParameters(java.lang.String[] required)

  Determina cuales de los parametros requeridos en la request no vienen en ella Devuelve null si están presentes todos los parametros requeridos

  Parameters:
    `required` - array de parametros requeridos
  Returns:
    un array con los parametros requeridos no presentes o null si vienen todos los parametros requeridos

### parseParameters

    public static java.util.Map parseParameters(java.lang.String data,
                                                java.lang.String encoding)
                                         throws java.io.UnsupportedEncodingException

  Obtener un Map a partir de los parametros de la request NOTA: Se presume que el mapa especificado no es accedido por otro thread con lo que no se hacen sincronizaciones

  IMPLEMENTATION NOTE: Se realiza una decodificacion de URL individualmente tanto en el nombre como en el valor del parametro en lugar de hacerlo en toda la query string Esto es así para soportar el caso en que el nombre o el valor incluyan el caracter "=" o "&" codificados que de otra forma podrían ser interpretados como delimitadores NOTE: Los datos del byte array de entrada son modificados en este método... cuidadin!

  Parameters:
    `data` - Cadena que contiene los parametros
    `encoding` - Encoding utilizado para convertir a Hex
  Returns:
    El mapa con los parametros. El mapa tiene el formato nombre,array de strings con los valores del parametro *
  Throws:
    `java.io.UnsupportedEncodingException` - si los datos están mal formados

### parseParameters

    public static java.util.Map parseParameters(byte[] data,
                                                java.lang.String encoding)
                                         throws java.io.UnsupportedEncodingException

  Obtener un Map a partir de los parametros de la request NOTA: Se presume que el mapa especificado no es accedido por otro thread con lo que no se hacen sincronizaciones

  IMPLEMENTATION NOTE: Se realiza una decodificacion de URL individualmente tanto en el nombre como en el valor del parametro en lugar de hacerlo en toda la query string Esto es así para soportar el caso en que el nombre o el valor incluyan el caracter "=" o "&" codificados que de otra forma podrían ser interpretados como delimitadores NOTE: Los datos del byte array de entrada son modificados en este método... cuidadin!

  Parameters:
    `data` - Cadena que contiene los parametros
    `encoding` - Encoding utilizado para convertir a Hex
  Returns:
    El mapa con los parametros. El mapa tiene el formato nombre,array de strings con los valores del parametro
  Throws:
    `java.io.UnsupportedEncodingException` - si los datos están mal formados

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD