Configuracion Dispatcher

download Configuracion Dispatcher

If you can't read please download the document

description

Todo lo referido al contenedor , y controlador frontal de la estructura de spring Framework

Transcript of Configuracion Dispatcher

1.aUn da en la vida de una peticin

Cada vez que un usuario hace clic sobre un enlace o enva un formulario en su navegador Web, comienza a trabajar una peticin. La descripcin del puesto de una peticin es la de un mensajero. Igual que cualquier cartero o mensajero, una peticin vive para llevar informacin de un lugar a otro.

La peticin es alguien muy ocupada. Desde el momento en que abandona el navegador hasa el momento en que devuelve una respuesta, realizar varias paradas, dejando cada vez un poco de informacin y recogiendo al ms.

Cuando una peticin sale del navegador, lleva informacin sobre lo que est pidiendo el usuario. Como poco, la peticin llevar el URL solicitado. Pero tambin puede llevar datos adicionales como la informacin introducida por el usuario en un formulario.

La primera parada del viaje de la peticin es DispatcherServlet de Spring. Como la mayora de los framework de trabajo MVC basados en java, Spring MVC canaliza las peticiones a travs de un nico servlet controlador frontal. Un controlador frontal es un patrn comn de aplicacin Web donde un nico servlet delega la responsabilidad de un peticcin a otros componentes de una aplicacin para que relicen el procesamiento. En el caso de Spring MVC, DispatcherServlet es el controlador frontal.

El trabajo de DispatcherServlet es enviar la peticin a un controlador Spring MVC. Un controlador es un componente Spring que procesa la peticin. Pero una aplicacin tpica puede tener varios controladores y DispatcherServlet necesita ayuda para decidir a qu contorlador enviar la peticin. As pues, DispatcherServlet consulta uno o ms manipuladores de mapeo para descubrir cul ser la siguiente parada de la peticin. El manipulador de mapeo presentar especial atencin al URL trnasportado por la peticin cuando tome su decisin.

Una vez que se ha escogido el controlador adecuado, DispatcherServlet enva la peticin en su camino al controlador elegido. En el controlador, la peticin dejar su carga til (la informacin enviada por el usuario) y pacientemenete esperar a que el controlador procese la informacin. (En realidad, un Controller bien diseado realiza poco o casi ningn procesamiento l mismo y en su lugar delega la responsabilidad de la lgica empresarial a uno o ms objetos de servicio.)

La lgica realizada por un controlador a menudo resulta en cierata informacin que debe llevarse de vuelat al usuario y mostrarse en el navegador. Esta informacin se conoce mo modelo. Pero enviar informacin sn procesar de vuelta al usuario no es suficiente; debe formatearse en un fomato emable para el usuario, normalmente HTML. Para eso debe darse una visualizacin a la informacin, normalmente JSP.

As, lo ltimo que hace el controlador es empaquetar los datos modelo y el nombbre de una visualizacin en un objeto ModelAndView. Enva entonces la peticin junto con su nuevo paquete ModelAndView, de vuelta al DispatcherServlet. Como indica su nombre ModelAndView contiene tanto los datos modelo como una pista sobre en qu visualizacin mostrar los resultados.

Para que el controlador no est acoplado a una visualizacin en particular, ModelAndView no lleva una referencia al JSP real. Slo lleva un nombre lgico que ser utilizado para buscar la visualizacin real que producir el HTML resultante. Una vez se ha entregado ModelAndView al DispatcherServlet, el DispatcherServlet le pide a un resolutor de visualizacin que le ayude a econtrar el JSP.

Ahora que el DispatcherServlet sabe a qu visualizacin dar los resultados, el trabajo de la peticin casi ha terminado. Su ltima parada es la implementacin de vista (probablemente un JSP) en el lque entrega sus datos modelo. Con los datos modelo enregados a la visualizacin, termina el trabajo de la peticin. La visualizacin utilizar los datos modelo para mostrar una pgina que ser devuelta al navegador por el (no tan trabajador) objeto de respuesta.1.Configuracion del dispatcherServlet

En el centro de Spring MVC est DispatcherServlet, un servlet que funciona como controlador frontal de Spring MVC. Como cualquier servlet, DispatchheerServlet se debe configurar en el archivo web.xml de la aplicacin Web. Coloque la siguiente declaracin de en el archivo web.xml de su aplicacin:

spring org.springframework.web.servlet.DispatcherServlet 1

El dado al servlet es importante. Por defecto, cuando se abre DispatcherServlet, abrir el contexto de aplicacin de Spring desde un archivo XML cuyo nombre est basado en el nombre del servlet. En este caso, como el servlet se llama "spring", DispatcherServlet intentar abrir el contexto de aplicacin desde un archivo llamado spring-servlet.xml.

A continuacin debe indicar qu URL sern manejados por el DispatcherServlet. Aada esete a web.xml para dejar que DispatcherServlet maneje todos los URL que acaben en .htm:

spring *.html

Probablemente se est preguntando por qu escogemos este patrn URL en concreto. Podra se porque todo el contenido producido por nuestra aplicacin es HTML. Tambin podra ser por que queremos engaar a nuestros amigos hacindoles pensar que toda nuestra aplicacin est compuesta por archivos HTML estticos. Y podra ser que consideramos que .do es una extensin estpida.

Pero la verdad es que el patrn URL es en cierto modo arbitrario y que podramos haber elegido cualquier patrn URL para DispatcherServlet. Nuestra principal razn para escoger *.ht, es que ese patrn es el que se utiliza por convencin en la mayora de aplicaciones Spring MVC que producen contenido HTML. La razn tras esta convencin es que el contenido producido es HTML y por tanto el URL debera reflejar ese hecho.

Una vez configurado DispatcherServlet en el archivo web.xml y que tiene un mapeo URL, estamos listos para escribir la capa Web de nuestra aplicacin.1. Configurar un cargador de contexto

Para asegurarnos de que todos estos archivos de configuracin se abren, necesitamos configurar un cargador de contexto en el archivo web.xml.

Un cargador de contexto abre archivos de configuracin de contexto adems del que abre DispatcherServlet. El cargador de contexto ms utilizado es un oyente de servlet llamado ContextLoaderListener que se configura de la siguiente forma en web-xml:

org.springframework.web.context.ContextLoaderListerner

Una vez condfigurado ContextLoaderListerner, deber decirle la ubicacin del archivo(s) de configuracin de Spring a abrir. Si no lo especifica, el cargador de contexto buscar entonces un archivo de configuracin de Spring /WEB-INF/application-Context.xml. Pero esta ubicacin no se presta a la divisin de contexto de aplicacin en capas de aplicacin, por lo que probablemente querr anular esta configuracin predeterminada.

Puede especificar uno o ms archivos de configuracin de Spring para que el cargador de contexto los abra establecido el parmetro contextConfigLocation en el contexto del servlet:

contextConfigLocation /WEB-INF/roadrantz-service.xml /WEB-INF/roadrantz-data.xml /WEB-INF/roadrantz-security.xml

El parmetro contextConfigLocation se especifica como una lista de rutas (relacionadas con la raz de la aplicacin Web). Configurado as, el cargador de contexto utilizar contextConfigLocation para abrir tres archivos de configuracin de contexto: uno para la capa de seguridad, uno para la capa de servicio y otro para la capa de datos.

DispatcherServlet est ahora configurado y listo para expedir peticiones a la capa Web de nuestra aplicacin.