getParameter
Para leer una petición de parámetro de un formulario, tan solo, hay que llamar al método getParameter procedente de la clase HttpServletRequest, suministrando el nombre del parámetro como un argumento. Es preciso recordar que distingue entre mayúsculas y minúsculas.
El programador facilita el nombre exacto del parámetro tal como figura en código HTML, y se recoge el resultado como el usuario final lo ha insertado. A diferencia de muchas alternativas de la tecnología servlet, se usa el método getParameter tanto para datos mandados por GET (doGet) o POST (doPost); el servlet sabe por qué método ha sido enviado el dato y automáticamente usa el método apropiado para leerlo.
Una cadena vacía es devuelta si el parámetro existe pero carece de valor, sino existe se devuelve un null. Es necesario tener presente la distinción de las mayúsculas y minúsculas, ya que no es lo mismo, y puede llevar a errores. Por ejemplo entre request.getParameter("Nombre") y request.getParameter("nombre").
getParameterValues
Si algún nombre de parámetro puede aparecer más de una vez en el formulario, se debería de llamar el método getParameterValues que devuelve un vector de strings. El valor devuelto de getParameterValues es nullo si no existe dicho parámetro y un elemento en la array si el parámetro solamente tiene un valor, es decir, es simple.
Se puede usar siempre el valor simple con getParameter y evitar getParameterValues. Sin embargo cuando se trabaja en grupo, es posible que necesites desenvolverte con este tipo de métodos. Además, para los valores multiseleccionables de las cajas de listados repiten el nombre del parámetro por cada elemento seleccionado de la lista. Por tanto no se puedes evitar siempre los valores multievaluados.
getParameterNames
Se usa getParametersNames para obtener una lista Enumeration de cada entrada en String empleadas en una llamada a getParameter o getParameterValues. Si no existen parámetros en la petición actual, getParametersNames devuelve un Enumeration vacío, que no nulo. Se ha de tener en cuenta que Enumeration es una interface que simplemente garantiza que existan métodos hasMoreElements y nextElement; no garantiza que cualquier estructura de datos pueda ser usada.
getParameterMap
Este método es una alternativa a getParameterNames. Devuelve un mapa: los nombres de parámetro con sus respectivos valores formando una tabla de valores. El nombre de cada parámetro será el identificador, por supuesto.
getReader o getInputStream
En vez de leer los parámetros de forma individual, también se puede acceder a la consulta de datos directamente llamando a getReader o getInputStream dentro de HttpServletRequest. Por otra parte, si se lee el dato en dicha manera, no se garantiza que esté disponible con getParameter. Estas herramientas se utilizan en dos situaciones; cuando los datos deben de ser analizados y provienen de un cliente personalizado en vez de un formulario HTML, o cuando los datos se leen desde un archivo subido (input type="file"...), aunque para leer tales archivos es necesario una librería como puede ser el proyecto Jakarta de Apache ya que desafortunadamente la api de servlet no soporta dicha función.
setCharacterEncoding
Igual es útil leer datos de entrada en distinta codificación de caracteres, por defecto getParameter usa la codificación del servidor por el que corre. Para cambiarlo se usa el método setCharacterEncoding de ServletRequest. Podría existir la opción de tener que trabajar con varios sistemas de codificación de caracteres a la vez, en ese caso, lo lógico sería utilizar una función de detección automática para luego convertirla a la codificación por defecto. Aquí está la lista de codificaciones que soporta Java.
Ejemplo con getParameter para leer valores simples de un formulario


No hay comentarios:
Publicar un comentario