SlideShare una empresa de Scribd logo
Java Avanzado Emilio Avilés Ávila http://www.techmi.es
Workshop  (25 horas) Workshop Java avanzado para empresas y profesionales
Temario Introducción al desarrollo Web Servlets JSP Javabeans EJB Struts Resumen y conclusiones
Tema 3 JSP: Java Server Pages
Objetivos Introducción al desarrollo Web Servlets JSP Javabeans EJB Struts Resumen y conclusiones   El porqué y los beneficios de JSP Scripting JSP Expresiones Scriptlet Declaraciones Directivas JSP Page Include Diferencia entre programación JSP estándar y basada en XML
3 – JSP: Java Server Pages ¿Por qué JSP? Con los servlet es fácil Leer datos de los Form Data Leer cabeceras de las peticiones http Establecer códigos de estados y cabeceras Usar cookies y Session Tracking Compartir datos entre servlets Recordar datos entre peticiones Pero no es sencillo Usar los println para generar HTML Mantener el HTML
3 – JSP: Java Server Pages Idea de los JSP Usar la estructura estándar HTML. Marcar el código servlet con tag especiales. Las páginas JSP serán traducidas a un servlet y éste será el ejecutado.
3 – JSP: Java Server Pages Beneficios JSP A pesar de no hacer todo lo que los servlet hacen, facilitan muchas tareas: Escribir HTML Leer y mantener HTML JSP posibilitan Uso de editores Web (Dreamweaver, macromedia) Tener diferentes grupos en nuestros equipos Desarrollo de la lógica Diseño de la página Separa la Vista (capa presentación) de la Lógica
3 – JSP: Java Server Pages ¿Qué tiene mejor JSP respecto a…? (1/2) ASP Mejor lenguaje en la parte dinámica Portable a otros servidores y SSOO PHP Mejor lenguaje en la parte dinámica Mejores herramientas de soporte Que los servlets Más sencillo crear HTML Podemos usar herramientas standars Divide y vencerás Los desarrolladores de JSP saben también de servlets
3 – JSP: Java Server Pages ¿Qué tiene mejor JSP respecto a…? (2/2) Javascript client (Browser) El control lo tiene el servidor Lenguaje de programación más rico  HTML Static Características dinámicas Posibilidad de definir etiquetas extensibles Personalizar etiquetas Librería de tags (JSTL)
3 – JSP: Java Server Pages JSP y Servlets en el mundo Real
3 – JSP: Java Server Pages Sencillez de implantación Establecer CLASSPATH Compilar el código Usar paquetes para evitar conflictos Poner los JSP en un directorio especial Usar la carpeta WebContent Usar URLs especiales Las mismas que las HTML excepto la extensión ¡ Solo necesitamos un servidor Web con un contenedor Web que cumpla especificaciones JSP !
3 – JSP: Java Server Pages Mi primer JSP Crear con Netbeans un JSP En mi aplicación Web  MiPrimeraWeb Nombre JSP:  MiprimerJSP.jsp Establecerlo como página inicial  En el descriptor web.xml Welcome page Accede a la URL EJ: http://localhost:8080/MiPrimeraWeb/ MiPrimerJSP.jsp … .  Suerte!!!!
3 – JSP: Java Server Pages De los JSP no hay que confundir… Olvidar que es una  tecnología de Servidor   Y equipararla a HTML, Javascript, applet, etc. ¿Qué sucede en la traducción? El motor JSP  crea el servlet   Traducción al HTML dinámico ¿Qué sucede en la  request ? El código del servlet se ejecuta No se interpreta el JSP El JSP original se ignora Sólo se usa el servlet generado ¿Cuándo sucede la traducción? Se cargan en memoria la primera vez que se llaman. Ya no se vuelve a llamar al motor JSP, está en el Web Server
3 – JSP: Java Server Pages Ciclo de vida de JSP Un JSP en estructura es HTML pero se ejecuta como un  servlet. El  contenedor/motor  JSP  parsea  el .jsp y lo convierte en un  .java  declarado como un  servlet El  contenedor   compila  la anterior clase y la ejecuta como un  servlet  común. La  salida   (output)  de este  servlet  se envía directamente al cliente.
3 – JSP: Java Server Pages Ciclo de vida de JSP
3 – JSP: Java Server Pages En resumen… JSP es más conveniente no más potente Es más fácil construir HTML y permite acceder a la potencia de los servlet Las JSP se traducen en Servlets Es el servlet quien lo ejecuta en la petición Los clientes no ven nada relacionado con JSP Necesitas comprender los Servlets Entendiendo como funcionan los JSP El código del servlet que se llama en el JSP Conocer cuando usar servlet y cuando JSP Otras tecnologías no son tan portables ni estandarizadas como Java
3 – JSP: Java Server Pages Convencidos? ..A programar! JSP :  Documentos de texto que contienen elementos estáticos (HTML, XML, VML) y elementos dinámicos (JSP) que hacen más sencillo la generación de páginas Web Elementos dinámicos Programación estándar JSP (scripting) Programación basada en XML (XML syntax) Custom tags (JSTL)
3 – JSP: Java Server Pages RECOMENDACIÓN Separar código Java de JSP Dos opciones Escribir 25 líneas de código en un JSP Poner esas 25 líneas en un .java y crear un JSP que invoque al fichero Java ¿Qué es mejor? Desarrollo:  Escribes en un IDE java no HTML  Debug:  Puedes ver errores en compilación Test:  Puedes crear test de ejecución múltiple Reutilización:  Misma clase java para varios JSP
3 – JSP: Java Server Pages Sintaxis básica Text HTML <H1> hola </H1> se pasa como él siguiente código al servlet:  out.print(&quot;<H1>hola</H1>&quot;); Comentario HTML <!-- Comment --> : Se pasa igual que antes  JSP Comments <%-- Comment --%> : No se pasan al cliente Escaping <% … /%> Salida igual al código java interpretado
3 – JSP: Java Server Pages Variables predefinidas request El  HttpServletRequest  (1st argumento del servicio/ doGet ) response El  HttpServletResponse  (2nd argumento del servicio/doGet) out Para enviar output al cliente ( response.getPrintWritter())   session El  HttpSession  asociado a la petición ( request.getSession()) application El  ServletContext  (para compartir datos) que se obtiene vía getServletContext().
3 – JSP: Java Server Pages Elementos scripting JSP Expressiones <%= expression %>  Evaluado e insertado como String en la salida del servlet  Ejemplo: Como si fuera un out.print(expression) Scriptlets <% code %>  Manejar cualquier tipo de código válido java Declaraciones <%! code %>  Declaraciones de código fuera del cuerpo del servlet y de cualquier método
3 – JSP: Java Server Pages Expresiones  <%= expression %>   Resultado Expresión evaluada, convertida a String y ubicada en el HTML resultando en el mismo sitio que estaba en el JSP Se incluye en el método  _jspService()  en forma de out.print Ejemplos Hora actual:  <%= new java.util.Date() %> Hostname:  <%= request.getRemoteHost() %> XML Syntax <jsp:expression>Java Expression</jsp:expression> Nota:  No se puede mezclar versiones, si usamos XML syntax todo nuestro JSP debe usar <jsp:expresion> y no Standar JSP
3 – JSP: Java Server Pages Traducción JSP / Servlet JSP Original <H1>A Random Number</H1> <%= Math.random() %> Traducción a código del Servlet
3 – JSP: Java Server Pages Ejemplo de Expresión Unminuto.jsp
3 – JSP: Java Server Pages Parámetros Comparando el ejemplo servlet 3 parámetros
3 – JSP: Java Server Pages Ejercicio práctico Realizar el mismo formulario de registro Nombre Apellidos Pero el destino (action) será, en lugar de un servlet, un JSP mostrando: Nombre y apellidos El tipo de método (POST/GET) por el que envío los parámetros del formulario. … .. Suerte!!!
3 – JSP: Java Server Pages Scriptlets  <% code %>   Resultado El código es incluido de manera verbatim (exacta) en el servlet  _jspService Ejemplos <%  String queryData = request.getQueryString(); out.println(&quot;Attached GET data: &quot; + queryData); %> <% response.setContentType(&quot;text/plain&quot;); %> XML Syntax <jsp:scriptlet>Java Code</jsp:scriptlet> Nota:  No se puede mezclar versiones, si usamos XML syntax todo nuestro JSP debe usar <jsp:expresion> y no Standar JSP
3 – JSP: Java Server Pages Traducción JSP / Servlet  JSP Original <H2>foo</H2> <%= bar() %> <% baz(); %> Servlet code
3 – JSP: Java Server Pages Ejemplo: Cambiar color de fondo ¿Qué está mal de este código?
3 – JSP: Java Server Pages Ejercicio práctico Construir un JSP que aleatoriamente me desee un buen/mal día Salida: “Que tengas un  [buen|mal]  día” Pista: Math.random() < 0.5 Usar scriplet condicional <% if (….) …%> … .  Suerte!!! …. o no???
3 – JSP: Java Server Pages Ejemplo scriptlet Condicional Son insertados tal cual se escriben en el servlet No necesitan ser expresiones completa Java Son más claras y fácil de mantener Ejemplo Resultado en servlet
3 – JSP: Java Server Pages JSP Declaration  <%!= declaration %>   Resultado El código es incluido de manera verbatim (exacta)  en la definición  de la clase del servlet fuera del  _jspService() Ejemplos <%! private int someField = 5; %> <%! private void someMethod(...) {...} %> Consideraciones de diseño Útil para las variables. Para el método, es más normal definirlo en una clase aparte XML Syntax <jsp:declaration>Java Code</jsp:declaration> Nota:  No se puede mezclar versiones, si usamos XML syntax todo nuestro JSP debe usar <jsp:expresion> y no Standar JSP
3 – JSP: Java Server Pages Traducción JSP / Servlet JSP Original Servlet code
3 – JSP: Java Server Pages Ejercicio práctico: La primitiva Realiza un jsp que genere aleatoriamente 6 números del 1 al 49 y los muestre por pantalla. Pista: public static int randomInt(int range) {   return(1 + ((int)(Math.random() * range))); } … .  Suerte!!!
3 – JSP: Java Server Pages Ejercicio práctico Construir un Contador de visitas de nuestra Web Pista 1: Declárate una variable para contar de tipo entero (int) Pista2: increméntala++ Pista3: Muestra el resultado … .  Suerte!!!
3 – JSP: Java Server Pages Ejemplo JSP Declaración Accesos a una página
3 – JSP: Java Server Pages JSP jspInit & jspDestroy Las páginas JSP, como servlet que son, a veces  quieren hacer uso de un  init  y  destroy Problema Sobreescribir estos métodos causa problemas. De hecho, es ilegal hacer declaraciones init y destroy. Solucion:  jspInit & jspDestroy Son métodos vacíos a completar para tales efectos  <%! void jspInit() { …. } /!%> <%! void jspDestroy() {…} /!%>
3 – JSP: Java Server Pages JSP: Variables predefinidas Problema   Las variables predefinidas ( request, response, out, session,…)  son locales al método  _jspService()  No están disponibles para los métodos que declaremos Solución Pasarlas como argumento
3 – JSP: Java Server Pages Ejemplo usando los 3 scripting Realizar una aplicación que generé cinco números aleatorios del 1 al 10 mediante JSP Expresiones JSP Scriplet JSP Declaration
3 – JSP: Java Server Pages Código JSP Expresiones
3 – JSP: Java Server Pages Código JSP scriptlets
3 – JSP: Java Server Pages Código JSP: Declaraciones
3 – JSP: Java Server Pages JSP page directive (I) <%@ page …&quot; %> Da información de alto nivel del servlet que será resultado del JSP Controlando Qué clases son importadas. De que tipo de servlet heredamos. Qué tipo MIME es generado. Gestión de Multithreads. Qué pagina alberga errores inexperados …
3 – JSP: Java Server Pages JSP page directive (II) Tipos Import:  <%@ page import=“class” %> Session:  <%@ page session=&quot;true/false&quot; %>  Content-type <%@ page contentType=&quot;MIME-Type&quot; %> <%@ page pageEncoding=&quot;Character-Set&quot; %> ErrorPage:  <%@ page errorPage=&quot;Relative URL&quot; %> isErrorPage:  <%@ page isErrorPage=&quot;true&quot; %> Extends : <%@ page extends=&quot;package.class&quot; %> isThreadSafe : <%@ page isThreadSafe=&quot;true/false&quot; %>
3 – JSP: Java Server Pages JSP page directive Import <%@ page import=&quot;package.class&quot; %> <%@ page import=&quot;package.class1,...,package.classN&quot; %> Propósito Generar sentencias  import  en la definición del servlet Ojo Aunque las páginas JSP pueden almacenarse en cualquier lugar, las  classes  usadas deben ir en los directorios de los servlets WEB-INF/classes  WEB-INF/classes/paquete….
3 – JSP: Java Server Pages Ejemplo <%@page import=“…”  /%>
3 – JSP: Java Server Pages JSP page directive  contentType Ejemplos: Excel
3 – JSP: Java Server Pages JSP page directive  contentType Ejemplos: Excel Condicionado
3 – JSP: Java Server Pages JSP page directive  session <%@ page session=&quot;true&quot; %> <%-- Default --%> –  <%@ page session=&quot;false&quot; %> Propósito Designar que la página no sea parte de la sesión Por defecto es parte de la  session . Salva memoria en Web con mucho tráfico.
3 – JSP: Java Server Pages JSP page directive  errorPage <%@ page errorPage=&quot;Relative URL&quot; %> Propósito Especifica una página en caso de que sucede alguna excepción inesperada. Ojo También se pueden especificar páginas de error en el descriptor  web.xml
3 – JSP: Java Server Pages JSP page directive  isErrorPage <%@ page isErrorPage=&quot;true&quot; %> <%@ page isErrorPage=&quot;false&quot; %> <%-- Default --%> Propósito Especifica si la página actual puede actuar como página de error. Ojo Tendremos la excepción en la variable  exception
3 – JSP: Java Server Pages JSP page  ErrorPage Ejemplo
3 – JSP: Java Server Pages JSP page directive  extend <%@ page extends=&quot;package.class&quot; %> Propósito Especifica la clase padre del servlet resultado de procesar el JSP Ojo Usar con precaución podemos dejar colgado el sistema Previene de usar las superclasses que implican alto rendimiento Ideal para heredar de las clases que proporciona el server vendor Mejor hacer herencia de clases java!
3 – JSP: Java Server Pages JSP page directive  ThreadSafe <%@ page isThreadSafe=&quot;true&quot; %> <%-- Default --%> <%@ page isThreadSafe=&quot;false&quot; %> Propósito Indica al sistema que no permita accesos concurrentes. Ojo Evitar a toda costa, degrada el rendimiento del sistema.
3 – JSP: Java Server Pages Resumen de Page Directives
3 – JSP: Java Server Pages JSP include directive <% include file=&quot;…&quot; %> Propósito Incluir archivos en la pagina en el momento de traducción del JSP Ojo Es recomendable usar  <jsp:include page=&quot;…&quot;/>  si es posible.
3 – JSP: Java Server Pages <jsp:include…/> <jsp:include page=&quot;Relative address&quot; /> Propósito Reutilizar JSP, HTML, o texto plano Permite  actualizaciones  del contenido incluso sin cambiar el JSP principal Ojo: El JSP incluido no afecta al principal, es solo un output. Las direcciones “\”  son relativas al WebApp Se pueden incluir archivos del WEB-INF
3 – JSP: Java Server Pages <jsp:include…/> Ejemplo Item.jsp Observar que no es HTML Completo
3 – JSP: Java Server Pages Ejemplo jsp include Footers reutilizables
3 – JSP: Java Server Pages JSP con XML syntax ¿Por qué dos versiones? La sintaxis clásica no es compatible con XML <%= ... %>, <% ... %>, <%! ... %> Es ilegal en XML HTML 4 no es compatible con XML No podemos usar editores XML como Spy-XML para generar nuestros JSP
3 – JSP: Java Server Pages JSP con XML syntax (II) Debes usar JSP en muchos entornos XML  Para construir páginas XHTML Para construir documentos regulares XML Para Web Services Para Ajax Luego, existe otra sintaxis, XML-Syntax
3 – JSP: Java Server Pages Para generar XHTML Necesitas JSP XML-Syntax
3 – JSP: Java Server Pages Para generar XML Cuando envías a un cliente un response que espera XML real Como AJAX Como Webservice … Necesitas JSP XML-Syntax
3 – JSP: Java Server Pages Ejemplo Sintaxis estándar (sample.jsp)
3 – JSP: Java Server Pages Ejemplo Sintaxis XML (sample.jspx)
3 – JSP: Java Server Pages Ejercicio práctico: La primitiva Realiza La misma aplicación que la primitiva pero  con XML-Syntax Pista: public static int randomInt(int range) {   return(1 + ((int)(Math.random() * range))); } … .  Suerte!!!
3 – JSP: Java Server Pages Resultado de ambas páginas
Conclusiones Introducción al desarrollo Web Servlet JSP Javabeans EJB Struts Resumen y conclusiones   Enumerar los beneficios de JSP respecto tecnologías análogas. Conocer los elementos de construcción de páginas JSP Expresiones Scriptlet Declaraciones Saber utilizar las directivas de JSP page e include Diferenciar la programación estándar JSP con la basada en XML
Referencias Arquitectura JSP   http:// java.sun.com / developer / onlineTraining / JSPIntro / contents.html#JSPIntro3 MVC en JSP 2.0:   http:// www.javaworld.com / javaworld / jw -12-1999/ jw -12- ssj - jspmvc.html Especificación en Java Sun:   http:// java.sun.com / products / jsp / product.html   JSP Overview:   http:// courses.coreservlets.com / Course - Materials / pdf /csajsp2 En el Tutorial J2EE 4:  http:// java.sun.com /j2ee/1.4/ docs / tutorial / doc / JSPIntro.html#wp100465

