Aprendiendo Spring Hola Mundo.

Aprendiendo Spring paso a paso.

Por amalakaky.

ID: RSA (Rational Software Architect)

Servidor: Apache Tomcat 6

Versión de java: JDK 1.6

Spring MVC
Spring MVC ayuda a construir aplicaciones web flexibles y ligeramente acopladas. El patrón de diseño modelo-vista-controlador ayuda separando la lógica del negocio, la lógica de presentación y la lógica de navegación. Los modelos son responsables para la encapsulación de los datos de aplicación.

Los controladores se encargan de recibir la solicitud del usuario y llamar a los servicios de back-end.
La figura siguiente muestra el flujo de la solicitud en el Spring Framework MVC.

Request

            Response

Cuando se envía una solicitud a la Spring Framework MVC la siguiente secuencia de los acontecimientos suceden.
El DispatcherServlet recibe por primera vez la solicitud.
La consulta a la DispatcherServlet Handler Mapping e invoca el controlador asociado a la solicitud.
El proceso regulador de la solicitud llamando a los métodos apropiados de servicio y devuelve un objeto ModeAndView a la DispatcherServlet. El objeto ModeAndView contiene los datos del modelo y el nombre de vista.
El DispatcherServlet envía el nombre de la vista a un ViewResolver para encontrar la visión real de invocar.
Ahora, el DispatcherServlet pasará el modelo de objetos a la vista para hacer que el resultado.
La vista con la ayuda de los datos del modelo hará que el resultado de vuelta al usuario.

Para entender el Spring MVC Framework ahora vamos a crear un ejemplo simple hola mundo utilizando el IDE RSA (Rational Software Architect).Se puede utilizar cualquier versión de eclipse yo particularmente estoy trabajando con la última versión de eclipse 3.7.2 Indigo, con el plugin Spring ID, Tomcat 6.0 y la versión 3.0 de Spring.

Pero para realizar el manual usare el RSA

Ir a Archivo -> Nuevo -> Proyecto Web dinámica, para crear un proyecto web.

Introduzca el nombre del proyecto y haga clic en el botón Finalizar.

Haga clic en la carpeta del proyecto, y seleccione Herramientas de Spring ID -> Spring Agregar proyecto para agregar capacidades de Spring a la web del proyecto. Esta característica estará disponible una vez que instale el IDE de Spring.

Si no lo tienes instalado lo haremos a mano:

Tendremos como partida la siguiente estructura

Crear un nuevo paquete com.amalakaky dentro del directorio src. La clase de controlador de Spring se extiende la clase org.springframework.web.servlet.mvc.AbstractController. Para crear una clase de controlador nuevo, haga clic derecho en el directorio src y crear una nueva clase java, escriba el nombre de la clase del controlador y el nombre de la super clase y el botón Finalizar.


Ahora tenemos nuestra clase creada quedara así:

package com.amalakaky;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.AbstractController;

public
class HelloWorldController extends AbstractController {

    private String message;

    

    @Override

protected ModelAndView handleRequestInternal(HttpServletRequest request,HttpServletResponse response) throws Exception {

        

return
new ModelAndView(“welcomePage”,“welcomeMessage”, message);

        

    }

    

    public
void setMessage(String message) {

        this.message = message;

        }

    

}

La clase HelloWorldController tiene una propiedad de mensaje que se establece a través de la inyección de setter. La clase HelloWorldController debe reemplazar el método handleRequestInternal () para procesar la solicitud.

Después de procesar la solicitud del método handleRequestInternal () devuelve un objeto ModelAndView de nuevo a la DispatcherServlet.

El DispatcherServlet, como su nombre lo indica, es un servlet que gestiona toda la solicitud de control de proceso. Cuando se envía una solicitud a la DispatcherServlet delega la de empleo mediante la invocación de los controladores adecuados para procesar la solicitud. Al igual que cualquier otro servlet DispatcherServlet necesitan ser configurados en el descriptor de despliegue de red como se muestra a continuación en el archivo web.xml.

<?xml version=”1.0″ encoding=”UTF-8″?>

<web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xmlns=”http://java.sun.com/xml/ns/javaee&#8221; xmlns:web=”http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&#8221; xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&#8221; id=”WebApp_ID” version=”2.5″>

<servlet>

<servlet-name>dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dispatcher</servlet-name>

<url-pattern>*.htm</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>redirect.jsp</welcome-file>

</welcome-file-list>

</web-app>

Aquí el nombre del servlet es distribuidor. Por defecto, el DispatcherServlet buscará un nombre de archivo dispatcher -servlet.xml para cargar la configuración de Spring MVC. Este nombre de archivo está formado por la concatenación del nombre de servlet (“dispatcher “) con “-servlet.xml”. Aquí el usuario de la url-pattern como”. Htm” ordena para ocultar las implementaciones de la tecnología a los usuarios.

