====== 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 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 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 [[https://docs.oracle.com/javaee/6/api/javax/servlet/http/Cookie.html|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 [[https://docs.oracle.com/javaee/6/api/javax/servlet/http/Cookie.html|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 [[https://docs.oracle.com/javaee/6/api/javax/servlet/http/Cookie.html|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; } \\ ---- --- //[[juanmiguel.bernal@ticarum.es|JUAN MIGUEL BERNAL GONZALEZ]] 28/01/2020 13:18//