Fecha de creación del tutorial: 2008-05-05
Creación de una aplicación web con SpringMVC desde 0
1. Introducción
En este tutorial os vamos a enseñar cómo dar vuestros primeros pasos con Spring MVC y os vamos a dar el código fuente de una aplicación de ejemplo muy básica que os pueda servir como esqueleto.
Tal y como ya ocurrió en el tutorial donde se explica cómo crear un aplicación con Spring e Hibernate desde 0, este tutorial no persigue entrar en conceptos teóricos ni técnicos, ni tampoco pretende desarrollar ninguna funcionalidad de ningún tipo. Simplemente trata de daros un esquema para que sepais cómo crear una aplicación web usando esta tecnología y podais dar vuestros primeros pasos.
En el código de este tutorial podreis encontrar un proyecto Eclipse configurado y un pom.xml con todo lo necesario para poder hacerlo funcionar. En el pom.xml se ha configurado jetty para que podais arrancar la aplicación directamente desde maven.Si quereis acceder al código no teneis más que pulsar aquí
2. Entorno
3. ¿Qué necesito saber antes de empezar?
Es conveniente conocer o al menos tener alguna idea del patrón MVC (Modelo-Vista-Controlador), ya que Spring MVC implementa dicho patrón. Tambien es conveniente tener al menos una idea básica de lo que es Spring y de cómo hace la inyección de dependencias.
Si no sabes ninguna de ambas cosas no pasa nada, espero que aún asi puedas seguir el tutorial :-)
En el ejemplo vamos a operar sobre los siguientes elementos:
- El fichero web.xml
- Ficheros xml para configurar Spring MVC
- Controladores muy muy básicos de Spring MVC (lo que en struts son los Action)
- Páginas jsp
Para simplificar aún más la cosa desde los jsp no pasaremos parámetros a los controladores y desde los controladores no pasaremos parámetros a los jsp.
4. ¿Qué hace la aplicación?
Simplemente muestra dos pantallas y permite navegar entre ellas. Cuando entras en ella, muestra una pantalla sobre Autentia:
Si pulsamos sobre 'Ver información de adictosaltrabajo', navegamos hacia otra pantalla:
Si pulsamos sobre 'Ver información de Autentia', navegamos hacia la pantalla anterior, y así en un bucle sin fin.
5. Creación de la aplicación
De nuevo os recuerdo que podeis descargar el código de la aplicación en este enlace.
5.1 web.xml y jsp
Lo primero que vamos a ver es cómo configurar el web.xml para que la aplicación utilice Spring MVC. El código quedaría así:
- Declaramos un servlet llamado autentiaSpringMVC que extiende de una clase de Spring MVC
- Lo configuraremos en el fichero autentiaSpringMVC-servlet.xml, y es ahi donde vamos a declarar los beans, la navegabilidad, la asociacion entre vistas y controladores, etc.
- Preparamos el servlet para que, cuando una página acabe en '.autentia', pase por el servlet. Es decir, que vamos a usar Spring MVC en las páginas que acaben por '.autentia'
- Finalmente indicamos cual es la página de inicio, que es 'index.jsp', cuyo contenido es este y sólo contiene una redirección:
Como podeis ver este jsp no hace nada, simplemente redirecciona a una URL llamada 'autentia.autentia'. La URL termina en '.autentia', de tal modo que el servlet que acabamos de definir va a capturar la invocación y procesarla, más adelante veremos cómo. De momento basta con saber que abrirá el jsp 'autentia.jsp'
En esta pantalla podremos ver la información de Autentia que mencionamos anteriormente. Si pulsamos sobre 'Ver información de adictosaltrabajo' estaremos navegando hacia la URL 'adictosaltrabajo.autentia', que de nuevo será procesada por el servlet por acabar en '.autentia'. El servlet en última instancia abrirá el fichero 'adictosaltrabajo.jsp'
5.2 Controladores
Son los homólogos a los Action en Struts. Aunque Spring MVC posee una amplia jerarquia de controladores yo voy a utilizar en el tutorial el más básico, el AbstractController. Todos los controladores que extienden de esta clase deben implementar el método handleRequestInternal(), que se ejecutará al ser invocado el controlador. Estos controladores no tienen apenas funcionalidad, si quereis usar Spring MVC en vuestros proyectos mirad otros controladores en la documentación de Spring ya que seguramente encontreis otros más útiles.
Este es el código de la clase AutentiaController. Como veis simplemente devuelve una redirección a 'autentia' (ya veremos qué consigue con eso)
Este es el código de AdictosaltrabajoController, que simplemente devuelve una redirección a 'adictosaltrabajo'.
5.3 Configuración de Spring MVC
He aqui cómo juntar todas las piezas: la navegacion, los controladores, los jsp, etc.
Este es el contenido del fichero resources/controllers.xml
- Se definen los beans que van a representar los controladores.
- Se mapean las url, para que al acceder a ellas se pase por los controladores que acabamos de definir. Si abres la URL 'autentia.autentia' pasa por el bean 'autentiaController' definido anteriormente, y la URL 'adictosaltrabajo.autentia' por el bean 'adictosaltrabajoController'. Esta asociación se puede hacer de maneras más avanzadas que pueden ser utiles en otras aplicaciones.
- Se establecen las reglas de navegabilidad, de tal modo que a la salida del controlador se le añada el prefijo /WEB-INF/jsp/ y el sufijo '.jsp'. De este modo cuando el controlador devuelve 'autentia' se abre el jsp '/WEB-INF/jsp/autentia.jsp'. Esta navegabilidad se puede establecer de otros modos que pueden ser utiles en aplicaciones mas complejas.
6. Cómo arrancar la aplicación
Si estás usando maven, basta con ir al directorio donde tengas declarado el pom.xml y ejecutar el siguiente comando:
mvn: jetty:run
Tras eso, accede a la aplicación desde cualquier navegador a través de esta url:
http://localhost:8080/autentiaSpringMVC/
7. Conclusiones
Como podeis ver dar los primeros pasos con Spring MVC es relativamente sencillo ya que, hasta cierto punto, es similar a Struts y otros frameworks MVC. Si ya conoces alguno, Spring MVC te resultará sencillo.
Hay un apartado importante en el que no hemos hecho hincapié, y es que al definir los controladores se pueden inyectar como dependencias cualquier otro tipo de bean y, de este modo, permitirle a los controladores acceder a servicios, utilidades, DAO, etc y de este modo construir una auténtica aplicación web con su acceso a servicios, web services, bases de datos...
Espero que os sea de utilidad.
Anímate y coméntanos lo que pienses sobre este tutorial
Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.
| Autor | Mensaje de usuario registrado |
|---|
| Autor | Mensaje de usuario anónimo |
|---|---|
| Pepe Alba |
Fecha de envío: 2008-07-31 - 06:31:40 PM El tutorial me pareció bueno y muy básico, pero estaría bien que abordaran el paso de parámetros del JSP al controlador, y viceversa, especificamente utilizando el SimpleFormController |
- Puedes inscribirte en nuestro servicio de notificaciones haciendo clic aquí.
- Puedes firmar en nuestro libro de visitas haciendo clic aquí.
- Puedes asociarte al grupo AdictosAlTrabajo en XING haciendo clic aquí.
- Añadir a favoritos Technorati.
Esta obra está licenciada bajo licencia Creative Commons de
Reconocimiento-No comercial-Sin obras derivadas 2.5
Recuerda
Autentia te regala la mayoría del conocimiento aquí compartido (Ver todos los tutoriales). Somos expertos en: J2EE, Struts, JSF, C++, OOP, UML, UP, Patrones de diseño ... y muchas otras cosas.
¿Nos vas a tener en cuenta cuando necesites consultoría o formación en tu empresa?, ¿Vas a ser tan generoso con nosotros como lo tratamos de ser con vosotros?
Somos pocos, somos buenos, estamos motivados y nos gusta lo que hacemos ...
Autentia = Soporte a Desarrollo & Formación.
Tutoriales recomendados
| Nombre | Resumen | Visitas | Valoración | Votos | ||
|---|---|---|---|---|---|---|
| JavaBean Datasource Ireport | La particularidad del caso que nos ocupa, es conseguir que la fuente de datos del informe sea una lista de JavaBeans y no una consulta definida previamente en el informe. | 2009-12-14 | 1257 | Bueno | 1 | ![]() |
| Instalar OpenESB 2.1 e Introducción | En este tutorial veremos como descargar e instalar OpenESB y explicaremos sus funcionalidades | 2009-12-03 | 1701 | - | - | ![]() |
| Cómo conseguir que Subversion avise a Hudson para lanzar una build | En este tutorial vamos a ver como configurar Subversion para que sea este el que avise a Hudson cada vez que hay un commit, y así se lance la build. | 2009-10-27 | 2263 | - | - | ![]() |
| Cómo instalar Hudson en Apache Tomcat | Instalar Hudson en Apache Tomcat | 2009-10-26 | 2608 | Muy bueno | 1 | ![]() |
| Enlazar Bugzilla con MavenChangesPlugin | En este tutorial veremos como enlazar Bugzilla con MavenChangesPlugin | 2009-09-11 | 1156 | - | - | ![]() |
| Release Bugzilla Maven Plugin | En este tutorial vamos a mostrar como automatizar un conjunto de acciones que hay que hacer siempre en los sistemas de gestión de incidencias, tales como dar de alta una nueva versión del producto, cerrar las incidencias que soluciona la nueva versión, et | 2009-09-11 | 1394 | - | - | ![]() |
| Ordenación por cantidades en informe cruzado | Nico nos explica en ese tutorial cómo lograr ordenar por cantidades en informes cruzados usando JasperReports e iReport | 2009-08-26 | 2100 | - | - | ![]() |
| Introducción a los diagramas EPC (Event-Driven Process Chain) | En este tutorial veremos en que consisten los diagramas EPC, o Event-driven Process Chain. | 2009-08-13 | 3614 | - | - | ![]() |
| Tips And Tricks JUnit Spring | En este tutorial vamos a contar un par de trucos bastante útiles a la hora de hacer test usando JUnit y Spring | 2009-08-06 | 2840 | - | - | ![]() |
| Migración de EJB3 a JPA y Spring. | Este tutorial de como emigrar una aplicación montada con EJB3 y JSF al soporte que proporciona Hibernate para JPA y a Spring, con el mismo soporte de JSF. | 2009-07-24 | 3475 | Muy bueno | 1 | ![]() |
Nota:
Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento.
Los contenidos y comentarios de los tutoriales son responsabilidad de sus respectivos autores.
En algún caso se puede hacer referencia a marcas o nombres cuya propiedad y derechos es de sus respectivos dueños. Si algún afectado desea que incorporemos alguna reseña específica, no tiene más que solicitarlo.
Si alguien encuentra algún problema con la información publicada en este Web, rogamos que informe al administrador rcanales@adictosaltrabajo.com para su resolución.







