JSP

JSP

Java Server Pages es una tecnología de programación del lado del servidor que es utilizado para la creación de páginas web dinámicas con el lenguaje Java. El motor de las páginas JSP está basado en el de los Servlets.

Ventajas 

  • Son más fáciles de aprender y crear que los Servlets.
  • Es mucho más fácil y cómodo crear y modificar las páginas web, ya que se maneja el código HTML y dentro de este va incrustados los scripts de Java, lo que es una ventaja a estar escribiendo sentencias "println" con los servlets para escribir el código HTML.
  • Es portable a otros sistemas operativos y servidores web.  
  • Se puede compartir el trabajo, por ejemplo, los expertos en diseño web pueden crear la página HTML y dejar espacio para que los programadores Java inserten los scripts en ella.
  • Javascript puede generar código HTML dinámicamente e interactuar con el cliente, pero SOLO del lado del cliente. No puede tener acceso a bases de datos, cookies, etc. 

Desventajas

JSP tiene desventajas similares a otras aplicaciones web que se ejecutan en el servidor. 
  • La mayor parte de la lógica de la aplicación se ejecuta en el servidor, por lo que se corre el riesgo de sobrecargar el mismo.
  • El alojamiento web requiere un servidor compatible con Java, como Apache Tomcat. 

Prerequisitos

  • Conocer el lenguaje de marcas HTML y el lenguaje de programación Java. 
  • También debemos tener instalado ya sea Apache Tomcat o GlassFish, servidores para alojar nuestras aplicaciones.
  • Recomendable: un IDE compatible con Java EE. Las versiones "estándar" de los IDEs más populares para Java, por ejemplo, Eclipse y Netbeans, solo vienen destinadas para aplicaciones de escritorio, por lo que se debe descargar una versión "extendida" que tenga compatibilidad con "Aplicaciones Web Java". 
  • Indispensable: tener el JDK instalado.

Directiva JSP

Las directivas JSP nos permiten dar indicaciones e instrucciones para decir como queremos que se manejen ciertos aspectos dentro de nuestra página JSP. Por ejemplo, importar clases, designar una página como "página de error", etc.

Existen 3 tipos de directivas JSP:

  • <%@ page ... %>: Se utiliza para establecer algunas propiedades a nuestra página jsp. Tiene los siguientes atributos: import, sesión, buffer, autoflush, isThreadSafe, errorPage, entre otros.
  • <%@ include ... %>: Nos permite insertar contenido de otro archivo en nuestra página JSP. Por ejemplo, otra página JSP.
  • <%@ taglib ... %>: permite importar una biblioteca de etiquetas personalizadas por el programador. Esto nos permite crear etiquetas personalizadas que hagan alguna acción al insertarlas en nuestra página JSP. 

Elementos del Scritpt

Expresiones: Son fragmentos de código Java que se evalúan y se muestran en la salida del navegador. Es algo parecido al "System.out.println()". Estas tienen 2 tipo se sintaxis.
  • <%= instrucciones Java %>
  • <jsp: expresion> Instruccion </jsp: expresion>
Scriptlets: código Java embebido (incrustado en la página).
<% 
 instrucciones Java.
%>
Declaraciones: como su nombre lo dice, sirve para declarar variables o métodos que podrán ser utilizadas dentro de toda la página JSP. 

<%! int numeroAccesos=0; %>

Comentarios: la forma de escribir comentarios dentro de un JSP es el siguiente. 
 <%-- comentario --%> y dentro de un scriptlet o declaración, se puede usar los típicos comentario de Java. 
<% //Comentario de una línea. %>

<% /*
Comentario de varias lineas
/*
%>

Acciones: las acciones tienen la forma <jsp:accion [parametros] /> , y tienen diversos usos, entre los que destacan la inclusión de páginas y transferencia de control. 

Ejemplo de inclusión de página: <jsp: include page="otra-pagina.jsp"/>

Ejemplo de transferencia de control: 
<jsp:forward page="principal.jsp">
 <jsp:param name="titulo" value="Principal"/>
 </jsp:forward> 

Objetos Implícitos: 
Nos permitirán acceso a diversa información y realizar diversas acciones. En JSP tenemos los siguientes objetos implícitos: request, response, out, session, application, config, pageContext, y page. 

  • request: Es un objetode la clase HttpServletRequest, su uso principal es el acceso a los parámetros de la petición.
  • response: Es un objeto de la clase HttpServletResponse, que asiste al servlet (o JSP) en su generación de la respuesta para el cliente, contiene funciones para manejo de cabeceras, códigos de estado, cookies y transferencia de control. 
  • out: Es un objeto de la clase JspWriter, es el que nos permite acceder a la salida del navegador desde los scriplet.
  • session:  Es un objeto de la clase HttpSession. Nos permite acceder a la sesión asociada a la petición. A través de este objeto podemos, entre otras cosas, guardar objetos que serán accesibles desde cualquier JSP de la sesión o invalidarla.
  • application: Es un objeto de la clase ServletContext. Este objeto es común para toda la aplicación web y, entre otras cosas, nos permite almacenar información que será accesible desde todas las páginas de la aplicación web, independientemente de la sesión.
  • config: Es un objeto de la clase ServletConfig. Permite acceder a parámetros de inicialización del servlet y a su contexto.
  • pageContext:  Es un objeto de la clase PageContext. Entre otras cosas, nos permite almacenar información localmente a la página.
  • page:  Es un sinónimo de this, no tiene utilidad en el estado actual de la especificación.

Cómo importar una clase en un JSP: 

Para importar una clase en un JSP, se utiliza la directiva "page".
<%@ page import="java.sql.SQLException" %>

Utilizar una clase independiente para la conexión a base de datos en JSP: 

Al seguir el patrón MVC (Model-View-Controller) es buena práctica tener una clase independiente que se encargue de gestionar nuestra conexión a una base de datos. Para esto, podemos crear la clase e importarla a nuestro JSP y pasarle los datos por parámetros.

Comentarios

Entradas populares