[SSM llega directamente a la gran fábrica] Capítulo 4: Inicio rápido de SpringMVC

contenido

1. Entorno web integrado Spring

1.1 ApplicationContext Método de adquisición del contexto de la aplicación

1.2 Spring proporciona herramientas para obtener el contexto de la aplicación

1.3 Importar las coordenadas de la web integrada de Spring

1.4 Configurar el oyente ContextLoaderListener

1.5 Obtención de objetos de contexto de aplicación a través de herramientas

1.6 Puntos clave del conocimiento

2. Introducción a SpringMVC

2.1 Descripción general de SpringMVC

 2.2 Inicio rápido de SpringMVC

2.3 Diagrama de proceso de SpringMVC

2.4 Puntos clave del conocimiento

3. Resolución del componente SpringMVC

3.1 Proceso de ejecución de SpringMVC

3.2 Análisis de componentes SpringMVC

3.3 Análisis de anotaciones SpringMVC

3.4 Análisis de configuración XML de SpringMVC

3.5 Puntos clave del conocimiento


1. Entorno web integrado Spring

1.1 ApplicationContext Método de adquisición del contexto de la aplicación

El objeto de contexto de la aplicación se obtiene a través de un nuevo ClasspathXmlApplicationContext (archivo de configuración de primavera), pero cada vez que se obtiene un bean del contenedor, se debe escribir un nuevo ClasspathXmlApplicationContext (archivo de configuración de primavera), la desventaja de esto es que el archivo de configuración se carga varias veces . y el objeto de contexto de la aplicación se crea repetidamente.
En un proyecto web, el ServletContextListener se puede hacer para monitorear el inicio de la aplicación web. Podemos cargar el archivo de configuración de Spring cuando se inicia la aplicación web, crear el objeto de contexto de la aplicación ApplicationContext y almacenarlo en el dominio más grande servletContext dominio, por lo que que podemos Obtener el objeto ApplicationContext del contexto de la aplicación desde el dominio en cualquier lugar.

1.2 Spring proporciona herramientas para obtener el contexto de la aplicación

El análisis anterior no necesita implementarse manualmente . Spring proporciona un oyente, ContextLoaderListener, que encapsula las funciones anteriores. El oyente carga archivos de configuración de Spring, crea objetos de contexto de aplicación y los almacena en el dominio ServletContext. Una herramienta de cliente, WebApplicationContextUtils, se proporciona para su uso El usuario obtiene el objeto de contexto de la aplicación.
Entonces, solo hay dos cosas que debemos hacer :
① Configurar el oyente ContextLoaderListener en web.xml (importar las coordenadas web de primavera).
② Use WebApplicationContextUtils para obtener el objeto de contexto de la aplicación ApplicationContext.

1.3 Importar las coordenadas de la web integrada de Spring

<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-web</artifactId>
 <version>5.0.5.RELEASE</version>
</dependency>

1.4 Configurar el oyente ContextLoaderListener

<!--全局参数--> 
<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--Spring的监听器--> 
<listener>
 <listener-class>
 org.springframework.web.context.ContextLoaderListener
 </listener-class>
</listener>

1.5 Obtención de objetos de contexto de aplicación a través de herramientas

//java
ApplicationContext applicationContext = 
    WebApplicationContextUtils.getWebApplicationContext(servletContext);
Object obj = applicationContext.getBean("id");

1.6 Puntos clave del conocimiento

Pasos del entorno web integrado de Spring
① Configurar el oyente ContextLoaderListener
② Usar WebApplicationContextUtils para obtener el contexto de la aplicación

2. Introducción a SpringMVC

2.1 Descripción general de SpringMVC

SpringMVC es un marco web ligero basado en solicitudes basado en Java que implementa el modelo de diseño MVC. Es
un producto de seguimiento de SpringFrameWork y se ha integrado en Spring Web Flow.
SpringMVC se ha convertido en uno de los marcos MVC más populares y, con el lanzamiento de Spring3.0, ha superado a Struts2 de manera integral y se ha convertido en el mejor marco MVC. Utiliza un conjunto de anotaciones para convertir una clase Java simple en un controlador para manejar solicitudes sin tener que implementar ninguna interfaz. También admite solicitudes de estilo de programación RESTful.

 2.2 Inicio rápido de SpringMVC

Requisito: El cliente inicia la solicitud, el servidor recibe la solicitud, ejecuta la lógica y realiza un salto de vista.
Pasos de desarrollo:
① Importar coordenadas relacionadas con SpringMVC
② Configurar el controlador principal de SpringMVC DispathcerServlet
③ Crear clase de controlador y ver página
④ Usar anotaciones para configurar la dirección de asignación de métodos comerciales en la clase de controlador
⑤ Configurar el archivo principal de SpringMVC spring-mvc.xml
⑥ El cliente inicia la solicitud prueba

Visualización de código:

1. Importar coordenadas relacionadas con SpringMVC

<!--Spring坐标--> 
<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>5.0.5.RELEASE</version>
</dependency>
<!--SpringMVC坐标--> 
<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-webmvc</artifactId>
 <version>5.0.5.RELEASE</version>
</dependency>

2. Configure el controlador central de SpringMVC en web.xml

<servlet>
 <servlet-name>DispatcherServlet</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:spring-mvc.xml</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
</servlet> 
<servlet-mapping>
 <servlet-name>DispatcherServlet</servlet-name>
 <url-pattern>/</url-pattern>
</servlet-mapping>

3. Crear controlador y métodos comerciales

public class QuickController {
    public String quickMethod(){
        System.out.println("quickMethod running.....");
        return "index";
     }
}

4. Cree la página de vista index.jsp

<html>
 <body>
    <h2>Hello SpringMVC!</h2>
 </body>
</html>

5. Anotaciones de configuración

@Controller
public class QuickController {
    @RequestMapping("/quick")
    public String quickMethod(){
        System.out.println("quickMethod running.....");
        return "index"; 
    } 
}

6. Crear primavera-mvc.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--配置注解扫描--> <context:component-scan base-package="com.itheima"/>
</beans>

7. Visita la dirección de prueba

http://localhost:8080/project/quick

2.3 Diagrama de proceso de SpringMVC

2.4 Puntos clave del conocimiento

Pasos de desarrollo de SpringMVC

① Importar coordenadas relacionadas con SpringMVC
② Configure el controlador principal SpringMVC DispathcerServlet
③ Crear clase de controlador y ver página
④ Use anotaciones para configurar la dirección de mapeo de los métodos comerciales en la clase Controller
⑤ Configure el archivo principal de SpringMVC spring-mvc.xml
⑥ El cliente inicia la prueba de solicitud

3. Resolución del componente SpringMVC

3.1 Proceso de ejecución de SpringMVC

① El usuario envía una solicitud al controlador front-end DispatcherServlet.
② DispatcherServlet recibe la solicitud y llama al mapeador de procesadores HandlerMapping.
③ El asignador de procesadores encuentra el procesador específico (que se puede buscar de acuerdo con la configuración y la anotación xml), genera el objeto del procesador y el interceptor de procesamiento (si lo hay) y lo devuelve al DispatcherServlet.
④ DispatcherServlet llama al adaptador de procesador HandlerAdapter.
⑤ HandlerAdapter está adaptado para llamar a un procesador específico (Controller, también llamado controlador de back-end).
⑥ La ejecución del controlador se completa y regresa a ModelAndView.
⑦ HandlerAdapter devuelve el resultado de la ejecución del controlador ModelAndView a DispatcherServlet.
⑧ DispatcherServlet pasa ModelAndView al sistema de resolución de vistas ViewReslover.
⑨ ViewReslover devuelve la vista específica después del análisis.
⑩ DispatcherServlet representa la vista de acuerdo con la Vista (es decir, llena la vista con los datos del modelo). El DispatcherServlet responde al usuario.

 3.2 Análisis de componentes SpringMVC

1. Controlador frontal: DispatcherServlet
Cuando la solicitud del usuario llega al controlador frontal, es equivalente a C en el patrón MVC. DispatcherServlet es el centro de todo el control del proceso, que llama a otros componentes para procesar la solicitud del usuario. La existencia de DispatcherServlet reduce el acoplamiento entre componentes.
2. Mapeador de controladores: HandlerMapping
HandlerMapping se encarga de encontrar Handlers o procesadores de acuerdo a las solicitudes de los usuarios.SpringMVC proporciona diferentes mapeadores para implementar diferentes métodos de mapeo, tales como: método de archivo de configuración, método de interfaz, método de anotación, etc.
3. Adaptador de controlador: Adaptador de controlador
Ejecute el controlador a través de HandlerAdapter, que es la aplicación del modo de adaptador. Se pueden ejecutar más tipos de controladores .
4. Manejador: Manejador
Es el controlador de negocio específico que se escribirá en nuestro desarrollo. DispatcherServlet reenvía la solicitud del usuario al controlador. El controlador maneja las solicitudes específicas de los usuarios.
5. Ver resolución: Ver resolución
View Resolver es responsable de generar la vista View a partir del resultado del procesamiento. View Resolver primero resuelve el nombre de la vista lógica en el nombre de la vista física, es decir, la dirección de la página específica, luego genera el objeto de la vista View y finalmente representa la vista. para mostrar el resultado del procesamiento al usuario a través de la página.
6. Ver: Ver
El marco SpringMVC brinda soporte para muchos tipos de vistas de vista, que incluyen: jstlView, freemarkerView, pdfView, etc. La vista más utilizada es jsp. En general, los datos del modelo deben mostrarse a los usuarios a través de etiquetas de página o tecnología de plantilla de página, y los programadores deben desarrollar páginas específicas de acuerdo con los requisitos comerciales.

3.3 Análisis de anotaciones SpringMVC

@RequestMapping
Rol: se utiliza para establecer la relación correspondiente entre la URL de la solicitud y el método de procesamiento de la solicitud
Localización:
  • class, el directorio de acceso de primer nivel para la URL de solicitud. Si no está escrito aquí, es equivalente al directorio raíz de la aplicación
  • En términos de método, el directorio de acceso de segundo nivel de la URL de solicitud se combina con el directorio de primer nivel marcado con @ReqquestMapping en la clase para formar una ruta de acceso virtual.
    Atributos:
  • valor : se utiliza para especificar la URL solicitada. Tiene el mismo efecto que el atributo de ruta.
  •  método : se utiliza para especificar el método de la solicitud
  • params : se utiliza para especificar condiciones para limitar los parámetros de solicitud. Admite expresiones simples. Se requiere que la clave y el valor del parámetro de solicitud sean exactamente iguales a la configuración
    Por ejemplo: params = {"accountName"} , lo que indica que el parámetro de solicitud debe tener accountName params = {"moeny!100"} , lo que indica que el dinero en el parámetro de solicitud no puede ser 100  
1. La introducción del espacio de nombres mvc
Espacios de nombres:
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
Dirección de restricción:
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
2. Escaneo de componentes
SpringMVC se basa en el contenedor Spring , por lo que al realizar operaciones SpringMVC , debe almacenar el controlador en el contenedor Spring . Si usa la anotación @Controller, debe usar < context : componente-scan base
package ="com.itheima.controller" /> realiza un análisis de componentes.

3.4 Análisis de configuración XML de SpringMVC

ver resolver

SpringMVC tiene una configuración de componentes predeterminada, los componentes predeterminados se configuran en el archivo de configuración DispatcherServlet.properties , la dirección del archivo de configuración
org/springframework/web/servlet/DispatcherServlet.properties , la resolución de vista predeterminada está configurada en este archivo, de la siguiente manera:
org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.I
nternalResourceViewResolver
Mirando el código fuente del analizador, puede ver la configuración predeterminada del analizador, de la siguiente manera:
REDIRECT_URL_PREFIX = "redirect:" --重定向前缀
FORWARD_URL_PREFIX = "forward:" --转发前缀(默认值)
prefix = ""; --视图名称前缀
suffix = ""; --视图名称后缀
Podemos modificar el prefijo y el sufijo de la vista mediante inyección de propiedades
<!--配置内部资源视图解析器--> 
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property>
</bean>

3.5 Puntos clave del conocimiento

Componentes relacionados de SpringMVC
• Controlador frontal: DispatcherServlet
• Mapeador de controladores: Mapeo de controladores
• Adaptador de controlador: adaptador de controlador
• Manejador: Manejador
• Ver resolución: ver resolución
• Ver: Ver
Anotación y configuración de SpringMVC
• Solicitud de anotación de mapeo: @RequestMapping
• Ver configuración de resolución:
  REDIRECT_URL_PREFIX = "redireccionar:"
  FORWARD_URL_PREFIX = "reenviar:"
  prefijo = "";
  sufijo = "";

Supongo que te gusta

Origin blog.csdn.net/qq_52360069/article/details/123637714
Recomendado
Clasificación