Más contenido relacionado

La actualidad más candente (20)

PDF
Introducción al desarrollo de aplicaciones web en Java
Eudris Cabrera
 
PPTX
Servlets exposicion
Flashnet S.A
 
PDF
Jsp servlet- Tutorial BD Conexión
Pattzy Montero
 
ODP
Curso Jsp Mas
Luis Cerra
 
PDF
[ES] Introdución al desarrollo de aplicaciones web en java
Eudris Cabrera
 
PPT
Curso Java Avanzado 5 Ejb
Emilio Aviles Avila
 
PPTX
Java WebServices JaxWS - JaxRs
Hernan Rengifo
 
PDF
Introducción a Tomcat
Iker Canarias
 
PDF
Programación web con JSP
ousli07
 
PDF
Jsp
Julio Pari
 
PDF
Tutorial - REST con java (JAX-RS 2.0)
Abimael Desales López
 
PDF
Java Web Lección 02 - JSP
Eric Gustavo Coronel Castillo
 
PDF
4. Curso Java JSP (Java Server Pages) - Curso 2005-2006
Samuel Marrero
 
PDF
Java web Lección 04 - JSTL
Eric Gustavo Coronel Castillo
 
PDF
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
Samuel Marrero
 
PDF
Manual programacion - java - jsp & xml
gilhorak
 
