![](images/jsp.png)
¿En que consiste el Lenguaje JSP?
Java Server Pages (JSP, para abreviar) es una tecnología basada en Java que simplifica el desarrollo de páginas web con contenido dinámico. Con JSP, los diseñadores web pueden incorporar elementos dinámicos dentro de la página utilizando tanto porciones de código Java incrustadas, como unas cuantas etiquetas. Así, las páginas JSP tienen el aspecto de una página tradicional HTML, a la que se le ha introducido parte de código Java junto con unas etiquetas. De esta forma, cuando una página es solicitada por un usuario y procesada por un servidor HTTP, el código HTML pasará directamente al usuario, mientras que las porciones de código Java serán ejecutadas en el servidor cuando la solicitud haya sido recibida, para generar el contenido dinámico de la página. Cuando el usuario acceda al código de la página que le llega sólo verá HTML, sin poder acceder al código JSP subyacente
Un codigo JSP empieza con "<%" y terminan con "%>"
¿Cuáles son las Ventajas de JSP?
- Contra Active Server Pages (ASP). Las ventajas de JSP estan duplicadas. Primero, la parte dinámica está escrita en Java, no en Visual Basic, por eso es mucho más poderosa y fácil de usar. 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. Pero es mucho más conveniente escribir (y modificar!) 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: 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. Con la excepción de las cookies, el HTTP y el envió de formularios no están disponibles con JavaScript. Y, como se ejecuta en el cliente, JavaScript no puede acceder a los recursos en el lado del servidor, como bases de datos, catálogos, información de precios, etc.
Elementos Script JSP
Los Scripts JSP permiten insertar codigo java en el servlet resultante de la compilacion de la pagina JSP, hay tres formas:
- Expresiones que se evaluan y se insertan en la salida de la web resultante, <%= expresion %>
- Scriptlets: Es codigo java que se introduciria en el metodo service del servlet, <% codigo %>
- Declaraciones: Es la manera de declarar variables globales para todo el servlet, <%! codigo%>
Expresiones
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.
Scriptlets:
Si queremos hacer algo más complejo que insertar una simple expresión, los scriptlets JSP nos permiten insertar código arbitrario dentro del método servlet que será construido al generar la página. Los Scriptlets tienen la siguiente forma:
<% outprintln(“Mi primer código JSP”); %>
Si queremos usar los caracteres "%>" dentro de un scriptlet, debemos poner "%\>". Finalmente, observa que el equivalente XML de <% Código %> es :
<jsp:scriptlet> Código </jsp:scriptlet>
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.
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 conjuncion con expresiones JSP o scriptlets, 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 (o la clase del servlet se modifico o recargo)