Archive for 12 enero 2012

¿qué es esto de los servlets?

enero 12, 2012

Mi inmersión al mundo java web ocurrió hace unos años ya, pero recuerdo que yo andaba medio perdido con muchos nombres nuevos y con poca idea de cómo se hacían las cosas por ese alocado lugar.

Hoy un poco más cascado puedo ordenar algunas ideas y contar un poco lo que aprendí.

Antes que nada responden a una especificación como casi todo en java.

Un servlet es un componente java que permite generar contenido dinámico y que corre en el contexto de contenedor de servlets. Los servlets que usamos para programar web son los HTTP Servlets. Estos corren en un contenedor -que es parte de un servidor web o de un servidor de aplicaciones y que se encarga de manejar la comunicación con el cliente usando el modelo de Petición / Respuesta. Un ejemplo de contenedor de servlets es apache tomcat.

El contenedor suele tener un archivo descriptor de despliegue: el archivo WEB-INF/web.xml.

En este archivo mapeamos las URL con los servlets que vamos creando, configuración de la sesión y otras cosas como definición de filtros y etc.

A diferencia de otras tecnologías, donde se crea todo un proceso por cada solicitud del cliente, un servlet corre en un hilo. Esto genera menos carga para el servidor, por lo que se supondría que es más rápido.

El contendor maneja su ciclo de vida, que empieza llamando al método init(ServletConfig) e inicializa nuestro servlet. Por cada petición que recibe, invoca al método service(ServletRequest, ServletResponse). Finalmente destroy() es invocado cuando el contenedor decide descargarlo y es el momento para liberar recursos.

Los HttpServlet en particular nos abstraen de manejar qué mensaje HTTP implementando el método service y dejándonos a nosotros implementar los distintos mensajes como GET, POST, DELETE y PUT mediante doGet, doPost, doDelete y doPut. Estos a su vez reciben como parámetro los objetos de clase HttpServletRequest y HttpServletResponse. El servlet trabajará con el contexto provisto por el Request y escribirá en el Response los resultados de su ejecución.

En el próximo capítulo vamos a implementar un servlet muy sencillo que recibe una frase y cuenta la cantidad de palabras. Este implementa los métodos de HTTP, POST y GET. Si no recibe nada para contar,  explica el uso y provee un form, si recibe algo directamente muestra el resultado.

¡Hasta la próxima!

Peter Capusotto y sus videos, ahora en el cine en 3D!

enero 6, 2012

Gente, el 26/01 del corriente se estrena en el cine Peter Capusotto y sus videos en 3D. Casi un regalo de cumpleaños para quien suscribe.

¡Feliz día de reyes magos!