JSP/Servlets

Introducción a los Servlets

Generalmente ocuparemos los Servlets para manejar a pedidos HTTP, por ello mismo un Servlet que no es otra cosa más que una clase Java que hereda a la clase abstracta HttpServlet. Esta clase define varios métodos, dos de ellos son ĺos más usados:

protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
              throws ServletException,
IOException
protected void doPost(HttpServletRequest req,
HttpServletResponse resp)
               throws ServletException,
IOException

La clase HttpServletRequest nos va a permitir manipular la información que es enviada con la petición del cliente, por ejemplo los parámetros que se envian con las peticiones POST de un formulario, las cookies, etc. Y la clase HttpServletResponse que permitirá manipular la información que será devuelta al cliente.

La especificación dice que la carpeta WEB-INF debe contener al deployment descriptor que será llamado web.xml, el cuál se trata de un archivo XML con la configuración de nuestra aplicación. Dentro de esta carpeta pondremos otra llamada classes en la cual depositaremos todos los ficheros .class que correspondan a nuestro servlet.

En Tomcat por defecto, la carpeta webapps es donde colocaremos los Servlets.

PRIMER EJEMPLO PRÁCTICO

El primer ejemplo consiste en un pequeño servlet que lea una cookie del pedido del cliente, si dicha cookie no existe se la agregamos y posteriormente dependiendo de si cierto parámetro esta contenido dentro de la petición le respondemos al cliente en un idioma u otro, dependiendo de las Preferencias de Idioma establecidas en su navegador.

El ejercicio lo podemos descargar de aqui. Consta de dos archivos fuente y su archivo compilado, así como de un deployment descriptor web.xml con el nombre de

El archivo para este ejercicio es el llamado TestRequestResponse. Crearemos una serie de carpetas dentro de /CATALINA_HOME/webapps pues como comentamos, es donde Tomcat por defecto buscará los Servlets. En webapps crearemos la siguiente estructura:

/servlets/WEB-INF/classes/cookies

Como ya se comentaba anteriormente, la carpeta classes es donde la especificación Java Servlet Technology define que deben colocarse los ficheros .class. Luego, la carpeta de cookies es debido a que si se mira el código fuente de TestRequestResponse se dará uno cuenta que debe estar dentro del paquete cookies.

Aclarado esto, ya es de suponerse que copiaremos TestRequestResponse.class a la carpeta cookies. Y en WEB-INF colocaremos al descriptor, es decir, a web.xml

El archivo descriptor contiene la definición de los servlets del Contexto (en este caso, el contexto es todo aquello que esta dentro de la carpeta servlets). Tienen varios comentarios que aclararán muchas cosas, así que se debe hechar un vistazo al archivo web.xml.

Finalmente, iniciamos Tomcat y si ya estaba iniciado cuando hicimos los pasos anteriores lo volvemos a reiniciar. Ahora, podemos acceder al servlet por medio de la dirección que se ve en la imágen:

Cookies

Como se observa, nos aparece el mensaje de “La clave es incorrecta”. Pero ahora, veáse esta imágen:

Cookies

Ahora se observa que se ha enviado con la petición al parámetro “clave” con su valor “servlet” (si no sabe de lo que hablo, mejor leáse antes algo referente al protocolo HTTP y a los métodos get y post).

Si se observa en el código fuente de TestRequestResponse, en la línea 62, se obtiene dicho parámetro.

Finalmente podemos ir a las cookies de nuestro navegador y verificar que ya tenemos una cookie que fué mandada por el servlet.

cookie_firefox.png

Por último, podemos cambiar el idioma de nuestro navegador y veremos que el mensaje que nos muestra el servlet es distinto.

El ejemplo de AhorcadoServlet queda como ejercicio para el lector para que lo pueda ejecutar. Lo único que debe hacer es copiar el .class a la carpeta indicada y saber como acceder a dicho servlet desde el navegador web.

Hasta la próxima!!

BIBLIOGRAFIA

  • PROGRAMACIÓN WEB JAVA. ANDRÉS MARTÍNEZ QUIJANO. MANUALES USERS

Creative Commons License
Introducción a los Servlets is licensed under a Creative Commons Reconocimiento 2.5 México License.

Un comentario en “Introducción a los Servlets

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s