Introducción al desarrollo de aplicaciones web en Java
Eudris Cabrera
 
Servlets exposicion
Flashnet S.A
 
Jsp servlet- Tutorial BD Conexión
Pattzy Montero
 
Curso Jsp Mas
Luis Cerra
 
[ES] Introdución al desarrollo de aplicaciones web en java
Eudris Cabrera
 
Curso Java Avanzado 5 Ejb
Emilio Aviles Avila
 
Java WebServices JaxWS - JaxRs
Hernan Rengifo
 
Introducción a Tomcat
Iker Canarias
 
Programación web con JSP
ousli07
 
Tutorial - REST con java (JAX-RS 2.0)
Abimael Desales López
 
Java Web Lección 02 - JSP
Eric Gustavo Coronel Castillo
 
4. Curso Java JSP (Java Server Pages) - Curso 2005-2006
Samuel Marrero
 
Java web Lección 04 - JSTL
Eric Gustavo Coronel Castillo
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
Samuel Marrero
 
Manual programacion - java - jsp & xml
gilhorak
 

Destacado (19)

PDF
Curso de-jsp-avanzado by-priale
SttOrm sindef
 
PDF
Tema4 apartado4.2
Jacqueline Villarroel Valenzuela
 
PDF
Tutorial jsp
Gabriela Vazquez
 
