JAVA SERVER PAGES

JavaServer Pages

JavaServer Pages (JSP) es una tecnología que ayuda a los desarrolladores de software a crear páginas web dinámicas basadas en HTML y XML, entre otros tipos de documentos. JSP es similar a PHP, pero usa el lenguaje de programación Java.


JSP puede ser visto como una abstracción de alto nivel de los servlets Java. Las JavaServer Pages son traducidas a servlets en tiempo real; cada servlet es guardado en caché y rehusado hasta que la JSP original es modificada. Dicho en otras palabras un JSP son páginas java para un ambiente web.

Qué es el API de JSP

Es una interfaz de programación de aplicaciones (API, por sus siglas del inglés: Application Programming Interface) provista por los creadores del lenguaje de programación Java, que da a los programadores los medios para desarrollar aplicaciones Java.

Como el lenguaje Java es un lenguaje orientado a objetos, la API de Java provee de un conjunto de clases utilitarias para efectuar toda clase de tareas necesarias dentro de un programa.

La API Java está organizada en paquetes lógicos, donde cada paquete contiene un conjunto de clases relacionadas semánticamente.

Ciclo de vida JSP

  • El servlet asociado a una jsp es un servlet por lo siguiente: implementa la interface javax.servlet.jsp.HttpJspPage, que es subinterface de JspPage del mismo paquete, que, a su vez, es subinterface de javax.servlet.Servlet.
  • Como todo servlet se caracteriza por implementar la interface Servlet, queda asegurado que el código Java generado en la traducción de la jsp es un servlet. Si se consulta la API J2EE, se observa que
  • La interface HttpJspPage declara el método _jspService(HttpServletRequest request, HttpServletResponse response).
La interface JspPage declara los métodos jspInit() y jspDestroy().
Estos tres métodos constituyen el ciclo de vida de una jsp y son similares al init(..), service(..) y destroy() del ciclo de vida de un servlet.


Código JSP
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  5. <title>Mi Primer JSP</title>
  6. </head>
  7. <body>
  8. <h1>Mi Primer JSP</h1>
  9.  
  10. <% // Código Java %>
  11.  
  12. </body>
  13. </html>

Comentarios en las paginas jsp

<%-- comentario jsp que solo se ve en la jsp --%>
 <%// comentario de linea Java que solo se ve en la jsp y en su servlet asociado %> 
<% /*comentario de Java. Se ve donde el anterior.*/ out.println("CUCU");
 //out.println("No me verás si no descomentas"); %>

 

Objetos implícitos de JSP

Objetoescripción Clase o interfaz Categoria
page Instancia de la página JSP actual java.lang.Object Relacionados con los servlets
config Contiene información relativa a la configuración del servlet generado java.servlet.ServletConfig
request Petición realizada la página JSP javax.servlet.http.HttpServletRequest Entrada/Salida
response Respuesta proporcionada por la página JSP javax.servlet.http.HttpServletResponse Entrada/Salida
out Representa el flujo de salida del cuerpo de la respuesta HTTP javax.servlet.jsp.JspWriter Entrada/Salida
session Permite mantener una sesión para cada uno de los usuarios conectados a la aplicación Web javax.servlet.http.HttpServletSession Contexto
application Representa a la propia aplicación Web java.servlet.ServletContext Contexto
pageContext Contexto en el que se ejecuta la página JSP javax.servlet.jsp.PageContext Contexto
exception Excepción que se ha producido en una página JSP Java.lang.throwable Tratamiento de errores



Manejo de errores dentro de la página actual


La página JSP puede entonces llevar a cabo la acción de recuperación adecuada en función del error recibido. Una página JSP puede utilizar cualquier combinación de los siguientes ámbitos de manejo de errores.

La página JSP puede utilizar bloques try y catch para capturar la excepción de modo que pueda llevar a cabo la acción adecuada en función del tipo de excepción. El siguiente es un ejemplo de un fragmento de código JSP que utiliza sentencias Java try y catch:

SomeDataBean sdb = new SomeDataBean();
sdb.setSomeProperty("");
try {         
 com.ibm.commerce.beans.DataBeanManager.activate(sdb, request); }
catch(Exception ex){
  //Maneje la excepción de la forma que desee..
}
 
Para obtener más detalles sobre un error, incluya un ErrorDataBean en el archivo JSP. Se puede crear una instancia de ErrorDataBeans, se pueden llenar y utilizar. A continuación se proporciona un ejemplo:

ErrorDataBean errorBean = new ErrorDataBean ( );
com.ibm.commerce.beans.DataBeanManager.activate (errorBean, request);
 
Una vez que se ha creado una instancia del bean de datos, éste cuenta con métodos para obtener ExceptionData, ExceptionMessage, MessageKey, ExceptionType, y otros métodos de ayudante.

Para archivos JSP de escaparate, utilice StoreErrorDataBean para manejar los errores.

Expresión JSP

Se usan para mandar valores directamente a la pagina web resultante de la JSP, <%= expresion %>, la expresion es ejecutada, se convierte a una cadena de caracteres (String) y insertada en la pagina. En las expresiones se usan gran cantidad de variables predefinidas, los mas usados son:
  • request, de la clase HttpServletRequest
  • response, de la clase HttpServletResponse
  • session, de la clase HttpSession que esta asociada al request, si es que trabajamos con sessions
  • out, se trata de una clase PrintWriter usada para imprimir directamente en la pagina resultante.
Sintaxis: <%= expression %>

 

Buffering en JSP

Cualquier cosa generada por la página JSP se almacena en un búfer. Cuando el búfer está lleno, se devuelve al cliente (navegador). A veces, es necesario ajustar los atributos de buffer y autoFlush para darle más control sobre cómo y cuándo el búfer se vacía al navegador.

Por ejemplo, si no tiene cuidado con una response.sendRedirect , puede obtener una java.lang.IllegalStateException . Esto ocurre cuando está realizando un redireccionamiento después de que los datos ya han sido confirmados en el navegador.
 
El atributo autoFlush indica al motor JSP cuando se debe descargar el búfer. De forma predeterminada, se establece en true. Si lo establece en false y el búfer se llena, se lanzará una excepción.
 
Cuando el búfer se vacía una vez, la redirección o el reenvío no funcionarán. Todos los cambios en el encabezado de respuesta HTTP deben producirse la primera vez que se envía un búfer al cliente JSP,. Por ejemplo, tenga cuidado donde se hace el procesamiento de cookies!

 

No hay comentarios:

Publicar un comentario

Webservices

WEB SERVICE El término Web Services describe una  forma estandarizada de integrar aplicaciones WEB mediante el uso de XML, SOAP, WSDL y U...