Empezamos el día con una introducción sobre los distintos tipos de objetos que más se suelen usar para desarrollar páginas en JSP, véase la siguiente tabla:
Contexto | JSP | Servlet |
---|---|---|
Aplicación | application | ServletContext |
Sesión | Session | HttpSession |
Evento (Click) | request | HttpServletRequest |
Tantos los objetos de tipo aplicación, como los de tipo sesión son contenedores de datos.
Los de tipo sesión perduran hasta que el usuario cierra una sesión, mientras que los de tipo evento que dura hasta que se muestra, después se destruye.
Los del último tipo encapsula los eventos del usuario que son:
- Click en datos
- Click en enlaces
- Dirección url
- Envio de formulario
A la hora de añadir un script Java en JSP (que es código html con código java embuido) hay que marcarlos con las etiquetas <% %> o si queremos mostrar el valor de una variable solamente, sería <%= %>
Volviendo a los eventos, éstos se pueden enviar por un método GET (todos los parámetros de los formularios por url) o por un método POST (se envía de forma transparente o invisible). Una URL+parámetros es lo que se encapsula en el objeto evento.
Primer JSP
Creamos un nuevo proyecto del tipo "dynamic web", cuyo nombre y ruta sea "cea01" y crearemos un archivo jsp llamado "bienvenida" y otro llamado "registro".
El objetivo del ejercicio es crear un enlace simple de html en bienvenida hacia registro y ahí hacer un formulario que le pasaríamos nuestro nombre y una vez enviado (que se envía a sí misma) no mostrar el formulario de nuevo porque ya estamos "registrados" en la página.
- El enlace en html sería así:
- El formulario sería:
- Los métodos de eventos que utilizaremos son:
- request.getParameter("parametroPasadoDelFormulario"); -> Devuelte un String
- session.setAttribute("nombreDeLaVariableDeSesion",Objeto a pasar); -> En Objeto a pasar podríamos usar un request.getParameter("x");
- session.getAtribute("nombreDelAtributo");
Primer Servlet
Para crear nuestro primer servlet crearemos un nuevo paquete en "Java Resources:src" que se llame "cea" y dentro crear una nueva clase llamado "saludo".
La clase deberá heredar de HttpServlet. Marcamos HttpServlet y pulsamos Control+1 y nos importará automáticamente la librería adecuada en la clase.
Hacemos click con el botón secundario en la clase, y en source pulsamos "Overdrive/Implement..." y marcaremos solamente "doGET" y "doPOST"
Modificaremos el método "doPOST": quitaremos "super.doPOST" por "doGET" para que cualquier entrada de datos se canalice por un único método.
Escribimos una bienvenida cualquiera para ver que funciona.
Ahora procederemos a configurar el xml para que funcione el servlet.
Abrimos el "web.xml" y lo ponemos en modo "source" y allí (usando Control+espacio para ahorrarnos escribir) escribiremos:

Y una vez hecho esto, lo guardamos todo y reseteamos el TomCat, escribimos en la barra de dirección del navegador "localhost:8090/cea01/Saludo" y nos aparecerá el mensaje de bienvenida.
Tantos los objetos de tipo aplicación, como los de tipo sesión, como el request son contenedores de datos, por ello tienen los metodos setAttribute y getAttribute para acceder a dichos datos
ResponderEliminarLos de tipo sesión perduran hasta que el usuario cierra una sesión, mientras que los de tipo evento se crean con la solicitud y se eliminan al renderizar la respuesta