JSP

31
JSP Por : Enya Alexandra Fernandez 1101

description

Introduccion al JSP, elementos, características y acciones

Transcript of JSP

Page 1: JSP

JSP

Por :

Enya Alexandra Fernandez 1101

Page 2: JSP

• Que es JSP?

• Ventajas

• Introducción

• Objetos implícitos

• Variables implícitas y predefinidas

• Etiquetas

• Elementos

• Acciones

CONTENIDO

Page 3: JSP

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.

Page 4: JSP

• 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

Page 5: JSP

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)

Page 6: JSP

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.

Page 7: JSP

INTRODUCCIÓN

Page 8: JSP

INTRODUCCIÓNPá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.classTraduce

MotorJSP

Compila

Compilador java

Page 9: JSP

FUNCIONAMIENTO

ClienteServidor

Web

MotorJSP

Extensionesdel servidor

MotorServlet

AnalizadorJSP

CompiladorJava

CargadorClases

Fichero.JSP ServletJSP.java ServletJSP.class

Peticiónfichero.jsp

Respuesta

1º vez

1º vez

1º vez

respuesta

petición

respuestarespuesta

petición

Page 10: JSP

• 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

Page 11: JSP

• Las páginas JSP incluyen ciertas variables privilegiadas sin necesidad de declararlas ni configurarlas:

VARIABLES IMPLÍCITAS

Page 12: JSP

• RESPONSE

• SESSION

• PAGE

• PAGECONTEXT

• OUT

• APLICATION

• CONFIG

VARIABLES PREDEFINIDAS

Page 13: JSP

• 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().getContext().

• PAGE: Es lo mismo que this en cualquier otra clase de java.

• CONFIG: Este es el objeto ServletConfig para esta página.

Page 14: JSP

• 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.

Page 15: JSP

• Expresiones

• Declaraciones

• Comentarios

• Scriptlets

• Directivas

ELEMENTOS

Page 16: 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 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

Page 17: JSP

• 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

Page 18: JSP

• 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 yotra línea,

• y otra línea, o muchas líneas */%>

COMENTARIOS

Page 19: JSP

• 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

Page 20: JSP

• 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

Page 21: JSP

• Tabling

• Include

• Page

DIRECTIVAS

Page 22: JSP

• 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

Page 23: JSP

• 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

Page 24: JSP

DIREC

TIVA

S

Page 25: JSP

• 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"]%>

Page 26: JSP

• Include • Forward

ACCIONES

Page 27: JSP

• 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

Page 28: JSP

• 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.

Page 29: JSP

• 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

Page 30: JSP

• 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.

Page 31: JSP