El documento describe los conceptos básicos de JSP, incluyendo que es JSP, sus ventajas, objetos implícitos, variables predefinidas, etiquetas, elementos como expresiones, declaraciones, comentarios y scriptlets, y acciones como include y forward. JSP permite crear páginas web dinámicas combinando HTML con fragmentos de código Java a través del uso de estas características.
2. • Que es JSP?
• Ventajas
• Introducción
• Objetos implícitos
• Variables implícitas y predefinidas
• Etiquetas
• Elementos
• Acciones
CONTENIDO
3. QUE ES???
• JSP es una tecnología que ayuda a los
desarrolladores de software a crear
páginas web dinámicas basadas en
HTML, XML, entre otros tipos de
documentos. JSP es similar a PHP, pero
usa el lenguaje de programación Java.
Los archivos JSP combinan HTML con
etiquetas especiales y fragmentos de
código Java. Para desplegar y correr JSP,
se requiere un servidor web compatible
con contenedores servlet como Apache
Tomcat o Jetty.
4. • JSP no nos da nada que no pudierámos
en principio hacer con un servlet. Pero es
mucho más conveniente escribir HTML
normal que tener que hacer un billón de
sentencias println que generen HTML.
Además, separando el formato del
contenido podemos poner diferentes
personas en diferentes tareas.
VENTAJAS
5. INTRODUCCIÓN
• JSP es una especificación de Sun Microsystems
• Sirve para crear y gestionar páginas web dinámicas
• Permite mezclar en una página código HTML para
generar la parte estática, con contenido dinámico
generado a partir de marcas especiales <% .... %>
• El contenido dinámico se obtiene, en esencia,
gracias a la posibilidad de incrustar dentro de la
página código Java de diferentes formas Hay 3
formas de añadir contenido dinámico
• Su objetivo final es separar la interfaz (presentación
visual) de la implementación (lógica de ejecución)
6. INTRODUCCIÓN
• JSP combina HTML con fragmentos de Java para producir páginas web
dinámicas. El fichero que contiene la página HTML tiene la extensión .jsp, y
se almacena en el mismo sitio que una página web normal.
• Cuando un cliente pide una página JSP del sitio web y no se ha ejecutado
antes, la página es pasada al motos de JSP, el cual compila la página
convirtiéndola en un servlet, la ejecuta y devuelve el contenido de los
resultados al cliente.
• ¿Cuál es el funcionamiento básico? Muy sencillo:
• 1) El cliente solicita una página .jsp
• 2) La solicitud llega al servidor
• 3) El servidor «ejecuta» la página .jsp y obtiene un texto en formato html
• 4) El servidor envía el texto html al cliente
• 5) El navegador del cliente visualiza el texto html como si realmente hubiera
estado almacenado en el servidor.
8. INTRODUCCIÓN
Página JSP Servlet
• La página JSP se convierte en un servlet
• La conversión la realiza en la máquina servidora el motor o contenedor
JSP, la primera vez que se solicita la página JSP
• Este servlet generado procesa cualquier petición para esa página JSP
• Si se modifica el código de la página JSP, entonces se regenera y
recompila automáticamente el servlet y se recarga la próxima vez que
sea solicitada
Fichero.jsp ServletJsp.java ServletJsp.class
Traduce
Motor
JSP
Compila
Compila
dor java
10. • JSP utiliza los objetos implícitos, basados en la API de
servlets.
• Estos objetos están disponibles para su uso en
páginas JSP y son los siguientes:
• Objeto request
• Representa la petición lanzada en la invocación
de service(). Proporciona entre otras cosas los
parámetros recibidos del cliente, el tipo de
petición (GET/POST)
• Objeto response
• Instancia de HttpServletResponse que representa
la respuesta del servidor a la petición. Ámbito de
página
OBJETOS IMPLÍCITOS
11. • Las páginas JSP incluyen ciertas variables privilegiadas sin necesidad de
declararlas ni configurarlas:
VARIABLES IMPLÍCITAS
13. • RESPONSE: Esta variable
es el HttpServletResponse
del Servlet y que esta
asociado a la respuesta
que la pagina JSP dara
al cliente.
VARIABLES PREDEFINIDAS
• 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.
• SESSION: Es el HttpSession
asociado a la petición. Las
sesiones se crean
automáticamente, por eso
esta variable siempre
existe a no ser que con la
directiva page lo
desactivemos.
• PAGECONTEXT: esto
representa una clase
llamada PageContext
que sirve para
encapsular
características
especificas del servidor,
el significado de esto es
que si accedemos a
propiedades especificar
del servidor mediante
estas variables, entonces
nuestro código
funcionara en la mayoría
de los motores JSP.
• APLICATION: Este es el
ServletContext obtenido
mediante
getServletConfig().getCo
ntext().
• PAGE: Es lo mismo que
this en cualquier otra
clase de java.
• CONFIG: Este es el objeto
ServletConfig para esta
página.
14. • Son las etiquetas pertenecientes a la especificación JSP. Proporcionan una
funcionalidad básica. Un primer grupo de etiquetas proporciona
funcionalidad a nivel de la página de una manera muy simple:
ETIQUETAS
• Un segundo grupo permite manipular componentes JavaBean sin
conocimientos de Java.
16. • 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 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.
EXPRESIONES
17. • 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. El ámbito es
toda la página JSP, no hay concepto de variables de ejemplar. Es decir, no
tenemos que declarar variables de ejemplar para usar en más de una
expresión o scriptlet. Las declaraciones van encerradas entre etiquetas de
declaración <%! Codigo Java %>. Como las declaraciones no generan
ninguna salida, normalmente se usan en conjunción con expresiones JSP o
scriptlets.
DECLARACIONES
18. • Cuando hablamos de comentarios en JSP tenemos que considerar básicamente
dos circunstancias, a saber:
• 1) Comentarios que aparecen como etiquetas HTML en un archivo jsp y
que SÍ recibe el cliente o peticionario de la página, esto es:
• <!– Comentario HTML (Este comentario sí se pasa al cliente) –>
• esta instrucción al ser una etiqueta/marca HTML se transmitirá directamente a la
página HTML de salida generada por el servlet asociado al JSP para enviarla al
cliente solicitante. Esta instrucción es transparente para el Motor JSP.
• 2) Comentarios escritos en Java entre los identificadores <% y %> que NO se
enviarán al cliente solicitante de la página, sólo aparecen en la propia página JSP
y en su servlet asociado.
• <% // Comentario en Java de una sola línea %>
• o este otro
• <% /* Comentario en Java de una línea y
otra línea,
• y otra línea, o muchas líneas */%>
COMENTARIOS
19. • Si lo que queremos hacer es algo mas complejo que una expresion, es decir
crear un código java complejo e insertarlo en el servlet resultante de la
compilación de la pagina JSP usaremos Scriptlets, la manera de insertar este
código es:
• <%
• código a incluir
• %>
SCRIPTLETS
20. • 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 método
println:
• <%
• out.println("Salida a la pagina");
• %>
• Si queremos usar los caracteres "%>" dentro de un scriplet, debemos poner
"%>".
SCRIPTLETS
22. • La directiva taglib indica al motor jsp que la página va a utilizar “tag libraries” o
librerías de etiquetas . Estas librerías contienen etiquetas creadas por el propio
programador con sus correspondientes atributos que encapsulan determinada
funcionalidad.
• La sintaxis es
• <%@taglib uri=“ . . . . . ” prefix = “ . . . . . ” %>
• donde
• el atributo uri permite localizar el fichero descriptor de la librería de extensión tld.
• el atributo prefix especifica el identificador que todas las etiquetas de la librería
deben incorporar y que no puede coincidir con las palabras reservadas jsp:, jspx:,
java:, javax:, servlet:, sun:, and sunw:
• Como cabe esperar existe un procedimiento para crear estas librerías y que aquí no
vamos a analizar, lo que si haremos es utilizar un par de ellas previamente
construidas.
DIRECTIVAS TABLING
23. • La directiva include inserta el contenido de otro fichero en el fichero
principal JSP, en la línea donde está situada y antes de ser procesada o
traducida a servlet. Su sintaxis es la siguiente.
• <%@ include file=”url relativa” %>
• En otras palabras, la directiva include simplemente copia el contenido del
archivo incluido byte a byte, siendo el resultado similar a si copiamos el
texto del archivo incluido y lo pegamos en el JSP.
DIRECTIVAS INCLUDE
24.
25. • Esta directiva se usa para establecer las
propiedades generales de una página JSP.
Podemos usar esta directiva varias veces a lo
largo de la pagina JSP, pero sólo podemos
asignar el valor de un atributo una vez por
cada una, excepto para el atributo import. Los
valores de la directiva se aplicarán a toda la
pagina.
• Sintaxis
• Aquí podemos ver la sintaxis de la
directiva page con todos sus atributos. 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.
DIRECTIVAS PAGE
<%@ page
[ languaje="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"]
%>
27. • La acción forward se utiliza en JSP para redirigir la petición a otras
página JSP, a otro servlet o a otro recurso estático. Es muy útil
cuando se quiere separar la aplicación en diferentes vistas,
dependiendo de la petición interceptada. Cuando se ejecuta el
servlet origen de la página inicial se redirige la petición hacia el
destino y ya no se vuelve al servlet original. Pueden pasarse
parámetros de la página origen a la de destino, que se
recuperan con el método getParameter del objeto
implícito request. (Ver en este tutorial).
ACCIONES: FORWARD
28. • SINTAXIS
ACCIONES: INCLUDE
• donde
• page: url local que apunta al recurso que va a incluirse. No admite ningún protocolo,
nombre de host o número de puerto.
• param: Opcionalmente puede incluir parámetros a la página a la que desvía la
petición. Este parámetro podrá recuperarse con el objeto implícito request.
29. • La acción include permite la inclusión de la salida de otras
páginas jsp, html, ficheros de texto no formateado, ficheros Java,
ficheros XML, etc. La inclusión se realiza, no durante la traducción
de la jsp (como ocurría con la directiva include), sino justo
después, una vez que el servlet generado ya ha sido creado.
• El mecanismo de inclusión de la salida de la página incluida,
hace que si una página incluida cambia, no es necesario
compilar la página que la contiene.
ACCIONES: INCLUDE
30. • SINTAXIS: Tiene dos atributos, uno obligatorio cuyo nombre es page y otro
opcional cuyo nombre es flush
ACCIONES: INCLUDE
• donde
• page: url local que apunta al recurso que va a incluirse. No admite ningún protocolo,
nombre de host o número de puerto.
• flush: opcional. Por defecto, toma el valor de false. Si se cambia a true, el búfer de
salida se vacía antes de que se incluya el recurso asociado a la acción. Este atributo
no suele utilizarse.
• param name, opcionalmente, puede pasar parámetros a la página principal que
contiene la acción. Desde allí podrán tomarse los datos con getParameter del
objeto request.