Jsp / Servlets
Los servlets son codigo de servidor, ejecutandose siempre del lado del servidor, nunca en el cliente. Estos servlets generan contenido, en este caso, paginas web, de forma dianmica. Pueden recibir peticiones, como recoger los datos enviados a traves de un formulario htm, tratar estos datos segun la logica del negocio, como pueda ser almacenarlos en una base de datos.Sin embargo los servlest no solo son validos para servidores web, sino que al API Servlet es un api valido para cualquier tipo de servidor basado en un protocolo de tipo solicitud-respuesta.
La peticion del usuario se le pasa en forma de objeto al servlet, este recoge la informacion generando despues una respuesta a la peticion. El contenedor (un servidor que soporte servlets) es quien pasa ese objeto cuando recibe la peticion y tambien provee un espacio para dar respuesta a la peticion.
Incluimos los pasos necesarios para configurar nuestro equipo para comenzar a crear y utilzar servlets:
- Crear la variable de entorno JAVA_HOME=:c/jdk1.4.1 (O la version de jdk que tengamos)
- Aņadir a la variable PATH ;%JAVA_HOME%/bin
javax.servlet [Interfaz servlet] Recordemos que una interfaz solo describe la notacion de los metodos.
El contenedor crea un hilo de ejecucion diferente por cada peticion y sobre un solo objeto servlet han varios hilos de ejecucion ejecutandose simultaneamente.
[Clase GerenericServlet] Implementa la interfaz ServletConfig. El contenedor le pasa al servlet un objeto del tipo ServletConfig, este nos sirve para consultar unparametro de configuracion. Derivando de GenericServlet el metodo service tiene una implementacion construida dentro de HttpServlet
Clase HttpServlet tiene los metodos: doGet que distingue las petciones tipo GET y doPost que distingue las peticiones tipo POST. Para crear nuestra servlet, haremos una lcase que derive de HTTPServlet reescribiendo los metodos doGet y/o doPost.
Tomcat
Para hacer pruebas instalaremos la version disponible de tomcat, en este caso usaremos la 4.1.A continuacion describiremos la estructura de directorios en donde guardaremos los *.class de los servlets que generemos:
Raiz: | ||||
Tomcat4.1/ | webapps/ | miaplicacion1/ | WEB-INF/ | classes/ |
miaplicacion2 | lib/ | |||
miaplicacion3 | web.xml |
En webapps guardaremos un directorio por cada aplicacion web que tengamos en nuestro servidor, luego cada una de ellas tendra una carpeta WEB-INFO, conteniendo a su vez dos carpetas: classes y lib. En classes guardaremos todos los *.class de los servlets. y en lib las librerias de terceras partes que estemos utilizando (Como un driver JDBC, por ejemplo, posiblemente en un *.jar) que utilizaran nuestros servlets.
El archivo web.xml colgara directamente del directorio WEB-INFO, y logicamente habra uno por cada aplicacion, en el se define el conjunto de xml y las etiquetas que puede usar ese xml. Es el Deployment Descriptor (DD), y a traves de el confiraremos opciones de seguridad entre otras.
Bien, una vez instalado Tomcat creamos la siguiente variable de entorno:
CLASSPATH=Tomcat4.1\common\lib\servlet.jar
Y asi, una vez hayamos escrito el codigo java de las servlet, las podremos compilar en nuestro directorio de trabajo y luego copiar el/los *.class dentro de la carpeta classes. y bien, antes de arrancar el tomcat escribiremos en web.xml la configuracion necesaria.
web.xml
Este es el archivo de configuracion de la aplicacion web para probar un servlet:
mipackage.MiNombreServlet
MiNombreServletMapping
/NombreLlamarAlServletPorURL
Al llamar a nuestro servlet, una vez instalado tomcat escribiremos en el navegador: http://localhost:8080/CarpetaDeAplicacion/NombreLlamarAlServletPorURL
EJEMPLO:
Veamos como un servlet sencillo da tratamiento a un formulario:Formulario | |
Nombre | |
Clave | |
En la etiqueta form habra los sieguiente: