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:
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:
- Declarar que la página participa en una sesión (por defecto habilitada).
- Leer o escribir el objeto session.
- 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:
-
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.
-
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:
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;
}
}
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;
}
}
Comentarios
Publicar un comentario