Basta con aprender la integración de Spring y el entorno Web y el inicio rápido de SpringMVC

Baojianfeng proviene del afilado y la fragancia de las flores de ciruelo proviene del frío amargo.
--estímulo mutuo

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 new ClasspathXmlApplicationContext (archivo de configuración de primavera), pero cada vez que se obtiene un bean del contenedor, se debe escribir newClasspathXmlApplicationContext (archivo de configuración de primavera), la desventaja de esto es que el
archivo de configuración se carga muchas veces, y el objeto de contexto de la aplicación se crea muchas veces.
En un proyecto web, ServletContextListener se puede usar para monitorear el inicio de la aplicación web. Cuando se inicia la aplicación web, podemos cargar el archivo de configuración de Spring, crear el objeto de contexto de 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. Se proporciona una herramienta de cliente WebApplicationContextUtils para The 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 de Spring-Web)
② Usar 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

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

PrimaveraMVC

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.

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

① Importar las coordenadas de Spring y 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>

① Importar las coordenadas de Servlet y Jsp

<!--Servlet坐标-->
 <dependency> 
 <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
   <version>2.5</version>
</dependency>
<!--Jsp坐标--> 
<dependency> 
<groupId>javax.servlet.jsp</groupId>
 <artifactId>jsp-api</artifactId>
  <version>2.0</version>
</dependency>

② 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>

③ Crear controlador y método comercial

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

③ Crear la página de vista index.jsp

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

④ Notas de configuración

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

⑤ Crear spring-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>

Diagrama de proceso de SpringMVC

inserte la descripción de la imagen aquí

Resolución del componente SpringMVC

El flujo de ejecución de SpringMVC

inserte la descripción de la imagen aquí
① 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 un procesador específico (que se puede buscar de acuerdo con la configuración xml y las anotaciones), genera un objeto de procesador y un interceptor de procesador (si lo
genera) y lo devuelve a 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 los datos del modelo en la vista). El DispatcherServlet responde al usuario.

Análisis de componentes SpringMVC

  1. Controlador front-end: las solicitudes de los usuarios de DispatcherServlet
    llegan al controlador front-end, que 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 las solicitudes de los usuarios. La existencia de DispatcherServlet reduce el acoplamiento entre componentes sexo

  2. Mapeador de manejadores: HandlerMapping
    HandlerMapping se encarga de encontrar el Handler, es decir, el manejador de acuerdo a la solicitud del usuario.SpringMVC proporciona diferentes mapeadores para implementar diferentes métodos de mapeo, tales como: método de archivo de configuración, método de interfaz de implementación, método de anotación, etc.

  3. Adaptador de controlador: HandlerAdapter
    ejecuta el procesador a través de HandlerAdapter, que es la aplicación del modo de adaptador, y se pueden ejecutar más tipos de procesadores al extender el adaptador.

  4. Handler: Handler
    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. View resolver: View Resolver
    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 página específica, luego genera el objeto View view, y finalmente representa la Vista para pasar el resultado del procesamiento a través de La página se muestra al usuario.

  6. Vista: vista
    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 las necesidades comerciales.

Análisis de anotaciones SpringMVC

Rol @RequestMapping
: se utiliza para establecer la relación correspondiente entre la URL de la solicitud y el método de procesamiento de la solicitud
Ubicación:

  1. 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
  2. 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:

  1. valor: la URL utilizada para especificar la solicitud. Tiene la misma función que el atributo de ruta
    2.method: se usa para especificar el método de solicitud
    3.params: se usa para especificar las condiciones para limitar los parámetros de la 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

introducción al espacio de nombres mvc

命名空间:xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
约束地址: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

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:component-scan base-package="com. itheima.controller" /> realiza un análisis de componentes.

Configuración de resolución de vista de SpringMVC

SpringMVC tiene una configuración de componentes predeterminada. Los componentes predeterminados están configurados en el archivo de configuración DispatcherServlet.properties. La dirección del archivo de configuración es
org/springframework/web/servlet/DispatcherServlet.properties. El analizador de vista predeterminado está configurado en este archivo, de la siguiente manera:

org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver

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>

Supongo que te gusta

Origin blog.csdn.net/JIAYOUYAA/article/details/124173328
Recomendado
Clasificación