Notas de estudio de SSM seis (SpringMVC)

1. Integración del entorno Spring y Web

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

El objeto de contexto de la aplicación se obtiene a través del nuevo método ClasspathXmlApplicationContext (archivo de configuración de primavera), pero cada vez que obtiene el Bean del contenedor, 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, puede usar ServletContextListener para monitorear el inicio de la aplicación web. Cuando la aplicación web se inicia, podemos cargar el archivo de configuración de Spring, crear el objeto de contexto de la aplicación ApplicationContext y almacenarlo en el dominio servletContext de dominio más grande, por lo que que puede obtener el objeto ApplicationContext del contexto de la aplicación del dominio en cualquier ubicación.

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 los archivos de configuración de Spring, crea objetos de contexto de la aplicación y los almacena en el dominio ServletContext, y proporciona una herramienta cliente WebApplicationContextUtils para The el usuario obtiene el objeto de contexto de la aplicación.

Entonces, solo hay dos cosas que debemos hacer:

① Configure el oyente ContextLoaderListener en web.xml (importar coordenadas spring-web)

② Utilice 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 la aplicación a través de herramientas

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

Puntos de conocimiento

Pasos del entorno web integrado de Spring

①Configurar el oyente ContextLoaderListener

②Utilice 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 impulsado por 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 frameworks MVC más convencionales, y con el lanzamiento de Spring3.0, ha superado completamente a Struts2 para convertirse en el mejor framework MVC. Utiliza un conjunto de anotaciones para convertir una clase Java simple en un controlador para procesar solicitudes sin implementar ninguna interfaz. Al mismo tiempo, también admite solicitudes de estilo de programación RESTful.

2.3 Inicio rápido de SpringMVC

Requisitos: El cliente inicia una solicitud, el servidor recibe la solicitud, ejecuta la lógica y realiza un salto de vista.

Pasos de desarrollo

①Importar coordenadas relacionadas con SpringMVC

②Configure el controlador principal SpringMVC DispathcerServlet

③Crear una clase de controlador y ver la página

④ Use anotaciones para configurar la dirección de mapeo del método comercial en la clase Controller

⑤Configure el archivo principal de SpringMVC spring-mvc.xml

⑥ El cliente inicia una solicitud para implementar el código de prueba

①Importe las coordenadas de Spring y SpringMVC, e importe las coordenadas de Servlet y Jsp

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

④Anotación de configuración

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

⑤ Cree 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>

⑥Visita la dirección de prueba

http://localhost:8080/itheima_springmvc1/quick 

Inserte la descripción de la imagen aquí
Pasos de desarrollo de SpringMVC

①Importar coordenadas relacionadas con SpringMVC

②Configure el controlador principal SpringMVC DispathcerServlet

③Crear una clase de controlador y ver la página

④ Use anotaciones para configurar la dirección de mapeo del método comercial en la clase Controller

⑤Configure el archivo principal de SpringMVC spring-mvc.xml

⑥El cliente inicia una prueba de solicitud

3. Análisis de componentes SpringMVC

3.1 Proceso de ejecución de SpringMVC

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3.3 Análisis de anotaciones SpringMVC

@RequestMapping

Rol: se utiliza para establecer la correspondencia entre la URL de la solicitud y el método de procesamiento de la solicitud.

posición:

En la clase, se solicita el primer nivel de la URL para acceder al directorio. Si no está escrito aquí, es equivalente al directorio raíz de la aplicación.

En el método, el directorio de acceso de segundo nivel de la URL de la solicitud se combina con el directorio de primer nivel marcado con @ReqquestMapping en la clase para formar una ruta virtual de acceso.

Atributos:

Valor: se utiliza para especificar la URL solicitada. Tiene la misma función que el atributo de ruta.

Método: se utiliza para especificar el método de solicitud

Params: se utiliza para especificar las condiciones para limitar los parámetros de la solicitud. Admite expresiones simples. La clave y el valor del parámetro de solicitud deben ser exactamente los mismos que los de la configuración.

P.ej:

Params = {"accountName"}, lo que significa que el parámetro de solicitud debe tener accountName

Params = {"moeny! 100"}, lo que significa que el dinero en el parámetro de solicitud no puede ser 100
1. Se introduce el 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

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: component-scan base-package = "com. itheima.controller "/> Realizar una exploración de componentes.

3.4 Análisis de configuración XML SpringMVC

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 es org / springframework / web / servlet / DispatcherServlet.properties. El analizador de vistas predeterminado se configura en este archivo, de la siguiente manera:

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

Si observa 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 = "";     --视图名称后缀
  1. Ver resolutor

Podemos modificar el prefijo y sufijo de la vista mediante la inyección de atributos.

<!--配置内部资源视图解析器-->
<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 de conocimiento

Componentes relacionados de SpringMVC

Controlador frontal: DispatcherServlet (responsable de llamar a otros componentes funcionales)

Handler mapper: HandlerMapping (ayuda con una resolución de dirección y devuelve una cadena de ejecución)

Adaptador de procesador: HandlerAdapter (llamado por el controlador frontal para ayudar a ejecutar el procesador)

Procesador: Handler (equivalente a Controller)

Ver resolución: Ver resolución (responsable de analizar la vista)

Ver: Ver (información sobre la vista del paquete)

Anotación y configuración de SpringMVC

Solicitar anotación de mapeo: @RequestMapping

Ver la configuración del resolutor:

REDIRECT_URL_PREFIX = "redireccionar:"

FORWARD_URL_PREFIX = "adelante:"

prefijo = "";

sufijo = "";

Supongo que te gusta

Origin blog.csdn.net/weixin_45394002/article/details/113256684
Recomendado
Clasificación