ODP
JSP
Laura Pabón
 
PPTX
Comunicacion entre formularios HTML y paginas JSP
Danii Rodriguez
 
PDF
Presentación Java Evolution - GlobalLogic Club
GlobalLogic Latinoamérica
 
PPT
Java collection
Arati Gadgil
 
PDF
07 java collection
Abhishek Khune
 
PPT
Collection Framework in java
CPD INDIA
 
PPTX
Herramientas web 3.0
Colegio Roberto Rodas
 
PDF
Java Collection framework
ankitgarg_er
 
ODP
Java Collections
parag
 
PDF
Java Collections API
Alex Miller
 
PPT
Jsp
SaNdii ML
 
PPT
Curso: Programación Web con Tecnología Java
alvaro alcocer sotil
 
PDF
JAVA SERVER FACES - LECCION 03 - COMPONENTES HTML
Eric Gustavo Coronel Castillo
 
PDF
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
Eric Gustavo Coronel Castillo
 
PDF
Java Web Lección 03 - MVC
Eric Gustavo Coronel Castillo
 
PPT
Paginas de matematicas
espanol
 
Curso de-jsp-avanzado by-priale
SttOrm sindef
 
Tutorial jsp
Gabriela Vazquez
 
Comunicacion entre formularios HTML y paginas JSP
Danii Rodriguez
 
Presentación Java Evolution - GlobalLogic Club
GlobalLogic Latinoamérica
 
Java collection
Arati Gadgil
 
07 java collection
Abhishek Khune
 
Collection Framework in java
CPD INDIA
 
Herramientas web 3.0
Colegio Roberto Rodas
 
Java Collection framework
ankitgarg_er
 
Java Collections
parag
 
Java Collections API
Alex Miller
 
Curso: Programación Web con Tecnología Java
alvaro alcocer sotil
 
JAVA SERVER FACES - LECCION 03 - COMPONENTES HTML
Eric Gustavo Coronel Castillo
 
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
Eric Gustavo Coronel Castillo
 
Java Web Lección 03 - MVC
Eric Gustavo Coronel Castillo
 
Paginas de matematicas
espanol
 
Publicidad

Similar a Curso Java Avanzado 3 Js Ps (20)

PDF
Sesion06 apuntes
AnthonyFisi
 
PDF
JSP
AnthonyFisi
 
PPT
Programacion Web 2o dept
Leonardo Moreno
 
PDF
Practica jsp
macarenabw
 
PDF
Jsp Paginacion
luis angel aranda
 
PPT
Tema2a Jsp
guest03a5107
 
PPTX
Java Web - JSP
Luis Miguel De Bello
 
PDF
Jsp
guest7bc524
 
DOCX
TEMA Nº 3: ELEMENTOS DE JSP
Anyeni Garay
 
PPTX
Jsp(java server pages)
diegob1098
 
PPT
Java Server Page JSP, otra forma de hacer
CarlosLuna812430
 
PDF
Herramientas de Desarrollo de Sistemas
José Tomás Diarte Añazco
 
PDF
Guia java script
mariaunefa
 
PDF
Serlets y jsp pre
jtk1
 
PDF
Serlets y jsp prev
jtk1
 
PPT
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
BYRONMIGUELSUBUYUCPA
 
PDF
Módulo 7–Programación Web con Java.pdf
tripfrap
 
Sesion06 apuntes
AnthonyFisi
 
Programacion Web 2o dept
Leonardo Moreno
 
Practica jsp
macarenabw
 
Jsp Paginacion
luis angel aranda
 
Tema2a Jsp
guest03a5107
 
Java Web - JSP
Luis Miguel De Bello
 
TEMA Nº 3: ELEMENTOS DE JSP
Anyeni Garay
 
Jsp(java server pages)
diegob1098
 
Java Server Page JSP, otra forma de hacer
CarlosLuna812430
 
Herramientas de Desarrollo de Sistemas
José Tomás Diarte Añazco
 
Guia java script
mariaunefa
 
Serlets y jsp pre
jtk1
 
Serlets y jsp prev
jtk1
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
BYRONMIGUELSUBUYUCPA
 
Módulo 7–Programación Web con Java.pdf
tripfrap
 
Publicidad

Más de Emilio Aviles Avila (20)

PPTX
Experiencias emprendedor de apps - AppCierta
Emilio Aviles Avila
 
PPTX
Apps Ser o Estar
Emilio Aviles Avila
 
PPTX
Aplicaciones móviles, experiencias de emprendedor
Emilio Aviles Avila
 
PPTX
Charla estrategia desarrollo aplicaciones móviles Universidad Girona
Emilio Aviles Avila
 
