Buscar
Social
Ofertas laborales ES
« Lanzado Open Solaris 2008.05 (Proyecto Indiana) | Main | ExtJS cambia su licencia LGPL por GPLv3 »
viernes
may022008

Un vistazo a Servlet 3.0

Rajiv Mordani escribe en su blog una semblanza acerca de la nueva especificación JSR 315 para la versión 3.0 del API para Servlets. Esta especificación forma parte de lo que será JEE 6.

Sin duda, desde su concepción este API ha sido la más usada en el mundo de JEE y no ha sufrido grandes cambios desde su primera versión. Sin embargo en esta especificación en progreso se planean cambios importantes que desde mi punto de vista facilitarán la tarea al desarrollador. De hecho los compararía con aquellos que sufrió EJB en su versión 3 ya que buscan un modelo más dinámico y ligero para el manejo de lo Servlets.

El primer punto de los explicados por Rajiv es el uso de fragmentos web o la muerte del monolítico web.xml como lo conocemos hasta ahora. Hasta la versión 2, para definir nuevos servlets y componentes web (Listeners, Filters, etc) había que editar el fichero web.xml de nuestra aplicación. Lo que supone que a la hora de usar la mayoría de los frameworks web en el mercado en el mejor de los casos había que declarar el Servlet FrontController de los mismos, o incluso Listeners y Filters. En servlets 3.0 la especificación permitirá usar varios web.xml en una misma aplicación, de esta forma al instalar un framework web x, el web.xml con los elementos necesarios para dicho framework podrá venir dentro del .jar que lo contiene y al iniciar el contenedor, éste será el encargado de juntar dichos web.xml para formar uno solo.

El siguiente punto que menciona Rajiv es el uso de anotaciones para construir nuestros servlets, de esta forma un servlet será un POJO anotado con "@Servlet". Resulta curioso que a partir de JEE 5, el JCP decidió crear anotaciones para EJB, JPA, servicios web JAXWS y sin embargo a los Servlets los habían dejado afuera. Pues bueno en esta nueva especificación los Servlets se mueven a la tierra de los POJOs, lo que de hecho hace (junto con los fragmentos web) que el otrora omnipresente web.xml se convierta en un elemento opcional de las aplicaciones web java.

El tercer punto resulta bastante interesante, es el soporte para Servlets asíncronos. Por lo que menciona Rajiv este soporte no está muy definido todavía. Pero la idea es incluir en el API nuevos métodos para el procesamiento asíncrono de peticiones HTTP, Rajiv da la siguiente lista de nuevos métodos:

  • ServletRequest: suspend, resume, complete, isSuspended, isResumed, isTimeout, isInitial
  • ServletResponse: disable, enable, isDisabled
  • ServletRequestListener: requestSuspended, requestResumed, requestCompleted

La idea es permitir la construcción de aplicaciones Comet (o server Push o reverse Ajax o como le llaméis) usando directamente el API de Servlets. En el pasado se ha hablado del interés de Sun de incorporar las Continuations que Jetty desarrolló para soportar Comet en su servidor de aplicaciones al API de JEE; quizás la especificación de Servlets 3.0 sea donde se pueda integrar dicha tecnología.

Otras mejoras al API mencionadas por Rajiv incluyen el añadir a la clase HTTPServletRequest los métodos login y logout y a la de HttpServletSession logout; con el fin de permitir la autenticación de forma programática. 

Sin duda una importante puesta al día del API para esta nueva especificación de JEE. ¿Qué os parecen estas modificaciones?

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.