7. DESARROLLO E IMPLEMENTACIÓN
7.2 Desarrollo de la aplicación web
7.2.3 Aplicación diseño Modelo-Vista-Controlador
Como bien se apuntó en el apartado “4.8 Metodología y diseño” la aplicación web aplica el modelo de diseño denominado Modelo-Vista-Controlador (MVC). Esto obliga a desarrollar el proyecto de una determinada manera. A continuación se va a explicar e identificar cada uno de sus componentes en el proyecto:
Controlador: todas las peticiones que se realicen desde el cliente (navegador) pasarán por el Controlador, éste determinará las acciones a realizar e invocar al resto de los componentes de la aplicación como pueden ser el modelo y/o la vista. En el proyecto el controlador se denomina “HomeController.java” y encuentra en src/main/java en el paquete “es.geocoder”. Puede verse su código en la ilustración 26.
Modelo Vista
Controlador
Navegador
Petición Respuesta
“Creación de una librería de geocodificación directa de varios proveedores en lenguaje java”
Desarrollo e implementación.
E.T S.I. Topografía, Geodesia y Cartografía. Pablo Biénzobas García 68
Modelo: encapsula la lógica de negocio de la aplicación, acceso a los datos y su manipulación. En el proyecto equivale a todo el negocio desarrollado en la librería
Geocoder.jar.
Vista: es la encargada de generar las respuestas que deben ser enviadas al cliente (navegador). Esta respuesta normalmente incluye datos generados por el controlador, por lo que el contenido de la página no será estático sino que será generado de forma dinámica, ahí es donde entran en escena los archivos JSP. En el proyecto tan solo se necesita una vista, index.jsp, se carga en el inicio de la aplicación y la misma se carga la respuesta de la petición de búsqueda de la dirección postal.
Analizando el fichero “HomeController.java” puede verse la notación de “Controller” que lo diferencia de una clase normal de java. Como se recoge la petición mediante GET o POST, en medio del método que recoge la petición de la implementación del modelo / negocio y finalmente como se retorna a index, para indicar que la vista de salida es
index.jsp. No es necesario indicar la extensión del archivo de vista de salida por haberse configurado en el modelo Spring-MVC.
Sobre el fichero index.jsp, ya se han indicado varias características, es el fichero que se carga tanto inicialmente como después de la petición. El fichero carga todos los ficheros css y JavaScript necesarios, así como el esqueleto de la página web en formato html sobre el que se irán insertando las distintas partes de la aplicación maquetadas mediante el uso de la
“Creación de una librería de geocodificación directa de varios proveedores en lenguaje java”
Desarrollo e implementación.
E.T S.I. Topografía, Geodesia y Cartografía. Pablo Biénzobas García 69
librería bootstrap. En la carga del fichero se leen etiquetas “<script>” que cargan las diferentes librerías necesarias, así como fragmentos de JavaScript necesarios, por ejemplo, para la visualización del mapa base.
Posteriormente, en la etiqueta body se mezcla tanto código para la maquetación de
bootstrap, como JavaScript con JQuery para diferentes funcionalidades. También JSTL (JavaServer Pages Standard Tag Library) para el manejo de los datos obtenidos en el negocio de la geocodificación.
Por último, se lee una nueva etiqueta “<script>”. Se coloca en esta parte del fichero principalmente por la siguiente razón: el navegador al encontrarse una etiqueta script se detiene para obtener el código, analizarlo y ejecutarlo, mientras tanto, el navegador detiene su carga del resto de la página. Como algunas de estas funciones desarrolladas necesitan de otros componentes para su correcto funcionamiento, si no se han cargado previamente los componentes se producirán errores.
Algunas de estas funciones son: interactuación con el mapa base (ilustración 27), que requieren el mapa base cargado; creación y ubicación de los marcadores de cada geocodificador retornado en la petición (ilustración 28), también necesitan del mapa base; funciones que interactúan con los objetos como: pulsación de la tecla “intro” para buscar, necesita del campo de búsqueda, función que pulsando sobre la información de un geocodificador centra el mapa en su marcador, necesita del componente visual creado donde pulsar y del marcador creado (ilustración 29).
“Creación de una librería de geocodificación directa de varios proveedores en lenguaje java”
Desarrollo e implementación.
E.T S.I. Topografía, Geodesia y Cartografía. Pablo Biénzobas García 70
Por último se tiene los ficheros de configuración de Spring-MVC: El primero, “servlet-context.xml”, sirve para configurar el contexto web de la aplicación; en él se declara la ruta de los recursos y la ruta raíz de las vistas para que el controlador sepa donde recuperarlas, en este fichero se configura que no sea necesario describir la extensión del fichero de la vista (.jsp). El segundo, “root-context.xml”, sirve para el resto de configuración
Ilustración 28.- Script generación marcadores.
“Creación de una librería de geocodificación directa de varios proveedores en lenguaje java”
Desarrollo e implementación.
E.T S.I. Topografía, Geodesia y Cartografía. Pablo Biénzobas García 71
no web de la aplicación, en esta aplicación no es necesario ya que no se usan librerías que necesiten ser declaradas en él.
“Creación de una librería de geocodificación directa de varios proveedores en lenguaje java”
Desarrollo e implementación.
E.T S.I. Topografía, Geodesia y Cartografía. Pablo Biénzobas García 72
“Creación de una librería de geocodificación directa de varios proveedores en lenguaje java”
Validación y resultados.
E.T S.I. Topografía, Geodesia y Cartografía. Pablo Biénzobas García 73
“Creación de una librería de geocodificación directa de varios proveedores en lenguaje java”
Validación y resultados.
E.T S.I. Topografía, Geodesia y Cartografía. Pablo Biénzobas García 74
Ilustración 30.- Validación Paseo Pastrana Mapa