Java Server Pages (JSP)
¿Que es JSP?
JSP (Java Server Pages) es una tecnologia diseñada para poder crear contenido dinamico para paginas web.
Mediante la utilizacion de etiquetas especiales, nos permite incluir HTML normal con etiquetas java en un mismo documento.
Un ejemplo de estas etiquetas son las etiquetas <% y %>, que nos permiten "aislar" un trozo de codigo java del codigo html.
EJEMPLO:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <% out.println("<p>Hola Mundo<p>"); %> </body> </html>
Este sencillo codigo, por ejemplo, nos mostrara una pagina donde aparecera la sentencia "Hola mundo".
Otra expresion importante es <%="variable"%>. Esta nos devuelve el valor de la variable que pongamos dentro de ella.
Aunque cuando nosotros cuando trabajamos con el parece un html, no deja de ser una clase, y es traducido a un servlet (Que veremos mas tarde) en la primera peticion del servidor.
Variables Predefinidas
Hay una serie de variables que vienen predefinidas dentro del uso de paginas .jsp. Esto es posible por que estas variables estaran definidas cuando traduzcamos la pagina a servlet.
- Response: Esta variable es el HttpServletResponse del Servlet y que esta asociado a la respuesta que la pagina JSP dara al cliente.
- 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. Podemos ajustar el tamaño del buffer o desactivarlo usando la directiva page: <%@page buffer=["none|8kb|sizekb"]%>.
- session: Es el HttpSession asociado a la peticion. Las sesiones se crean automaticamente, por eso esta variable siempre existe a no ser que con la directiva page lo desactivemos.
- application: Este es el ServletContext obtenido mediante getServletConfig().getContext().
- config: Este es el objeto ServletConfig para esta página.
- pageContext: Esto representa una clase llamada PageContext que sirve para encapsular caracteristicas especificas del servidor, el significado de esto es que si accedemos a propiedades especificar del servidor mediante estas variables, entonces nuestro codigo funcionara en la mayoria de los motores JSP.
- page: Es lo mismo que this en cualquier otra clase de java.