PPT
Desarrollo android - 6 - multimedia
Emilio Aviles Avila
 
PPT
Desarrollo android - 5 - almacenamiento de datos
Emilio Aviles Avila
 
PPT
Desarrollo android - 4 - arquitectura de aplicación
Emilio Aviles Avila
 
PPT
Desarrollo android - 3 - entorno de desarrollo
Emilio Aviles Avila
 
PPT
Desarrollo android - 2 - arquitectura del sistema
Emilio Aviles Avila
 
PPT
Desarrollo android -1 - introduccion
Emilio Aviles Avila
 
PPTX
El mercado de las aplicaciones moviles
Emilio Aviles Avila
 
PDF
Curso Taller Android Procesado Imagen
Emilio Aviles Avila
 
PDF
Taller Curso android WhereAmI
Emilio Aviles Avila
 
PDF
Curso taller android radio streaming
Emilio Aviles Avila
 
PDF
Como ganar dinero con las apps
Emilio Aviles Avila
 
PPT
Curso introducción a android
Emilio Aviles Avila
 
PPT
Curso Introducción a android
Emilio Aviles Avila
 
PPT
Curso desarrollo en android
Emilio Aviles Avila
 
PPTX
TeCHmi Service Portfolio
Emilio Aviles Avila
 
PPT
Curso Uml 3.2 Proceso Unificado
Emilio Aviles Avila
 
Experiencias emprendedor de apps - AppCierta
Emilio Aviles Avila
 
Apps Ser o Estar
Emilio Aviles Avila
 
Aplicaciones móviles, experiencias de emprendedor
Emilio Aviles Avila
 
Charla estrategia desarrollo aplicaciones móviles Universidad Girona
Emilio Aviles Avila
 
Desarrollo android - 6 - multimedia
Emilio Aviles Avila
 
Desarrollo android - 5 - almacenamiento de datos
Emilio Aviles Avila
 
Desarrollo android - 4 - arquitectura de aplicación
Emilio Aviles Avila
 
Desarrollo android - 3 - entorno de desarrollo
Emilio Aviles Avila
 
Desarrollo android - 2 - arquitectura del sistema
Emilio Aviles Avila
 
Desarrollo android -1 - introduccion
Emilio Aviles Avila
 
El mercado de las aplicaciones moviles
Emilio Aviles Avila
 
Curso Taller Android Procesado Imagen
Emilio Aviles Avila
 
Taller Curso android WhereAmI
Emilio Aviles Avila
 
Curso taller android radio streaming
Emilio Aviles Avila
 
Como ganar dinero con las apps
Emilio Aviles Avila
 
Curso introducción a android
Emilio Aviles Avila
 
Curso Introducción a android
Emilio Aviles Avila
 
Curso desarrollo en android
Emilio Aviles Avila
 
TeCHmi Service Portfolio
Emilio Aviles Avila
 
Curso Uml 3.2 Proceso Unificado
Emilio Aviles Avila
 

Último (17)

PPTX
HARDWARE ponderaciones y placas madre.pptx
jjcondori21
 
PDF
albañileriaalbañileriaalbañileriaalbañileriaalbañileria
danteisrael987654321
 
PDF
CyberOps Associate - Cisco Certification
VICTOR MAESTRE RAMIREZ
 
PDF
Distribución de frecuencias y Diagrama de Pareto en Excel - Trabajo Colaborat...
mapaulahiguita
 
PPTX
Los atajos de teclado para toda las VS de Windows
abel230176
 
PPT
(cloud computing) se refiere al acceso a recursos informáticos a través de in...
75485218
 
PPTX
Manejo de Web de demostración modulo IOT.pptx
IsaacFernandoPrezSal1
 
PPTX
Presentación_Estación_Total_Temas_Definidos.pptx fin.pptx
ximenamondrianbecerr
 
PDF
Seguridad y auditorías en Modelos grandes del lenguaje (LLM)
Jose Manuel Ortega Candel
 
PPTX
Presentación de servicios XMS (2025) - Partner Microsoft
INBOUND PLUS SpA
 
PPTX
Revolucionando-los-Informes-Tecnicos-con-IA.pptx
DanielChura9
 
PPTX
Poblacion_y_Muestra para trabajos de investigación pptx
yaneligomezcaceres
 
PDF
S4D430 Col24 Modelado de datos en Dictionary ABAP y ABAP Core Data Services
Libreria ERP
 
PDF
Curso.Formacion.dron.A1.A3.Completo.v1.pdf
jimenoasenjo1
 
PPTX
7°-A-y-B-Matemática-PPT-n°5-05-al-09-de-Octubre.pptx
IsabelCastro985630
 
PDF
AU-Administración Linux Ubuntu Fedora.pdf
Serviciojat
 
PPTX
presentación a introducción de mantenimiento.pptx
ubaldoGonzalez16
 
HARDWARE ponderaciones y placas madre.pptx
jjcondori21
 
albañileriaalbañileriaalbañileriaalbañileriaalbañileria
danteisrael987654321
 
CyberOps Associate - Cisco Certification
VICTOR MAESTRE RAMIREZ
 
Distribución de frecuencias y Diagrama de Pareto en Excel - Trabajo Colaborat...
mapaulahiguita
 
Los atajos de teclado para toda las VS de Windows
abel230176
 
(cloud computing) se refiere al acceso a recursos informáticos a través de in...
75485218
 
Manejo de Web de demostración modulo IOT.pptx
IsaacFernandoPrezSal1
 
Presentación_Estación_Total_Temas_Definidos.pptx fin.pptx
ximenamondrianbecerr
 
Seguridad y auditorías en Modelos grandes del lenguaje (LLM)
Jose Manuel Ortega Candel
 
Presentación de servicios XMS (2025) - Partner Microsoft
INBOUND PLUS SpA
 
Revolucionando-los-Informes-Tecnicos-con-IA.pptx
DanielChura9
 
Poblacion_y_Muestra para trabajos de investigación pptx
yaneligomezcaceres
 
S4D430 Col24 Modelado de datos en Dictionary ABAP y ABAP Core Data Services
Libreria ERP
 
Curso.Formacion.dron.A1.A3.Completo.v1.pdf
jimenoasenjo1
 
7°-A-y-B-Matemática-PPT-n°5-05-al-09-de-Octubre.pptx
IsabelCastro985630
 
