Primera aplicación Spring
-
Upload
marie-ann-chumbimuni -
Category
Documents
-
view
219 -
download
0
Transcript of Primera aplicación Spring
-
8/8/2019 Primera aplicacin Spring
1/14
Primera aplicacin Spring
Ya vimos cmo Comenzar un proyecto web con Eclipse y servidor, y
partiendo de ese punto queremos hacer un hola mundo con Spring.
Lo que haremos es incluir las libreras bsicas de Spring y configurarlo para tener una prueba
de concepto del patrn MVC.
El objetivo es tener una pgina de entrada desde la que mediante enlaces accedamos a dos
operativas diferentes. Cada operativa funciona mediante un controlador que recibe la
peticin del navegador, realiza las operaciones necesarias y responde con una pantalla de
resultado.
Los pasos que seguiremos son los siguientes:
1. Incluir libreras en el proyecto
2. Configurar el entorno
3. Crear controladores
4. Crear pantallas de resultados (la vista)
5. Trazas de la aplicacin
6. Resumen grfico
7. Arranque de la aplicacin
1. Incluir libreras en el proyecto
Necesitamos descargar Spring desde la pgina oficial
(http://www.springsource.com/download/). Lo ms recomendable es la descarga de Spring
con dependencias que adems del framework nos proporciona cantidad de libreras tpicas
que utilizamos en desarrollos Java y que en adelante nos sern de gran utilidad.
Yo estoy trabajando con la versin 2.5.5, as que conviene que sea la versin descargada a
fin de no encontrarnos con algn problema inesperado, aunque poco probable para hacer
una configuracin inicial, ya sabemos que en informtica nunca se sabe
Una vez descargado el zip correspondiente, necesitaremos nicamente estos jar del
contenido:
spring.jar (carpeta dist)
spring-webmvc.jar (carpeta dist/modules)
http://www.arcoe.es/2009/01/27/comenzar-un-proyecto-web-con-eclipse-y-servidor/http://www.springsource.com/download/http://www.springsource.com/download/http://www.arcoe.es/2009/01/27/comenzar-un-proyecto-web-con-eclipse-y-servidor/ -
8/8/2019 Primera aplicacin Spring
2/14
commons-logging-1.1.1.jar (carpeta lib/Jakarta-commons)
log4j-1.2.15.jar (carpeta log4j)
jstl.jar (carpeta lib/j2ee)
Creamos en el proyecto una carpeta donde guardar las libreras que llamaremos lib, y
arrastramos hasta all los jar mencionados anteriormente:
Lo siguiente es incluirlos como dependencias del proyecto. Abrimos Project -> Properties,
y en el dilogo vamos aJava EE Module Dependencies, y pulsamos en Add JARS para
incluir nuestras libreras:
2. Configurar el entorno
Nuestra primera aplicacin Spring necesita que creemos estos ficheros:
web.xml (carpeta Web Content\WEB-INF)
Este fichero es el descriptor de la aplicacin web, aqu se configura el entorno.
Configuramos el servlet que controlar la aplicacin, el dispatcher del MVC de Spring. Este
-
8/8/2019 Primera aplicacin Spring
3/14
servlet ser el encargado de recoger todas las peticiones y delegar el control entre los
actions que ms adelante configuraremos.
Adems de definir nuestro servlet, tendremos que decir el patrn de rutas que ste
gestionar.
Por ltimo configuramos qu pgina ser nuestra pgina de inicio por defecto en la
aplicacin.
Prueba dynamic spring
miSpring
org.springframework.web.servlet.DispatcherServlet
1
-
8/8/2019 Primera aplicacin Spring
4/14
miSpring
*.do
inicio.jsp
Como podemos ver, todas las pginas que terminen en .do sern dirigidas hacia nuestro
dispatcher servlet de Spring para que las gestione.
Nuestra pgina de entrada en la aplicacin ser la jsp: inicio.jsp
miSpring.xml (carpeta Web Content\WEB-INF)
Hasta aqu hemos dicho que las peticiones de url que terminen en .do sean enviadas al
servlet de Spring, y ahora necesitamos configurar este dispatcher para que cada ruta tenga
asociado su propio action.
Por tanto nuestro objetivo ahora ser que si tenemos una operativa que muestra un listado
de productos, su ruta sera productos.do, que recogera Spring y ste ahora delegar en un
action que recupere el listado de productos (de base de datos, de servicio, etc.) y finalmente
muestre la pantalla al usuario con el listado.
Nuestro fichero de pruebas se nombrar igual que el name del servlet, y el contenido
puede ser este:
-
8/8/2019 Primera aplicacin Spring
5/14
productosController
noticiasController
-
8/8/2019 Primera aplicacin Spring
6/14
Hemos configurado en este fichero lo siguiente:
Donde se encuentran configurados los actions (resources/controllers.xml).
El mapeo de rutas concretas (urlMapping) a sus actions asociados (que veremos
cules son en controllers.xml).
La parte de vista (viewResolver): qu tipo de fichero son, dnde estn alojados y
tambin hemos indicado que habr preproceso con JSTL (tag-libs estndar).
controllers.xml (carpeta Web Content\WEB-INF\resources)
En este fichero ya asociamos a los controladores definidos en miSpring.xml, las clases que
los implementan.
El contenido del fichero sera tal que as:
-
8/8/2019 Primera aplicacin Spring
7/14
inicio.jsp (carpeta Web Content)
Vamos creando nuestra pantalla de entrada, en la que simplemente podremos un enlace a
cada operativa para probarlas:
Entrada de pruebas spring
-
8/8/2019 Primera aplicacin Spring
8/14
Pruebas Spring
prueba de productos:
productos.do
prueba de noticias:
noticias.do
3. Crear controladores
Es el momento de implementar las clases que actuarn como controladores. Son las clases
que recibirn la peticin, son lo que llamamos Actions.
Recapitulando: el usuario de la web escribe una url, la peticin la recibe Spring y ste delega
al action correspondiente (de acuerdo al mapeo de miSpring.xml y controllers.xml), y
finalmente este responde devolviendo el control a una jsp.
Nuestra aplicacin cuenta con dos rutas que controla Spring, creamos sus actions
correspondientes (ojo al paquete declarado en controllers.xml):
Productos.java
package es.arcoe.ejemplos.spring.controladores.prueba;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
8/8/2019 Primera aplicacin Spring
9/14
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class Productos extends AbstractController {
private static final long serialVersionUID = -8627592552860108965L;
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
ModelAndView mav = new ModelAndView("productos");
return mav;
}
}
Noticias.java
package es.arcoe.ejemplos.spring.controladores.prueba;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
-
8/8/2019 Primera aplicacin Spring
10/14
public class Noticias extends AbstractController {
private static final long serialVersionUID = 3440288926797377376L;
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
ModelAndView mav = new ModelAndView("noticias");
return mav;
}
}
Notar que dentro del mtodo handleRequestInternal podemos realizar todas las acciones
que necesitemos, para finalmente devolver el control a la JSP de resultados, que asociamosal instanciar el objeto ModelAndView pasndole el nombre de la pgina sin su extensin.
Esta ltima asociacin era la que nos faltaba para terminar el flujo de ejecucin hasta la
vista.
4. Crear pantallas de resultados (la vista)
Las pantallas que muestran los resultados las implementamos con JSP. En ellas podremos
recoger resultados del action que nos deleg el control para mostrarlas al usuario de la
pgina.
productos.jsp (carpeta Web Content\WEB-INF\jsp)
Es la pantalla a la que llegaremos al solicitar la url productos.do
-
8/8/2019 Primera aplicacin Spring
11/14
Productos
PRODUCTOS
Prueba de que poniendo productos.do llego
a la JSP /WEB-INF/jsp/productos.jsp
noticias.jsp
Es la pantalla a la que llegaremos al solicitar la url noticias.do
Noticias
-
8/8/2019 Primera aplicacin Spring
12/14
NOTICIAS
Prueba de que poniendo noticias.do llego
a la JSP /WEB-INF/jsp/noticias.jsp
Bueno, pues ya lo tenemos todo.
5. Trazas de la aplicacin
Entre las libreras que hemos incluido en el proyecto tenemos Log4j, un sistema de log muy
utilizado y que nos servir para ver qu est ocurriendo en nuestra aplicacin.
Una configuracin que podemos utilizar ahora para comprobar qu va haciendo Spring es:
log4j.properties (carpeta src)
log4j.rootLogger=DEBUG, consola
log4j.appender.consola=org.apache.log4j.ConsoleAppender
log4j.appender.consola.layout=org.apache.log4j.PatternLayout
log4j.appender.consola.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
[Ver post de log4j para ms referencias]
6. Resumen grfico
http://www.arcoe.es/2007/07/03/trazas-en-java-utilizando-log-for-java-log4j/http://www.arcoe.es/2007/07/03/trazas-en-java-utilizando-log-for-java-log4j/ -
8/8/2019 Primera aplicacin Spring
13/14
7. Arranque de la aplicacin
Desde la pestaa Servers arrancamos el servidor pulsando el botn verde Run ( ).
El servidor quedar arrancado en el puerto 8080 por defecto.
Abrimos el navegador y escribimos en la barra de direcciones:
http://localhost:8080/mi_proyecto/ (*)
Veremos la siguiente pantalla:
Ahora haremos clic en productos y en noticias para ver que efectivamente funciona y cada
uno redirige a su sitio.
-
8/8/2019 Primera aplicacin Spring
14/14
(*) el nombre del proyecto exacto para poner en la barra de direcciones, se encuentra
configurado en eclipse, en la parte de ficheros del servidor que aparece en la izquierda.
Debemos mirar el fichero server.xml al final del mismo. Esta lnea define el nombre de la
ruta para ver el resultado del proyecto en el explorador: