Sie sind auf Seite 1von 5

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:

<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

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:

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

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:

<listener>
<listenerclass>org.springframework.web.context.ContextLoaderListerner</listenerclass>
</listener>

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 /WEBINF/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:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/roadrantz-service.xml
/WEB-INF/roadrantz-data.xml
/WEB-INF/roadrantz-security.xml
</param-value>
</context-param>

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.

Das könnte Ihnen auch gefallen