Hemos añadido componentes para trabajar de forma más sencilla con las cookies y cabecereas HTTP de las peticiones y respuestas HTTP.
El componente para trabajar con cabeceras HTTP tiene como nombre org.jboss.seam.web.headers y como clase org.jboss.seam.web.HttpHeaders. Es un componente sin estado (stateless). Tiene los siguientes métodos:
public String getRequestHeader(String name) : permite obtener una cabecera de la solicitud
HTTP como cadena de caracteres. Si hay varias definidas con el mismo nombre, devuelve la primera.
public int getRequestIntHeader(String name) : permite obtener una cabecera de la solicitud
HTTP como valor entero.
public long getRequestDateHeader(String name) : permite obtener una cabecera de la solicitud
HTTP de fecha como valor en milisegundos.
public Date getRequestDateHeaderAsDate(String name) : permite obtener una cabecera de la solicitud
HTTP de fecha como una instancia de la clase
java.util.Date.
public Enumeration<String> getRequestHeaders(String name) : permite obtener una cabecera de la solicitud
HTTP como un enumerdo de cadena de caracteres. Util cuando hay varias cabeceras definidas con el mismo nombre.
public Enumeration<String> getRequestHeadersNames() : permite obtener los nombres de las cabeceras definidas en la solicitud
HTTP.
public void addHeader(String name, String value) : permite añadir una cabecera a la respuesta
HTTP independientemente de que esta ya exista o no. Permite añadir varias cabeceras con el mismo nombre. El valor es una cadena de caracteres.
public void setHeader(String name, String value) : permite añadir una cabecera a la respuesta
HTTP si esta no existe o modifica el valor si esta ya existe. El valor es una cadena de caracteres.
public void addHeader(String name, String value, boolean overwrite) : permite añadir/modificar una cabecera a la respuesta
HTTP dependiendo de el valor booleano establecido en
overwrite. El valor es una cadena de caracteres.
public void addIntHeader(String name, int value) : permite añadir una cabecera a la respuesta
HTTP independientemente de que esta ya exista o no. Permite añadir varias cabeceras con el mismo nombre. El valor es un valor entero.
public void setIntHeader(String name, int value) : permite añadir una cabecera a la respuesta
HTTP si esta no existe o modifica el valor si esta ya existe. El valor es un valor entero.
public void addIntHeader(String name, int value, boolean overwrite) : permite añadir/modificar una cabecera a la respuesta
HTTP dependiendo de el valor booleano establecido en
overwrite. El valor es un valor entero.
public void addDateHeader(String name, Date date) : permite añadir una cabecera a la respuesta
HTTP independientemente de que esta ya exista o no. Permite añadir varias cabeceras con el mismo nombre. El valor es una fecha definida como una instancia de la clase
java.util.Date.
public void setDateHeader(String name, Date date) : permite añadir una cabecera a la respuesta
HTTP si esta no existe o modifica el valor si esta ya existe. El valor es una fecha definida como una instancia de la clase
java.util.Date.
public void addDateHeader(String name, Date value, boolean overwrite) : permite añadir/modificar una cabecera a la respuesta
HTTP dependiendo de el valor booleano establecido en
overwrite. El valor es una fecha definida como una instancia de la clase
java.util.Date.
public void addDateHeader(String name, long date) : permite añadir una cabecera a la respuesta
HTTP independientemente de que esta ya exista o no. Permite añadir varias cabeceras con el mismo nombre. El valor es una fecha definida en milisegundos.
public void setDateHeader(String name, long date) : permite añadir una cabecera a la respuesta
HTTP si esta no existe o modifica el valor si esta ya existe. El valor es una fecha definida en milisegundos.
public void addDateHeader(String name, long value, boolean overwrite) : permite añadir/modificar una cabecera a la respuesta
HTTP dependiendo de el valor booleano establecido en
overwrite. El valor es una fecha definida en milisegundos.
Este componente se puede utilizar en expresiones EL. Ejemplo:
package es.um.atica.prueba.backbeans;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.Cookie;
import javax.validation.constraints.Max;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
@Name("pruebaHeaderHttp")
@Scope(ScopeType.PAGE)
public class PruebaHeaderHttp {
@In("#{headers.getRequestHeader('User-Agent')}")
private String miStringHeader;
@In("#{headers.getIntRequestHeader('Upgrade-Insecure-Requests')}")
private int miIntHeader;
@In("#{headers.getDateRequestHeader('Date')}")
private long miMillisecondHeader;
@In("#{headers.getRequestDateHeaderAsDate('Date')}")
private Date miDateHeader;
}
Componentes para trabajar con Cookies HTTP
El componente para trabajar con cookies HTTP tiene como nombre org.jboss.seam.web.cookies y como clase org.jboss.seam.web.HttpCookies. Es un componente sin estado (stateless). Tiene los siguientes métodos:
public Cookie getRequestCookie(String name) : permite obtener una cookie de la petición
HTTP como instancia de la clase
javax.servlet.http.Cookie.
public Cookie[] getRequestCookies() : permite obtener todas las cookies de la petición
HTTP como un array de instancias de la clase
javax.servlet.http.Cookie.
public void removeCookie(String name) : permite eliminar una cookie mediante la respuesta
HTTP.
public void addCookie(Cookie cookie)) : permite añadir una cookie mediante la respuesta
HTTP. La cookie es una instancia de la clase
javax.servlet.http.Cookie.
Este componente se puede utilizar en expresiones EL. Ejemplo:
package es.um.atica.prueba.backbeans;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.Cookie;
import javax.validation.constraints.Max;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
@Name("pruebaHeaderHttp")
@Scope(ScopeType.PAGE)
public class PruebaCookieHttp {
@In("#{cookies.getRequestCookie('mi_cookie')}")
private Cookie miCookie;
@In("#{cookies.getRequestCookie('JSESSIONID')}")
private Cookie miSessionId;
}
— JUAN MIGUEL BERNAL GONZALEZ 28/01/2020 13:18