AU-Administración Linux Ubuntu Fedora.pdf
Serviciojat
 
presentación a introducción de mantenimiento.pptx
ubaldoGonzalez16
 

Curso Java Avanzado 3 Js Ps

  • 1. Java Avanzado Emilio Avilés Ávila http://www.techmi.es
  • 2. Workshop (25 horas) Workshop Java avanzado para empresas y profesionales
  • 3. Temario Introducción al desarrollo Web Servlets JSP Javabeans EJB Struts Resumen y conclusiones
  • 4. Tema 3 JSP: Java Server Pages
  • 5. Objetivos Introducción al desarrollo Web Servlets JSP Javabeans EJB Struts Resumen y conclusiones El porqué y los beneficios de JSP Scripting JSP Expresiones Scriptlet Declaraciones Directivas JSP Page Include Diferencia entre programación JSP estándar y basada en XML
  • 6. 3 – JSP: Java Server Pages ¿Por qué JSP? Con los servlet es fácil Leer datos de los Form Data Leer cabeceras de las peticiones http Establecer códigos de estados y cabeceras Usar cookies y Session Tracking Compartir datos entre servlets Recordar datos entre peticiones Pero no es sencillo Usar los println para generar HTML Mantener el HTML
  • 7. 3 – JSP: Java Server Pages Idea de los JSP Usar la estructura estándar HTML. Marcar el código servlet con tag especiales. Las páginas JSP serán traducidas a un servlet y éste será el ejecutado.
  • 8. 3 – JSP: Java Server Pages Beneficios JSP A pesar de no hacer todo lo que los servlet hacen, facilitan muchas tareas: Escribir HTML Leer y mantener HTML JSP posibilitan Uso de editores Web (Dreamweaver, macromedia) Tener diferentes grupos en nuestros equipos Desarrollo de la lógica Diseño de la página Separa la Vista (capa presentación) de la Lógica
  • 9. 3 – JSP: Java Server Pages ¿Qué tiene mejor JSP respecto a…? (1/2) ASP Mejor lenguaje en la parte dinámica Portable a otros servidores y SSOO PHP Mejor lenguaje en la parte dinámica Mejores herramientas de soporte Que los servlets Más sencillo crear HTML Podemos usar herramientas standars Divide y vencerás Los desarrolladores de JSP saben también de servlets
  • 10. 3 – JSP: Java Server Pages ¿Qué tiene mejor JSP respecto a…? (2/2) Javascript client (Browser) El control lo tiene el servidor Lenguaje de programación más rico HTML Static Características dinámicas Posibilidad de definir etiquetas extensibles Personalizar etiquetas Librería de tags (JSTL)
  • 11. 3 – JSP: Java Server Pages JSP y Servlets en el mundo Real
  • 12. 3 – JSP: Java Server Pages Sencillez de implantación Establecer CLASSPATH Compilar el código Usar paquetes para evitar conflictos Poner los JSP en un directorio especial Usar la carpeta WebContent Usar URLs especiales Las mismas que las HTML excepto la extensión ¡ Solo necesitamos un servidor Web con un contenedor Web que cumpla especificaciones JSP !
  • 13. 3 – JSP: Java Server Pages Mi primer JSP Crear con Netbeans un JSP En mi aplicación Web MiPrimeraWeb Nombre JSP: MiprimerJSP.jsp Establecerlo como página inicial En el descriptor web.xml Welcome page Accede a la URL EJ: http://localhost:8080/MiPrimeraWeb/ MiPrimerJSP.jsp … . Suerte!!!!
  • 14. 3 – JSP: Java Server Pages De los JSP no hay que confundir… Olvidar que es una tecnología de Servidor Y equipararla a HTML, Javascript, applet, etc. ¿Qué sucede en la traducción? El motor JSP crea el servlet Traducción al HTML dinámico ¿Qué sucede en la request ? El código del servlet se ejecuta No se interpreta el JSP El JSP original se ignora Sólo se usa el servlet generado ¿Cuándo sucede la traducción? Se cargan en memoria la primera vez que se llaman. Ya no se vuelve a llamar al motor JSP, está en el Web Server
  • 15. 3 – JSP: Java Server Pages Ciclo de vida de JSP Un JSP en estructura es HTML pero se ejecuta como un servlet. El contenedor/motor JSP parsea el .jsp y lo convierte en un .java declarado como un servlet El contenedor compila la anterior clase y la ejecuta como un servlet común. La salida (output) de este servlet se envía directamente al cliente.
  • 16. 3 – JSP: Java Server Pages Ciclo de vida de JSP
  • 17. 3 – JSP: Java Server Pages En resumen… JSP es más conveniente no más potente Es más fácil construir HTML y permite acceder a la potencia de los servlet Las JSP se traducen en Servlets Es el servlet quien lo ejecuta en la petición Los clientes no ven nada relacionado con JSP Necesitas comprender los Servlets Entendiendo como funcionan los JSP El código del servlet que se llama en el JSP Conocer cuando usar servlet y cuando JSP Otras tecnologías no son tan portables ni estandarizadas como Java
  • 18. 3 – JSP: Java Server Pages Convencidos? ..A programar! JSP : Documentos de texto que contienen elementos estáticos (HTML, XML, VML) y elementos dinámicos (JSP) que hacen más sencillo la generación de páginas Web Elementos dinámicos Programación estándar JSP (scripting) Programación basada en XML (XML syntax) Custom tags (JSTL)
  • 19. 3 – JSP: Java Server Pages RECOMENDACIÓN Separar código Java de JSP Dos opciones Escribir 25 líneas de código en un JSP Poner esas 25 líneas en un .java y crear un JSP que invoque al fichero Java ¿Qué es mejor? Desarrollo: Escribes en un IDE java no HTML Debug: Puedes ver errores en compilación Test: Puedes crear test de ejecución múltiple Reutilización: Misma clase java para varios JSP
  • 20. 3 – JSP: Java Server Pages Sintaxis básica Text HTML <H1> hola </H1> se pasa como él siguiente código al servlet: out.print(&quot;<H1>hola</H1>&quot;); Comentario HTML <!-- Comment --> : Se pasa igual que antes JSP Comments <%-- Comment --%> : No se pasan al cliente Escaping <% … /%> Salida igual al código java interpretado
  • 21. 3 – JSP: Java Server Pages Variables predefinidas request El HttpServletRequest (1st argumento del servicio/ doGet ) response El HttpServletResponse (2nd argumento del servicio/doGet) out Para enviar output al cliente ( response.getPrintWritter()) session El HttpSession asociado a la petición ( request.getSession()) application El ServletContext (para compartir datos) que se obtiene vía getServletContext().
  • 22. 3 – JSP: Java Server Pages Elementos scripting JSP Expressiones <%= expression %> Evaluado e insertado como String en la salida del servlet Ejemplo: Como si fuera un out.print(expression) Scriptlets <% code %> Manejar cualquier tipo de código válido java Declaraciones <%! code %> Declaraciones de código fuera del cuerpo del servlet y de cualquier método
  • 23. 3 – JSP: Java Server Pages Expresiones <%= expression %> Resultado Expresión evaluada, convertida a String y ubicada en el HTML resultando en el mismo sitio que estaba en el JSP Se incluye en el método _jspService() en forma de out.print Ejemplos Hora actual: <%= new java.util.Date() %> Hostname: <%= request.getRemoteHost() %> XML Syntax <jsp:expression>Java Expression</jsp:expression> Nota: No se puede mezclar versiones, si usamos XML syntax todo nuestro JSP debe usar <jsp:expresion> y no Standar JSP
  • 24. 3 – JSP: Java Server Pages Traducción JSP / Servlet JSP Original <H1>A Random Number</H1> <%= Math.random() %> Traducción a código del Servlet
  • 25. 3 – JSP: Java Server Pages Ejemplo de Expresión Unminuto.jsp
  • 26. 3 – JSP: Java Server Pages Parámetros Comparando el ejemplo servlet 3 parámetros
  • 27. 3 – JSP: Java Server Pages Ejercicio práctico Realizar el mismo formulario de registro Nombre Apellidos Pero el destino (action) será, en lugar de un servlet, un JSP mostrando: Nombre y apellidos El tipo de método (POST/GET) por el que envío los parámetros del formulario. … .. Suerte!!!
  • 28. 3 – JSP: Java Server Pages Scriptlets <% code %> Resultado El código es incluido de manera verbatim (exacta) en el servlet _jspService Ejemplos <% String queryData = request.getQueryString(); out.println(&quot;Attached GET data: &quot; + queryData); %> <% response.setContentType(&quot;text/plain&quot;); %> XML Syntax <jsp:scriptlet>Java Code</jsp:scriptlet> Nota: No se puede mezclar versiones, si usamos XML syntax todo nuestro JSP debe usar <jsp:expresion> y no Standar JSP
  • 29. 3 – JSP: Java Server Pages Traducción JSP / Servlet JSP Original <H2>foo</H2> <%= bar() %> <% baz(); %> Servlet code
  • 30. 3 – JSP: Java Server Pages Ejemplo: Cambiar color de fondo ¿Qué está mal de este código?
  • 31. 3 – JSP: Java Server Pages Ejercicio práctico Construir un JSP que aleatoriamente me desee un buen/mal día Salida: “Que tengas un [buen|mal] día” Pista: Math.random() < 0.5 Usar scriplet condicional <% if (….) …%> … . Suerte!!! …. o no???
  • 32. 3 – JSP: Java Server Pages Ejemplo scriptlet Condicional Son insertados tal cual se escriben en el servlet No necesitan ser expresiones completa Java Son más claras y fácil de mantener Ejemplo Resultado en servlet
  • 33. 3 – JSP: Java Server Pages JSP Declaration <%!= declaration %> Resultado El código es incluido de manera verbatim (exacta) en la definición de la clase del servlet fuera del _jspService() Ejemplos <%! private int someField = 5; %> <%! private void someMethod(...) {...} %> Consideraciones de diseño Útil para las variables. Para el método, es más normal definirlo en una clase aparte XML Syntax <jsp:declaration>Java Code</jsp:declaration> Nota: No se puede mezclar versiones, si usamos XML syntax todo nuestro JSP debe usar <jsp:expresion> y no Standar JSP
  • 34. 3 – JSP: Java Server Pages Traducción JSP / Servlet JSP Original Servlet code
  • 35. 3 – JSP: Java Server Pages Ejercicio práctico: La primitiva Realiza un jsp que genere aleatoriamente 6 números del 1 al 49 y los muestre por pantalla. Pista: public static int randomInt(int range) { return(1 + ((int)(Math.random() * range))); } … . Suerte!!!
  • 36. 3 – JSP: Java Server Pages Ejercicio práctico Construir un Contador de visitas de nuestra Web Pista 1: Declárate una variable para contar de tipo entero (int) Pista2: increméntala++ Pista3: Muestra el resultado … . Suerte!!!
  • 37. 3 – JSP: Java Server Pages Ejemplo JSP Declaración Accesos a una página
  • 38. 3 – JSP: Java Server Pages JSP jspInit & jspDestroy Las páginas JSP, como servlet que son, a veces quieren hacer uso de un init y destroy Problema Sobreescribir estos métodos causa problemas. De hecho, es ilegal hacer declaraciones init y destroy. Solucion: jspInit & jspDestroy Son métodos vacíos a completar para tales efectos <%! void jspInit() { …. } /!%> <%! void jspDestroy() {…} /!%>
  • 39. 3 – JSP: Java Server Pages JSP: Variables predefinidas Problema Las variables predefinidas ( request, response, out, session,…) son locales al método _jspService() No están disponibles para los métodos que declaremos Solución Pasarlas como argumento
  • 40. 3 – JSP: Java Server Pages Ejemplo usando los 3 scripting Realizar una aplicación que generé cinco números aleatorios del 1 al 10 mediante JSP Expresiones JSP Scriplet JSP Declaration
  • 41. 3 – JSP: Java Server Pages Código JSP Expresiones
  • 42. 3 – JSP: Java Server Pages Código JSP scriptlets
  • 43. 3 – JSP: Java Server Pages Código JSP: Declaraciones
  • 44. 3 – JSP: Java Server Pages JSP page directive (I) <%@ page …&quot; %> Da información de alto nivel del servlet que será resultado del JSP Controlando Qué clases son importadas. De que tipo de servlet heredamos. Qué tipo MIME es generado. Gestión de Multithreads. Qué pagina alberga errores inexperados …
  • 45. 3 – JSP: Java Server Pages JSP page directive (II) Tipos Import: <%@ page import=“class” %> Session: <%@ page session=&quot;true/false&quot; %> Content-type <%@ page contentType=&quot;MIME-Type&quot; %> <%@ page pageEncoding=&quot;Character-Set&quot; %> ErrorPage: <%@ page errorPage=&quot;Relative URL&quot; %> isErrorPage: <%@ page isErrorPage=&quot;true&quot; %> Extends : <%@ page extends=&quot;package.class&quot; %> isThreadSafe : <%@ page isThreadSafe=&quot;true/false&quot; %>
  • 46. 3 – JSP: Java Server Pages JSP page directive Import <%@ page import=&quot;package.class&quot; %> <%@ page import=&quot;package.class1,...,package.classN&quot; %> Propósito Generar sentencias import en la definición del servlet Ojo Aunque las páginas JSP pueden almacenarse en cualquier lugar, las classes usadas deben ir en los directorios de los servlets WEB-INF/classes WEB-INF/classes/paquete….
  • 47. 3 – JSP: Java Server Pages Ejemplo <%@page import=“…” /%>
  • 48. 3 – JSP: Java Server Pages JSP page directive contentType Ejemplos: Excel
  • 49. 3 – JSP: Java Server Pages JSP page directive contentType Ejemplos: Excel Condicionado
  • 50. 3 – JSP: Java Server Pages JSP page directive session <%@ page session=&quot;true&quot; %> <%-- Default --%> – <%@ page session=&quot;false&quot; %> Propósito Designar que la página no sea parte de la sesión Por defecto es parte de la session . Salva memoria en Web con mucho tráfico.
  • 51. 3 – JSP: Java Server Pages JSP page directive errorPage <%@ page errorPage=&quot;Relative URL&quot; %> Propósito Especifica una página en caso de que sucede alguna excepción inesperada. Ojo También se pueden especificar páginas de error en el descriptor web.xml
  • 52. 3 – JSP: Java Server Pages JSP page directive isErrorPage <%@ page isErrorPage=&quot;true&quot; %> <%@ page isErrorPage=&quot;false&quot; %> <%-- Default --%> Propósito Especifica si la página actual puede actuar como página de error. Ojo Tendremos la excepción en la variable exception
  • 53. 3 – JSP: Java Server Pages JSP page ErrorPage Ejemplo
  • 54. 3 – JSP: Java Server Pages JSP page directive extend <%@ page extends=&quot;package.class&quot; %> Propósito Especifica la clase padre del servlet resultado de procesar el JSP Ojo Usar con precaución podemos dejar colgado el sistema Previene de usar las superclasses que implican alto rendimiento Ideal para heredar de las clases que proporciona el server vendor Mejor hacer herencia de clases java!
  • 55. 3 – JSP: Java Server Pages JSP page directive ThreadSafe <%@ page isThreadSafe=&quot;true&quot; %> <%-- Default --%> <%@ page isThreadSafe=&quot;false&quot; %> Propósito Indica al sistema que no permita accesos concurrentes. Ojo Evitar a toda costa, degrada el rendimiento del sistema.
  • 56. 3 – JSP: Java Server Pages Resumen de Page Directives
  • 57. 3 – JSP: Java Server Pages JSP include directive <% include file=&quot;…&quot; %> Propósito Incluir archivos en la pagina en el momento de traducción del JSP Ojo Es recomendable usar <jsp:include page=&quot;…&quot;/> si es posible.
  • 58. 3 – JSP: Java Server Pages <jsp:include…/> <jsp:include page=&quot;Relative address&quot; /> Propósito Reutilizar JSP, HTML, o texto plano Permite actualizaciones del contenido incluso sin cambiar el JSP principal Ojo: El JSP incluido no afecta al principal, es solo un output. Las direcciones “\” son relativas al WebApp Se pueden incluir archivos del WEB-INF
  • 59. 3 – JSP: Java Server Pages <jsp:include…/> Ejemplo Item.jsp Observar que no es HTML Completo
  • 60. 3 – JSP: Java Server Pages Ejemplo jsp include Footers reutilizables
  • 61. 3 – JSP: Java Server Pages JSP con XML syntax ¿Por qué dos versiones? La sintaxis clásica no es compatible con XML <%= ... %>, <% ... %>, <%! ... %> Es ilegal en XML HTML 4 no es compatible con XML No podemos usar editores XML como Spy-XML para generar nuestros JSP
  • 62. 3 – JSP: Java Server Pages JSP con XML syntax (II) Debes usar JSP en muchos entornos XML Para construir páginas XHTML Para construir documentos regulares XML Para Web Services Para Ajax Luego, existe otra sintaxis, XML-Syntax
  • 63. 3 – JSP: Java Server Pages Para generar XHTML Necesitas JSP XML-Syntax
  • 64. 3 – JSP: Java Server Pages Para generar XML Cuando envías a un cliente un response que espera XML real Como AJAX Como Webservice … Necesitas JSP XML-Syntax
  • 65. 3 – JSP: Java Server Pages Ejemplo Sintaxis estándar (sample.jsp)
  • 66. 3 – JSP: Java Server Pages Ejemplo Sintaxis XML (sample.jspx)
  • 67. 3 – JSP: Java Server Pages Ejercicio práctico: La primitiva Realiza La misma aplicación que la primitiva pero con XML-Syntax Pista: public static int randomInt(int range) { return(1 + ((int)(Math.random() * range))); } … . Suerte!!!
  • 68. 3 – JSP: Java Server Pages Resultado de ambas páginas
  • 69. Conclusiones Introducción al desarrollo Web Servlet JSP Javabeans EJB Struts Resumen y conclusiones Enumerar los beneficios de JSP respecto tecnologías análogas. Conocer los elementos de construcción de páginas JSP Expresiones Scriptlet Declaraciones Saber utilizar las directivas de JSP page e include Diferenciar la programación estándar JSP con la basada en XML
  • 70. Referencias Arquitectura JSP http:// java.sun.com / developer / onlineTraining / JSPIntro / contents.html#JSPIntro3 MVC en JSP 2.0: http:// www.javaworld.com / javaworld / jw -12-1999/ jw -12- ssj - jspmvc.html Especificación en Java Sun: http:// java.sun.com / products / jsp / product.html JSP Overview: http:// courses.coreservlets.com / Course - Materials / pdf /csajsp2 En el Tutorial J2EE 4: http:// java.sun.com /j2ee/1.4/ docs / tutorial / doc / JSPIntro.html#wp100465