Componentes para trabajar con Cookies y Headers HTTP

Hemos añadido componentes para trabajar de forma más sencilla con las cookies y cabecereas HTTP de las peticiones y respuestas HTTP.

Componentes para trabajar con Headers 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

  • fdw2.0/fundeweb2.0/gt/modificaciones_jboss_seam/cookies_headers_components.txt
  • Última modificación: 28/01/2020 14:27
  • por JUAN MIGUEL BERNAL GONZALEZ