Escolar Documentos
Profissional Documentos
Cultura Documentos
Las JSPs son en realidad una forma alternativa de crear servlets ya que el cdigo
JSP se traduce a cdigo de servlet Java la primera vez que se le invoca y en
adelante es el cdigo del nuevo servlet el que se ejecuta produciendo como salida
el cdigo HTML que compone la pgina web de respuesta.
Introduccin a JSP
La tecnologa JSP (Java Server Pages) es una especificacin abierta desarrollada
por Sun Microsystems como un alternativa a Active Server Pages (ASP) de
Microsoft, y son un componente dominante de la especificacin de Java 2
Enterprise Edition (J2EE). Muchos de los servidores de aplicaciones
comercialmente disponibles (como BEA WebLogic, IBM WebSphere, Live JRun,
Orion, etctera) ya utilizan tecnologa JSP.
Esta tecnologa permite desarrollar pginas web con contenido dinmico y supone
una evolucin frente a la tecnologa CGI, y los Servlets. Un fichero JSP puede
contener etiquetas HTML normales, y elementos especiales para generar el
contenido dinmico.
Al mismo tiempo permite una separacin en n capas de la arquitectura de la
aplicacin web y se integra perfectamente con todas las API's empresariales de
Java: JDBC, RMI (y CORBA), JNDI, EJB, JMS, JTA, ...
Estructura de una pgina JSP
Una pgina JSP es bsicamente una pgina Web con HTML tradicional y cdigo
Java. La extensin de fichero de una pgina JSP es ".jsp" en vez de ".html"
o".htm", y eso le dice al servidor que esta pgina requiere un manejo especial que
se conseguir con una extensin del servidor o un plug-in.
Un ejemplo sencillo:
<%@ page language="java" contentType="text/html" %>
<html>
<head>
<title>Hola, mundo!!</title>
</head>
<body>
<h1>Hola, mundo!</h1>
Hoy es <%= new java.util.Date() %>.
</body>
</html>
Directivas
Las directivas JSP son instrucciones procesadas por el motor JSP cuando la
pgina JSP se traduce a un servlet. Las directivas usadas en este ejemplo le dicen
al motor JSP que incluya ciertos paquetes y clases. Las directivas estn
encerradas entre etiquetas de directiva
<%@ y %>.
<%@ page import="javax.naming.*" %>
<%@ page import="javax.rmi.PortableRemoteObject" %>
<%@ page import="Beans.*" %>
Declaraciones
Las declaraciones JSP nos permiten configurar variables para su uso posterior en
expresiones o scriptlets. Tambin podemos declarar variables dentro de
expresiones o scriptlets en el momento de usarlas. El mbito es toda la pgina
JSP, no hay concepto de variables de ejemplar. Es decir, no tenemos que declarar
variables de ejemplar para usar en ms de una expresin o scriptlet. Las
declaraciones van encerradas entre etiquetas de declaracin
<%! y %>. Podemos tener varias declaraciones. Por ejemplo,
<%! double bonus; String text; %> .
<%! String strMult, socsec; %>
<%! Integer integerMult; %>
<%! int multiplier; %>
<%! double bonus; %>
Scriptlets
Los scriptlets JSP nos permiten embeber segmentos de cdigo java dentro de una
pgina JSP. El codigo embebido se inserta directamente en el servlet generado
que se ejecuta cuando se pide la pgina. Este scriptlet usa las variables
declaradas en las directivas descritas arriba. Los Scriptlets van encerradas entre
etiquetas <% y %>.
<%
strMult = request.getParameter("MULTIPLIER");
socsec = request.getParameter("SOCSEC");
integerMult = new Integer(strMult);
multiplier = integerMult.intValue();
bonus = 100.00;
%>
Variables Predefinidas
Un scriptlet puede usar las siguientes variables predefinidas: session, request,
response, out, e in. Este ejemplo usa la variable predefinida request, que es un
objeto HttpServletRequest. De igual forma, response es un objeto
HttpServletResponse, out es un objeto PrintWriter, e in es un objeto
BufferedReader. Las variables predefinidas se usan en los scriptlets de la misma
forma que se usan en los servelts, excepto que no las declaramos.
<%
strMult = request.getParameter("MULTIPLIER");
socsec = request.getParameter("SOCSEC");
integerMult = new Integer(strMult);
multiplier = integerMult.intValue();
bonus = 100.00;
%>
Expresiones
La expresiones JSP nos permiten recuperar dinmicamente o calcular valores a
insertar directamente en la pgina JSP. En este ejemplo, una expresin recupera
el nmero de la seguridad social desde el bean de entidad Bonus y lo pone en la
pgina JSP.
<H1>Bonus Calculation</H1>
Social security number retrieved:
<%= record.getSocSec() %>
<P>
Bonus Amount retrieved: <%= record.getBonus() %>
<P>
Etiquetas especficas de JSP
La especificacin JavaServer Pages 1.1 define etiquetas especficas de JSP que
nos permiten extender la implementacin JSP con nuevas caractersticas y ocultar
mucha complejidad a los diseadores visuales que necesitan buscar la pgina
JSP y modificarla
Objetos implcitos
El motor JSP nos ofrece instancias de un conjunto de clases. Son objetos ya
establecidos, que no tenemos ms que usar (no hay que instanciarlos). Deben
utilizarse dentro del cdigo Java. Algunos objetos implcitos:
page (javax.servlet.jsp.HttpJspPage.): Instancia del servlet de la pgina. Esto es
slo un sinnimo de this, y no es muy til en Java. Fue creado como situacin
para el da que el los lenguajes de script puedan incluir otros lenguajes distintos de
Java.
config (javax.servlet.ServletConfig): Datos de configuracin del servlet.
request (javax.servlet.http.HttpServletRequest): Datos de la peticin,
incluyendo los parmetros. Este es el HttpServletRequest asociado con la peticin,
y nos permite mirar los parmetros de la peticin (mediante getParameter), el tipo
de peticin (GET, POST, HEAD, etc.), y las cabeceras HTTP entrantes (cookies,
Referer, etc.). Estrictamente hablando, se permite que la peticin sea una
subclase de ServletRequest distinta de HttpServletRequest, si el protocolo de la
peticin es distinto del HTTP. Esto casi nunca se lleva a la prctica.
Ventajas
Cuando un Servidor Web recibe una peticin de una pgina JSP, ste
lanza el motor JSP, que se ejecuta en el mismo proceso que ese servidor
web.
Todo el tratamiento de la peticin HTTP que se hace en el servidor web hasta que
se devuelve la respuesta al cliente se resume en 4 pasos:
1.
2.
3.
4.
La carga de la clase en el motor servlet tambin ocurre una sla vez desde
la ltima vez que se haya arrancado el motor servlet.
Conclusin
Bibliografas
http://es.wikipedia.org/wiki/JavaServer_Pages
https://sites.google.com/site/conceptoprogramacion/Home/jsp
http://www.inf-cr.uclm.es/www/mpolo/asig/0708/tutorJavaWeb.pdf