jueves, 15 de enero de 2009

Segundo día: introducción a jsp

Introducción
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:


ContextoJSPServlet
AplicaciónapplicationServletContext
SesiónSessionHttpSession
Evento (Click)requestHttpServletRequest

Tantos los objetos de tipo aplicación, como los de tipo sesión son contenedores de datos.
Los de tipo sesión perduran hasta qu
e 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ñado que una manera de pasar datos en páginas jsp es pasarlos mediante su propia dirección. Añadir "?" para añadir el nombre de un campo, se iguala a algún valor y si queremos añadir más campos usamos "&", por ejemplo: miPagina.jsp?nombre=pepe&apellidos=nadiez

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");
Usando sentencias de control (if(){}else{}) y colocando ingeniosamente los métodos de los eventos conseguiremos el resultado deseado.

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éto
do.
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.

1 comentario:

  1. 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


    Los 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

    ResponderEliminar