Creación de una aplicación web con SpringMVC desde 0

4
75842

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:

  1. El fichero web.xml
  2. Ficheros xml para configurar Spring MVC
  3. Controladores muy muy básicos de Spring MVC (lo que en struts son los Action)
  4. 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í:

 

  1. Declaramos un servlet llamado autentiaSpringMVC que extiende de una clase de Spring MVC
  2. 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.
  3. 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’
  4. 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

  1. Se definen los beans que van a representar los controladores.
  2. 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.
  3. 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.

 

4 Comentarios

  1. Muy bueno el tutorial, solo me falta entender el uso de variables en la vista ( .jsp ) y ya tendria gran parte de Spring dominado, una vez que complete aquello podria aportar con la integracion de DAO y services… =)

    Saludos!

  2. Muy bueno, gracias.
    Es muy ilustrativo partiendo de lo básico. Creo que el siguiente paso puede ser ya incluyendo el jsp y validando los datos.
    Saludos y gracias por compartir sus conocimientos.

  3. muy buen tutorial. Raul, si fuera posible que hagas un pequeño tutorial donde se registren tablas maestro detalle. Soy estudiante de analisis de sistemas y estoy un poco estancado en ese tema. Gracias

Dejar respuesta

Please enter your comment!
Please enter your name here