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.
Los servlets son objetos que corren dentro y fuera del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad. La palabra servlet deriva de otra anterior, applet, que se refería a pequeños programas que se ejecutan en el contexto de un navegador web. Por contraposición. El uso más común de los servlets es generar todas páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web. Para utilizar Servlets y JSPs es necesaria la utilización de un "Contenedor de Servlets". Existen muchos contenedores de Servlets como Apache Tomcat, Jboss, etc. Para este tutorial usaremos Tomcat ya que los demás contenedores suelen estar basados en el mismísimo Tomcat. Un contenedor de Servlet es un programa capaz de recibir peticiones de páginas web y redireccionar estas peticiones a un objeto Servlet.
¿Sabias que..?
Java fue diseñado como un lenguaje para programar electrodomésticos: Allá por 1990, Sun pretendía fabricar electrónica de consumo dotada de ciertas capacidades extra… (viendo los anuncios, no se debieron de equivocar tanto…). Fruto de los esfuerzos para llevar a cabo aquella nueva raza de lavadoras y frigoríficos superdotados nació el Java. De hecho si se fijan bien, las características que lo han hecho famoso (portabilidad, interpretado…) encajan con la idea de ejecutarlo sobre electrodomésticos…
Los formularios son posiblemente la herramienta más utilizada en Internet para obtener datos e información acerca de la gente que navega nuestro sitio. La idea de los formularios es recolectar información online en la interacción con el usuario y luego ejecutar una determinada acción con la misma, que podría ser por ejemplo, quizás el caso más utilizado, un formulario de venta que el usuario completa y luego es enviado vía email al vendedor en forma encriptado.
Etiqueta <FORM>
Todo formulario debe estar encerrado entre el par de etiquetas <FORM> y </FORM>, y presenta tres atributos posibles:
ACTION El valor de este parámetro es la URL del programa o guión en el Servidor Web utilizado para procesar la información recolectada.
METHOD Puede asumir el valor GET o el valor POST, y definen la manera en la cual los datos son transferidos al servidor.
ENCTYPE Este atributo está reservado para que la información viaje en forma encriptada a través de Internet
Etiqueta <INPUT>
La etiqueta <INPUT> es la segunda etiqueta más importante de los formularios. Se la puede definir como una etiqueta multifunción, ya que con la misma podemos crear "push buttons", "radio buttons", "check boxes", y simples recuadros para ingresar texto. Los atributos cruciales para toda etiqueta <INPUT> son NAME, que asocia un nombre con cada variable ingresada; y TYPE, que puede asumir los valores TEXT, PASSWORD, CHECKBOX, RADIO,SUBMIT, RESET, IMAGE, and HIDDEN; de acuerdo al tipo de elemento que queramos representar
Nombre:
Apellidos:
Deporte
Futbol
Baloncesto
Atletismo
Gimnasia
Elija una de las siguientes:
Lectura
Viajes
Cine
Password:
Etiqueta <SELECT>
Este par de etiquetas define una lista de elementos de los cuales el usuario debe seleccionar uno o varios, de acuerdo a los atributos que especifiquemos. Con la etiqueta <OPTION> y </OPTION> esta etiqueta definimos cada elemento de las listas designadas con el par <SELECT> y </SELECT>.
Los atributos de SELECT permiten especificar el nombre lógico al que se asociará la opción elegida de entre las posibles. Normalmente, el elemento selección permite seleccionar sólo una de sus opciones, pero con MULTIPLE podremos hacer que la selección afecte a varios de sus elementos. Se puede especificar con SELECTED la opción seleccionada por defecto.
Una sesión es una serie de comunicaciones entre un cliente y un servidor en la que se realiza un intercambio de información. Por medio de una sesión se puede hacer un seguimiento de un usuario a través de la aplicación.
El tiempo de vida de una sesión comienza cuando un usuario se conecta por primera vez a un sitio web pero su finalización puede estar relacionada con tres circunstancias:
Cuando se abandona el sitio web.
Cuando se alcanza un tiempo de inactividad que es previamente establecido, en este caso la sesión es automáticamente eliminada. Si el usuario siguiera navegando se crearía una nueva sesión.
Se ha cerrado o reiniciado el servidor.
Una posible aplicación de las sesiones es en el comercio electrónico. En este caso una sesión permite ir eligiendo una serie de productos e irlos añadiendo a nuestro “carrito” y así hasta finalizar la compra. Sin el uso de sesiones no se podría hacer porque al ir navegando de
una página a otra se iría perdiendo toda la información.
También se utilizan para la identificación de usuarios, en la que se deben de introducir un login y un password. Después de haber hecho esto el usuario tendrá una serie de permisos sobre las páginas que va a visitar, de tal forma que si un usuario intenta pasar a una página si haberse identificado, el sistema comprobará que no se ha identificado y sería redireccionado a la página de identificación. Para poder realizarse estas operaciones es necesario almacenar en unas tipo sesión la información necesaria para saber que el usuario se ha identificado correctamente.
Para poder hacer uso de las sesiones en JSP hay que poner el atributo session de la directiva page a true, de esta forma se notifica al contenedor que la página interviene en un proceso que utiliza las sesiones del protocolo HTTP:
<%@page session=’true’%>
El manejo de las sesiones impide el intercambio de datos entre ellas ya que se trata información específica para cada usuario e incluso si se trata del mismo usuario
Las cookies constituyen una potente herramienta empleada por los servidores Web para almacenar y recuperar información acerca de sus visitantes. Mediante el uso de cookies se permite al servidor Web recordar algunos datos concernientes al usuario, como sus preferencias para la visualización de las páginas de ese servidor, nombre y contraseña, productos que más le interesan, etc.
Una cookie no es más que un fichero de texto que algunos servidores piden a nuestro navegador que escriba en nuestro disco duro, con información acerca de lo que hemos estado haciendo por sus páginas.
Un cookie almacenado en el ordenador de un usuario está compuesto por un nombre y un valor asociado al mismo. Además, asociada a este cookie pueden existir una serie de atributos que definen datos como su tiempo de vida, alcance, dominio, etc.
Cabe reseñar que los cookies, no son más que ficheros de texto, que no pueden superar un tamaño de 4Kb, además los navegadores tan sólo pueden aceptar 20 cookies de un mismo servidor web (300 cookies en total).
Para crear un objeto de tipo Cookie se utiliza el constructor de la clase Cookie que requiere su nombre y el valor a guardar. El siguiente ejemplo crearía un objeto Cookie que contiene el nombre “nombre” y el valor “objetos” (String).
Una vez que se ha creado un cookie, es necesario establecer una serie de atributos para poder ser utilizado. El primero de esos atributos es el que se conoce como tiempo de vida.
Por defecto, cuando creamos un cookie, se mantiene mientras dura la ejecución del navegador. Si el usuario cierra el navegador, los cookies que no tengan establecido un tiempo de vida serán destruidos.
// Tras la validación correcta y que quiera recordar el login
if(rec!=null)
{
miCookie=new Cookie("login",login);
miCookie.setMaxAge(60*60*24*31);
miCookie.setPath("/");
response.addCookie(miCookie);
}