Primera aplicación Spring

download Primera aplicación Spring

of 14

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: