Introducción a la primavera MVC
Spring MVC es un marco web ligero basado en el modelo de arquitectura MVC. El propósito es modularizar el desarrollo web y desacoplar la arquitectura general.
Spring MVC tiene las siguientes ventajas:
Como parte del marco de primavera, tiene las ventajas de la primavera (COI, AOP, etc.)
Admite mapeo de controlador de url a página flexible
Proporcionar mecanismos flexibles de verificación de datos, formato y enlace de datos
Apoyo al estilo de descanso
Proceso de solicitud MVC de primavera
El proceso de solicitud general del marco Spring MVC es el siguiente:
La figura anterior implica varios componentes funcionales de Spring MVC:
Controlador front-end (DispatcherServlet): reciba la solicitud del usuario y devuelve el resultado de la solicitud. Su función es equivalente a un procesador de reenvío o central, que controla todo el proceso de ejecución, programando varios componentes y reduciendo el acoplamiento entre componentes.
Mapeo del procesador: encuentre el controlador de procesador correspondiente basado en la URL solicitada por el usuario, a través de la anotación o la configuración XML.
Adaptador del procesador: complete la llamada al método en el procesador basado en el controlador encontrado por el mapeador
Handler: la lógica específica del procesamiento de solicitudes, devolver datos y ver información
Vista de resolución: analiza la vista específica y analiza el nombre de la vista lógica en una vista real a través de la información de vista en el objeto ModelandView.
Explicación detallada de los pasos específicos del proceso de solicitud:
1: El usuario inicia una solicitud, y la solicitud será interceptada por el controlador front-end (desplazamiento del servidor)
2: Controlador front-end (DispatcherServlet) Solicitud de procesador de procesador (Handlermapping) para encontrar el controlador
3: El mapeador del procesador (Handlermapping) encuentra el controlador correspondiente de acuerdo con la configuración (puede ser más anotada o configuración XML), que puede contener múltiples interceptores interceptores y devolverlos al controlador frontal.
4: El controlador frontal (DispatcherServlet) solicita al adaptador del procesador (HandlerAdapter) para ejecutar el controlador correspondiente
5: El adaptador se entrega al procesador de controladores correspondiente para ejecutar
6: Después de ejecutar el procesador de controladores, devuelva el objeto ModelandView al adaptador del procesador
7: El adaptador del procesador acepta el resultado de retorno del procesador de controladores y devuelve el resultado al controlador front-end (DispatcherServlet)
8: El controlador front-end (DispatcherServlet) recibe la información de datos y de vista devuelta por el adaptador del procesador, solicita el analizador de vista y analiza la vista correspondiente
9: El analizador View vuelve al controlador frontal en función del resultado de la vista correspondiente que coincide con la información de la vista.
10: El controlador front-end recibe la vista específica, representa la vista, llena los datos del modelo en la vista de la vista y genera la vista final
11: El controlador front-end devuelve el resultado al usuario
Construir demos desde cero
Crea un proyecto:
Cree un nuevo proyecto web dinámico en Eclipse
Estructura de directorio predeterminada del proyecto:
Agregar dependencias de paquetes jar
Importe el paquete JAR correspondiente en WebContent> Web-INF> Lib, donde el paquete Core JAR es Spring-Webmvc-5.0.0.Release.jar, y los otros son principalmente para administrar los paquetes de contexto y Beande, la biblioteca de etiquetas JSTL y un paquete de registro para imprimir registros:
Configuración del controlador front-end en Web.xml
El controlador frontal es equivalente al servlet patentado de Spring MVC, utilizado para interceptar todas las solicitudes de calificación y entregarlas al marco para el procesamiento posterior.
<? xml versión = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://xmlns.jcp.org/xml/ns/Javaee" xsi: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3" id = "webapp_id" versión = "3.1"> <!-Configurar el controlador front-end-disispatchservlet-> <servlet> <servlet-name> springmvcnext </servlet-name> <ervlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <! Si el contextConfigLocation no está configurado, el archivo de configuración de SpringMVC se deforma en: web-Inf/Servlet Name+"-Servlet.xml"-> <Init-Param> <amamname> contextCiglocation </amamname> <pam-Value> classpath: applicationContext <Servlet-Name> SpringMVCNext </Servlet-Name> <URL-Pattern>/</url-Pattern> <!-Solicitudes de interceptación enviadas por los usuarios de acuerdo con las reglas establecidas por URL-Pattern. Todas las solicitudes se interceptan aquí, incluidos los recursos estáticos-> </Servlet-mapping> </web-app>
La regla de coincidencia de URL definida en la etiqueta <Servlet-mapping> está en una forma que se ajusta a *.Action, el servlet correspondiente se llama SpringMVCNext, y el controlador configurado por <Servlet es org.springframework.web.servlet.dispatchservlet, que es el controlador frontal del proyecto de treingmvc actual. La etiqueta <Init-Param> es el parámetro en el que depende el controlador actual. Los dos parámetros representan los parámetros de contexto y la ruta de carga de parámetros respectivamente.
Acerca de classpath: representa la ruta de salida después de la compilación del proyecto web
Configurar la configuración de Spring MVC
Agregue el archivo ApplicationContext.xml en el directorio de código fuente de Java
Contenido específico:
<? xml versión = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" "" "" xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http://www.springframework.org/schema/schem http://www.springframework.org/schema/Beans/spring-Beanss.xsd http://www.springframework.org/schema/security http://www.springwork.org/schema/security/spring-security.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!-La etiqueta del escáner de paquete se utilizará para activar la función de escaneo de anotación MVC de Spring, permitiendo anotaciones como @Controller y @Rquestmapping. -> <context: component-scan base-package = "com.sl.controller" /> <!-annotation driver-> <mvc: annotation-driven /> <!-configure ver resolución-> <bean id = "internalResourceViewRresolver"> <name de propiedad = "prefix" valor = " /web-inf /vie </bean> </beans>
Agregar controlador y ver vista
Agregue el paquete com.sl.controller en el directorio SRC y agregue el código del controlador de la siguiente manera:
paquete com.sl.controller; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestmapping; import og.springframework.web.servlet.modelandview; @controllerpublic clase de clases hellowordController {@requestestmapping ("" "" "". En la ruta de URL que comienza con /index: incluye /index /* y /index.html public ModelAndView HelloWorld () {String Message = "Hello Spring MVC"; devolver nuevo modelandView ("índice", "mensaje", mensaje); }}Agregar vista de archivo index.jsp en web-INF/Ver
<html> <head> <title> Spring MVC </title> </head> <body> $ {Message} </body> </html>Resultados de ejecución:
Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.