JSP. 7 Obtención de datos del navegador


Objeto request

Un servidor debe ser capaz de recibir los datos mandados por el usuario e interpretarlos. Los contenedores web proporcionan un conjunto de variables implícitas que pueden utilizarse dentro de las páginas JSP, una de estas variables es request, que contiene las peticiones del cliente.

Algunas de las variables disponibles son:

Variable
Clase
Descripción
pageContext javax.servlet.jsp.PageContext Proporciona acceso a todos los objetos y atributos de una página JSP.
request javax.servlet.http.HttpServletRequest Accede a los datos mandados por el usuario.
response javax.servlet.http.HttpServletResponse Acceso a los datos que serán mandados de vuelta al cliente.
session javax.servlet.http.HttpSession El objeto session permite guardar información asociada a cada usuario individualmente.
config javax.servlet.ServletConfig
Objeto utilizado para pasar información contenida en el archivo web.xml a los servlets.

application javax.servlet.ServletContext
El objeto application permite guardar información asociada a toda la aplicación web.

out javax.servlet.jsp.JspWriter Este objeto nos permite escribir en la salida estándar de JSP, que es cuerpo del HTML.
page java.lang.Object

exception java.lang.Exception
Solo puede utilizarse en las páginas marcadas como error. Objeto que permite acceder a la excepción ocurrida.


El objeto request tiene un método getParameter() que nos permite recuperar el valor de una variable. Si desde otra página nos mandan un formulario con un input text donde su atributo name es user, para obtener su valor haríamos:
String usuario = request.getParameter("user");

Si se utiliza una lista con multiselección necesitaremos obtener varios valores y no solo uno, en este caso se utiliza getParameterValues() que devuelve un array. Si no activamos un radio o checkbox nos devolverá null.
String[] miLista = request.getParameterValues("listaNombres");

 

Sesiones

Una sesión puede ser vista como la forma que existe entre el cliente y el servidor de hacer el seguimiento de un usuario a través de la aplicación.
JSP proporciona un método sencillo para controlar sesiones, utilizando el objeto implícito session. La forma de usar una sesión en JSP es:
  1. Declarar que la página participa en una sesión (por defecto habilitada).
  2. Leer o escribir el objeto session.
  3. Terminar la sesión finalizándola o no hacer nada y dejar que caduque.

Declarar en una página el seguimiento de sesiones:
<%@page contentType="text/html" pageEncoding="UTF-8" session="true"%>

Al estar el valor de session="true", el objeto implícito javax.servlet.http.HttpSession se encuentra disponible como session. Representará la sesión si existe o la creará si no existe. Por defecto el valor es true, así que si no se declara se asume que la página seguirá sesiones.
Para acceder a session utilizamos sus métodos:
  • session.setAttribute("user", s);// clave, Objeto
    Guardar un objeto s en la sesión, asignándole como clave asociada al objeto la cadena user.
  • session.getAttribute("user");
    Obtener el objeto guardado con clave asociada user.
  • String id = session.getId();
    Obtener el identificador de la sesión.
  • session.invalidate();
    Cerrar la sesión, esto se hará cuando ya no se necesite.

Como el protocolo HTTP no nos dice si el cliente está activo o no y hay que eliminar las sesiones antiguas, el único mecanismo que tenemos es utilizar un tiempo de espera, los servidores nos permiten definir tiempos de espera para las sesiones. Este tiempo se puede obtener mediante session.getMaxInactiveInterval() y se puede cambiar con session.setInactiveInterval(), este tiempo de espera se define en segundos. Si se establece el tiempo de espera a -1 la sesión no caduca nunca.

En el archivo web.xml se puede definir esta información:

<session-config>
   
<session-timeout>-1</session-timeout>
</session-config>

El ámbito de una variable puede definirse con el atributo scope:

Atributo
Descripción
page
Disponible solo para la página donde fue creada
request
Disponible para las página que están manipulando la petición.
session
Disponible para cualquier página dentro de la misma sesión.
application
Disponible para cualquier página que se encuentre en la misma aplicación. Compartir datos entre distintas sesiones.

JavaBean

Un JavaBean es un componente con una serie de propiedades o atributos y una determinada forma de acceder a ellas. Básicamente es una clase Java normal, con un constructor vacío y por cada propiedad sus métodos get/set.

Ejemplo JavaBean:

public class Coche {

   
public enum MiColor {

      
ROJO, AZUL, VERDE, MARRON, AMARILLO, NARANJA, BLANCO, NEGRO
    }
   
private String modelo;
   
private MiColor color;
   
private String marca;

   
public Coche() {
    }

   
public MiColor getColor() {
      
return color;
    }

   
public void setColor(MiColor color) {
      
this.color = color;
    }

   
public String getMarca() {
      
return marca;
    }

   
public void setMarca(String marca) {
      
this.marca = marca;
    }

   
public String getModelo() {
      
return modelo;
    }

   
public void setModelo(String modelo) {
       
this.modelo = modelo;
    }
}

Entradas populares de este blog

Java. Texto de colores en la consola

JSP. 8 Ejemplo recojer datos

JSP. 26 Ejemplo MVC simple