Introducción a Java Server Pages

Java Server Pages (JSP) es una tecnología que nos permite mezclar HTML estático con HTML generado dinámicamente. Simplemente escribimos el HTML regular de la forma normal, usando cualquier herramienta de construcción de páginas Web que usemos normalmente. Encerramos el código de las partes dinámicas en unas etiquetas especiales

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>

    <h1>JSP Page</h1>
    <%
        int num=0;
        
        for(num=0;num<10;num++){
            out.println(""+num);
        }
    %>
    
    </body>
</html>
						
¿Cuáles son las Ventajas de JSP?
  • Contra Active Server Pages (ASP). ASP es una tecnología similar de Microsoft. Las ventajas de JSP estan duplicadas. Primero, la parte dinámica está escrita en Java, no en Visual Basic. Segundo, es portable a otros sistemas operativos y servidores Web.
  • Contra los Servlets. JSP no nos da nada que no pudierámos en principio hacer con un servlet. Nuestros expertos en diseño de páginas Web pueden construir el HTML, dejando espacio para que nuestros programadores de servlets inserten el contenido dinámico.
  • Contra JavaScript. JavaScript puede general HTML dinámicamente en el cliente. Este una capacidad útil, pero sólo maneja situaciones donde la información dinámica está basada en el entorno del cliente.
Volver

Sintaxis

Volver

HTML estatico

un gran porcentaje de nuestras páginas JSP consistirá en HTML estático, conocido como plantilla de texto. En casi todos lo aspectos, este HTML se parece al HTML normal, sigue la mismas reglas de sintaxis, y simplemente "pasa a través" del cliente por el servlet creado para manejar la página. No sólo el aspecto del HTML es normal, puede ser creado con cualquier herramienta que usemos para generar páginas Web.

Volver

Elementos Script

Expresiones:


Se usan para mandar valores directamente a la pagina web resultante de la JSP, <%= expresion %>
En las expresiones podemos usar 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.
	<jsp:expresion>
		Expresion Jsp
	</jsp:expresion>
				  

Declaraciones:

Las declaraciones JSP nos permiten configurar variables para su uso posterior en expresiones o scriptlets. También podemos declarar variables dentro de expresiones o scriptlets en el momento de usarlas. es toda la página JSP, no hay concepto de variables. Las declaraciones van encerradas entre etiquetas de declaración <%! Codigo Java %>. Como las declaraciones no generan ninguna salida,ejemplo:

	<! private int accesCount = 0; >
		Numero de accesos a la pagina
	<= +,+accesCount>
				  

Este codigo imprime el numero de veces que se ha solicitado la pagina actual desde que el servidor se arranco .

Scriptlets:

Si lo que queremos hacer es algo mas complejo que una expresion, es decir crear un codigo java complejo e insertarlo en el servlet resultante de la compilacion de la pagina JSP usaremos Scriptlets, la manera de insertar este codigo es:

	<%
		codigo a incluir
	%>
					
Con los Scriptlets tambien podemos escribir en la pagina resultante sin usar las expresiones, la manera de hacerlo es usar la variable out con su metodo println:
	<%
		out.println("Salida a la pagina");
	%>
				  
Si queremos usar los caracteres "%>" dentro de un scriplet, debemos poner "%\>". Finalmente observa que el equivalente XML de <% Codigo %> es:
	<jsp:scriptlet>
		Codigo
	</jsp:scriptlet>
				  
Volver

Directivas Jsp

Directiva Include


Se usa para incluir un fichero dentro de la propia pagina JSP que estamos construyendo. Se pueden añadir páginas JSP, HTML o ficheros de texto, incluso ficheros con código Java. Hay que tener cuidado que los ficheros de texto que se añaden no incluyan las etiquetas <html>, </html>, <body>, o </body>, ya que se confunden con las de mi página JSP.
Hay dos tipos de include, estatico o dinamico:

  • Estatico : Es un fichero que es analizado y su contenido es anexado a la página JSP resultante.
  • Dinamico: La página JSP realiza una solicitud a la URL indicada que envia de vuelta un resultado que es anexado a la página JSP.
La manera de realizar un include en una posicion especifica de una página JSP es:
<%@ include file="URL" %>
				

Directiva Page


Aquí podemos ver la síntaxis de la directiva page. Los valores por defecto se muestran en negrita. Los corchetes ([...]) indican un término opcional. La barra vertical (|) proporciona una elección entre dos valores como true y false.

<%@ page 

  [ language="java"] 
  [ extends="package.class"] 
  [ import= "{ package.class|package.*}, ..." ] 
  [ session="true|false"] 
  [ buffer="none|8kb|sizekb"] 
  [ autoFlush="true|false"] 
  [ isThreadSafe="true|false"] 
  [ info="text"] 
  [ errorPage="URLrelativa"] 
  [ contentType="mimeType[ ;charset=characterSet]" |  "text/html; charset=ISO-8859-1"] 
  [ isErrorPage="true|false"]

%>
						

Volver

Variables de Jsp

Hay una serie de variables propias de las paginas JSP a las que se puede acceder directamente, ya que estan definidas en el servlet resultanteRequest:

Esta variable es el HttpServletRequest del Servlet, de esta manera podemos tratar los parametros de la peticion realizada a la pagina JSP, las cabeceras y el tipo de peticion:

  • Response: Esta variable es el HttpServletResponse del Servlet y que esta asociado a la respuesta que la pagina JSP dara al cliente.
  • out: Es el PrintWriter que nos sirve para escribir en la respuesta que el daremos al cliente, es decir a la pagina resultante de la llamada a la pagina JSP. Sin embargo este PrintWriter no es uno normal, sino que tiene buffer y es llamado JSPWriter. Podemos ajustar el tamaño del buffer o desactivarlo usando la directiva page: <%@page buffer=["none|8kb|sizekb"]%>.
  • session: Es el HttpSession asociado a la peticion. Las sesiones se crean automaticamente, por eso esta variable siempre existe a no ser que con la directiva page lo desactivemos.
  • application: Este es el ServletContext obtenido mediante getServletConfig().getContext().
  • config: Este es el objeto ServletConfig para esta página.
  • pageContext: Esto representa una clase llamada PageContext que sirve para encapsular caracteristicas especificas del servidor, el significado de esto es que si accedemos a propiedades especificar del servidor mediante estas variables, entonces nuestro codigo funcionara en la mayoria de los motores JSP.
  • page: Es lo mismo que this en cualquier otra clase de java.


  • Volver