You are on page 1of 35

Por Klber Posligua Flores

JSP

Objetos Integrados

Introduccin
La especificacin JSP trata de simplificar la creacin y desarrollo de pginas JSP a travs de ciertos objetos integrados que se encuentran disponibles en las pginas JSP. Para utilizar estos objetos no hay que declararlos ni instanciarlos sino que son ofrecidos por el contenedor de pginas JSP para que se utilizan en las mismas.

El objeto request
Este objeto representa la peticin realizada por el usuario que a demandado la pgina JSP actual. Este objeto ofrece acceso a toda la informacin asociada con la peticin, podemos acceder a los campos enviados de un formulario, cabeceras de peticin HTTP, cookies, etc. Tiene 4 cuatro mtodos: setAttribute, getAttribute, getAttributeNames, removeAttribute. Estos mtodos para la manipulacin de atributos son comunes a cuatro objetos integrados: al objeto request, al objeto session, al objeto application y al objeto pageContext, es decir todos estos objetos.

El objeto request: mtodos


void setAttribute(String nombre, Object valor): almacena un atributo en la peticin actual. Como se puede comprobar el atributo puede ser cualquier tipo de objeto. Object getAttribute(String nombre): devuelve un atributo almacenado en la peticin actual. Enumeration getAttributeNames(): devuelve dentro de un objeto java.util.Enumeration los nombres de todos los atributos disponibles en al peticin. void removeAtttribute(String nombre): elimina de la peticin el tributo indicado por parmetro.

El objeto request: mtodos


Enumeration getParameterNames(): devuelve en un objeto Enumeration los nombres de los distintos parmetros presentes en al peticin. String getParameter(String nombre): devuelve el valor del parmetro indicado, si el parmetro no existe devolver un valor null. Los valores de los parmetros siempre se obtienen como un objeto de la clase String. String[] getParameterValues(String nombre): devuelve en un array de objetos String los distintos valores que tiene un parmetro determinado, devolver un valor nulo si el parmetro no existe.

El objeto request: ejemplo


Los atributos almacenados dentro del objeto request poseen un mbito de peticin, esto quiere decir que slo se encontrarn disponibles en la pgina JSP o servlet a los que se ha realizado una peticin.

El objeto request: ejemplo


Pgina: destino.jsp

El objeto request: ejemplo recuperando parmetros


Pgina: formulario.jsp

El objeto request: ejemplo recuperando parmetros (continuacin)


Pgina: formulario.jsp

El objeto request: ejemplo recuperando parmetros (continuacin)

Pgina: formulario.jsp

El objeto request: otros mtodos


Utilizados para obtener informacin de las cabeceras de peticin del protocolo HTTP: Enumeration getHeaderNames(): devuelve en un objeto java.util.Enumeration todas las cabeceras presentes en la peticin HTTP. String getHeader(String nombre): devuelve el valor de una cabecera de la peticin HTTP como un objeto de la clase String. Enumeration getHeaders(String nombre): devuelve todos los valores de la cabecera especificada como un objeto java.util.Enumeration.

El objeto request: otros mtodos


int getIntHeader(String nombre): devuelve el valor de una cabecera como un entero. long getDateHeade(String nombre): devuelve el valor de una cabecera como un entero largo que se corresponde con el valor de una fecha en milisegundos. Cookie[] getCookies(): devuelve todas las cookies asociadas con la peticin de una array de objetos Cookie

El objeto request: otros mtodos


El ltimo conjunto de mtodos del objeto request no tienen una funcionalidad comn, sino que poseen funciones variadas: String getMethod(): devuelve el mtodo HTTP que se ha utilizado para realizar la peticin. String getRequestURI(): devuelve la URL sobre la que se ha realizado la peticin, pero sin incluir ninguna informacin del QueryString (cadena de consulta). String getQueryString(): devuelve la cadena consulta, si existe, que se encuentra en la URL de la peticin.

El objeto request: otros mtodos


HttpSession getSession(boolean crear): devuelve un objeto HttpSession que representa la sesin del usuario actual, si la sesin no existe y se indica el parmetro true, se crear una nueva sesin, que es la que se devuelve. RequestDispatcher getRequestDispatcher(String ruta): devuelve una referencia al recurso indicado en la ruta que se pasa por parmetro. Tiene el mismo significado que el visto en los servlets, es decir, nos va a permitir incluir un recurso en la salida de la pgina JSP actual o redirigir la ejecucin de la pgina JSP a ese recurso.

El objeto request: otros mtodos


String getRemoteHost(): devuelve el nombre de la mquina del cliente que realiz la peticin. String getRemoteAddr(): devuelve la direccin IP del cliente que realiz la peticin. String getRemoteUser(): devuelve el identificador de usuario (login) del cliente que realiz la peticin, si el usuario se ha autenticado, en caso contrario devolver el valor nulo (null).

El objeto request: ejemplo de cabeceras de peticin


La pgina muestra todas la cabeceras de peticin existentes, as como las cookies existentes en la peticin y algunos datos relativos al cliente y en la forma que se ha realizado la peticin.

El objeto request: ejemplo de cabeceras de peticin (continuacin)

El objeto response
Representa la respuesta del protocolo http que se devuelve al cliente que realiz una peticin como resultado de la ejecucin de la pgina JSP que demand.

El objeto response: mtodos


Existen un par de mtodos de este objeto que podemos utilizar para especificar, mediante los tipos MIME, el tipo de respuesta que va a devolver la pgina JSP. Estos mtodos son: void setContentType(String tipo): establece el tipo MIME que identifica el tipo de resultado que va a devolver la pgina JSP al cliente. Opcionalmente se puede especificar la codificacin de caracteres del contenido de la respuesta. String getCharacterEncoding(): devuelve el tipo de codificacin que tiene establecida los contenidos de la respuesta