El redirect.jsp será invocado por primera vez cuando se ejecuta la aplicación web de Spring. Este es el único archivo jsp fuera del directorio WEB-INF, y está aquí para proporcionar una redirección a la DispatcherServlet. Todos los otros puntos de vista deben ser almacenados en el directorio WEB-INF de modo que puedan ser invocados sólo a través del proceso del controlador.

Para crear un archivo de configuración del bean, haga clic derecho en la carpeta WebContent y seleccione Nuevo -> Otros. El siguiente cuadro de diálogo.

Seleccione el Bean Spring archivo de configuración y haga clic en Siguiente.

Introduzca el nombre de archivo como ” dispatcher-servlet.xml ” y haga clic en el botón Finalizar.

Esto es para los que usen el Spring ID.

Nosotros lo vamos a hacer a mano para que aprendamos de qué se compone.

Introduzca el nombre de archivo como ” dispatcher-servlet.xml ” y haga clic en el botón Finalizar.
Ahora, el bean de Spring archivo de configuración se crea, es necesario configurar el controlador y las clases ViewResolver. El siguiente código muestra cómo hacer esto.

<?xml
version=“1.0”
encoding=“UTF-8”?>

<beans xmlns=http://www.springframework.org/schema/beans&#8221;

    xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance&#8221;

    xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd&#8221;>

    <bean
id=“viewResolver”

        class=” org.springframework.web.servlet.view. InternalResourceViewResolver”>

        <property
name=“prefix”>

            <value>/WEB-INF/jsp/</value>

        </property>

        <property
name=“suffix”>

            <value>.jsp</value>

        </property>

    </bean>

    <bean
name=“/welcome.htm”
class=“com.amalakaky.HelloWorldController”>

        <property
name=“message”
value=“Hello World!”
/>

    </bean>

</beans>

Primero vamos a entender cómo configurar el controlador.

<bean
name=“/welcome.htm”
class=“com.amalakaky.HelloWorldController”>

        <property
name=“message”
value=“Hola Mundo! amalakaky”
/>

Aquí, el atributo de nombre del elemento de bean indica el patrón de URL para asignar la solicitud. Dado que el atributo id no puede contener caracteres especiales como “/”, se especifica el modelo de dirección URL con el atributo de nombre del elemento de bean. Por defecto, el DispatcherServlet utiliza el BeanNameUrlHandlerMapping para asignar la solicitud de entrada. El BeanNameUrlHandlerMapping utiliza el nombre de bean como el patrón de URL. Desde BeanNameUrlHandlerMapping se utiliza por defecto, no es necesario realizar ninguna configuración particular para ello.

Hemos establecido el atributo de mensaje de la inyección HelloWorldController de clase a través de incubadora. La clase HelloWorldController se configura como una clase de otra JavaBean en el contexto de la aplicación de Spring, así como cualquier otra JavaBean podemos establecer los valores a través de inyección de dependencias (DI).

El redirect.jsp redirigirá la petición a la DispatcherServlet, que consulta con el BeanNameUrlHandlerMapping e invoca el HelloWorldController. El método handleRequestInternal () en la clase HelloWorldController será invocado.

Aquí volvemos de la propiedad del mensaje con el nombre y la MENSAJE DE BIENVENIDA
welcomePage nombre de la vista a la DispatcherServlet. A partir de ahora sólo sabemos el nombre de vista, y para encontrar el punto de vista real para invocar necesitamos un ViewResolver.

El ViewResolver se configura mediante el siguiente código.

<bean
id=“viewResolver”

        class=” org.springframework.web.servlet.view. InternalResourceViewResolver”>

        <property
name=“prefix”>

            <value>/WEB-INF/jsp/</value>

        </property>

        <property
name=“suffix”>

            <value>.jsp</value>

        </property>

    </bean>

Aquí el InternalResourceViewResolver se utiliza para resolver el nombre de la vista a la vista real. El valor de prefijo del nombre + ver + el sufijo de valor dará a la ubicación en la vista actual.

Aquí la ubicación real es vista / WEB-INF/jsp/welcomePage.jsp
Los siguientes archivos de la biblioteca se necesitan para ejecutar el ejemplo.

Definimos los dos JSP Redirect.jsp

<%@page
contentType=“text/html”
pageEncoding=“UTF-8”%>

<% response.sendRedirect(“welcome.htm”); %>

welcomePage.jsp

<html>

<head>

<meta
http-equiv=“Content-Type”
content=“text/html; charset=ISO-8859-1”>

<title>Welcome Page</title>

</head>

<body>

${welcomeMessage}

</body>

</html>

Y captura de cómo está montada la estructura y del resultado.

Estructura:

El resultado de nuestro Hola Mundo.

Anuncios
Minientrada | Esta entrada fue publicada en Spring. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s