El objeto response: mtodos


Existe otro grupo de mtodos del objeto response que es utilizado para aadir cabeceras a la respuesta HTTP devuelta por la pgina JSP. void addCookie(Cookie cookie): aade una cookie a la respuesta, representada por el objeto Cookie que se le pasa como parmetro. boolean containsHeader(String nombre): indica si la cabecera que se pasa como parmetro existe o no en la respuesta. void setHeader(String nombre, String valor): establece el encabezado de respuesta HTTP correspondiente con el valor indicado.

El objeto response: mtodos


void setIntHeader(String nombre, int valor): establece el encabezado de respuesta HTTP con el valor entero indicado. void setDateHeader(String nombre, long valor): establece el encabezado de respuesta HTTP con el valor de fecha indicado. void addHeader(String nombre, String valor): aade un encabezado de respuesta con el valor indicado. void addIntHeader(String nombre, int valor): aade un encabezado de respuesta con el valor de entero indicado. void addDateHeader(String nombre, long valor): aade un encabezado de respuesta con el valor de fecha indicado como una variable long.

El objeto response: mtodos


El siguiente conjunto de mtodos del objeto response es utilizado para establecer cdigos de respuesta. void setStatus(int cdigo): establece un cdigo de estado para la respuesta. void sendError(int cdigo, String mensaje): enva al cliente una respuesta de error indicando el cdigo correspondiente y una descripcin del mismo. void sendRedirect(String url): se redirecciona la respuesta enviada al cliente a la URL del recurso indicado.

El objeto response: ejemplo


Desde response1.jsp se llama a response2.jsp
response1.jsp

response2.jsp

El objeto response: otros mtodos


Estos mtodos del objeto response son los que permiten utilizar el mecanismo de reescritura de URLs (URL rewriting). String encodeRedirectURL(String url): codifica la URL especificada para utilizarla en el mtodo sendRedirect(). Si la codificacin es necesaria se incluye el identificador de sesin, en caso contrario se devuelve al URL sin cambiar. String encodeURL(String url): codifica la URL especificada para incluir en un enlace informacin correspondiente a la sesin. Si la codificacin es necesaria se incluye el identificador de sesin, en caso contrario se devuelve al URL sin cambiar.

El objeto out
Representa el flujo de salida de la pgina JSP. El objeto out va a realizar la misma labor que el objeto PrintWriter que manejbamos en los servlets. El objeto integrado out utilizar un bfer intermedio, para enviar el contenido del cuerpo de la respuesta HTTP al cliente, si no indicamos lo contrario en la directiva page. Este objeto es una instancia de la clase javax.servlet.jsp.JspWriter

El objeto out
La clase JspWriter es una clase abstracta que hereda de la clase java.io.Writer, implementando varios de los mtodos de la clase java.io.PrintWriter. En particular hereda los distintos mtodos write() de la clase Writer, e implementa todos lo mtodos print() y println() ofrecidos por la clase PrintWriter.

El objeto out: mtodos


En este caso, al no ser el objeto out instancia de una clase ya conocida de los servlets, vamos a comentar todos los mtodos que ofrece la clase JspWriter: void clear(): elimina el contenido del bfer. Si el bfer ya ha sido vaciado para enviar su contenido al cliente y se lanza el mtodo clear() se producir una excepcin de la clase IOException. void clearBuffer(): elimina los contenidos actuales del bfer. Si algn contenido del bfer ya ha sido enviado al cliente no se producir una excepcin.

El objeto out: mtodos


void close(): cierra el flujo de salida enviando al cliente los contenidos del bfer, una vez cerrado el flujo de salida, no podremos utilizar el mtodo print() o write() sobre el objeto out ya que no generar salida alguna. Una vez que ha sido lanzado el mtodo close() sobre el objeto out no se devolver ningn contenido al cliente. void flush(): vaca el contenido actual del bfer del objeto out (flujo de salida) envindolo al cliente. int getBufferSize(): devuelve el tamao del bfer de salida en bytes. El tamao por defecto de este bfer de 8KB, pero podemos modificarlo a travs de la propiedad buffer de la directiva page.

El objeto out: mtodos


int getRemaining(): devuelve el nmero de bytes que no se han utilizado todava del bfer de salida. boolean isAutoFlush(): indica si el contenido del bfer es enviado de forma automtica al cliente cuando el bfer se llena. Por defecto el contenido del bfer se enva de forma automtica al cliente cuando se llena, este comportamiento se puede modificar a travs de la propiedad autoFlush de la directiva page. void newLine(): escribe un separador de lnea

El objeto out: ejemplo

El objeto out: ejemplo - resultado

El objeto Exception
Este objeto ya no pertenece al grupo de objetos integrados de entrada/salida, este objeto tiene una categora propia y es la de el tratamiento de errores. El objeto integrado exception es una instancia de la clase java.lang.Throwable y nos permite obtener informacin relativa al error que se ha producido. Al contrario que los objetos integrados vistos hasta ahora, este objeto no est disponible en cualquier pgina JSP, sino slo en aquellas que se utilizan para el tratamiento de errores. Indicaremos que una pgina es de tratamiento de errores mediante la propiedad isErrorPage de la directiva page.

El objeto Exception: mtodos


String getMessage(): devuelve el mensaje de error descriptivo que se corresponde con la excepcin que se ha lanzado. void printStackTrace(PrintWriter salida): devuelve en un objeto PrintWriter el volcado de pila que se corresponde que la excepcin que se ha producido. String toString(): devuelve una breve descripcin del objeto Throwable, que consiste en el nombre de la clase de la excepcin y una breve descripcin.

El objeto Exception: ejemplo


paginae.jsp

El objeto Exception: ejemplo


paginaError.jsp

You might also like