SpringMVC (primer conocido)

1. ¿Qué es SpringMVC?
Spring MVC es un producto de seguimiento de SpringFrameWork y se ha integrado en Spring Web Flow.
El módulo web proporcionado por Spring Framework incluye un módulo MVC con todas las funciones para desarrollar aplicaciones web. Entonces, cuando use Spring para el desarrollo WEB, puede optar por usar el marco SpringMVC de Spring. Integre otros marcos de desarrollo WEB MVC, como Struts (generalmente no se usa ahora), Struts2 (generalmente usado por proyectos antiguos), etc.
SpringMVC es el marco de desarrollo mvc de la capa web, que pertenece a una parte del módulo WEB del marco Spring .
2. Desarrollar un programa basado en SpringMVC
1. Crear un proyecto (proyecto web)
Inserte la descripción de la imagen aquí

2. Mejorar la estructura del proyecto
3. Importar dependencias

<!-- 配置开发SpringMVC所以来的jar包 -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.1.5.RELEASE</version>
</dependency>
<!-- 配置ServletAPI依赖 -->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.0.1</version>
  <scope>provided</scope>
</dependency>
<!--配置JSP依赖包-->
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>javax.servlet.jsp-api</artifactId>
  <version>2.2.1</version>
  <scope>provided</scope>
</dependency>
<!--配置JSTL的依赖-->
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>

4. Configure la unidad central de procesamiento en el archivo web.xml [DispatcherServlet]
DispatcherServlet en sí mismo es un servlet, por lo tanto, configure la unidad central de procesamiento para usar la configuración de servlet / mapeo de servlet en el archivo web.xml

<servlet>
  <servlet-name>dispatcherServle</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 </servlet>
<servlet-mapping>
  <servlet-name>dispatcherServle</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

Nota: No hay * después de / "/"
5. Cree un controlador personalizado

package com.wangxing.springmvc.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
//控制器类【处理用户请求】
public class HelloController implements Controller {
    //用户请求处理方法
    @Override
    public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws Exception {
        String info="hello,word";
        ModelAndView mav=new ModelAndView();
        mav.addObject("info",info);
        mav.setViewName("test.jsp");
        return mav;
    }
}

6. Cree un archivo de configuración springMVC en resources.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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">
    <!--配置URL解析器-->
    <!--org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping-->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
    <!--配置控制器适配器-->
    <!--org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter-->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
    <!--配置自定义的控制器-->
    <!--name:自定义的控制器的访问路径-->
    <!--class:自定义的控制器的包名+类名-->
    <bean name="/hello" class="com.wangxing.springmvc.controller.HelloController"></bean>
    <!--配置视图解析器-->
    <!--org.springframework.web.servlet.view.InternalResourceViewResolver-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix"  value=""></property>
    </bean>
</beans>

7. Configure y cargue el archivo de configuración de springmvc en el archivo web.xml.

<servlet>
  <servlet-name>dispatcherServle</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <!--配置加载springmvc的配置文件-->
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc.xml</param-value>
  </init-param>
</servlet>

8. Cree un archivo jsp

<%@page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
<html>
<body>
<h2>${info}</h2>
</body>
</html>

9. Configure el programa de implementación del servidor
10. Prueba del navegador http: // localhost: 8080 / SpringMVCDemo1_war / hello

2. El proceso de ejecución de SpringMVC
Inserte la descripción de la imagen aquí

1. Cuando se inicia el servidor, se inicializa el controlador central [DispatcherServlet] configurado en el archivo web.xml y se carga el archivo de configuración springMVC configurado.
2. El navegador del cliente envía una solicitud http.
3. La solicitud http es interceptada por el controlador central [DispatcherServlet] y reenviada al analizador de URL para su análisis.
4. El analizador de URL analiza la solicitud http para obtener la ruta de solicitud específica.
5. El analizador de URL devuelve la ruta de solicitud específica obtenida por el análisis al controlador central [DispatcherServlet]
6. El controlador central [DispatcherServlet] transfiere la ruta de solicitud específica obtenida al adaptador del controlador.
7. El adaptador de controlador busca la clase de procesamiento de solicitud correspondiente [clase de controlador] en el archivo de configuración springmvc de acuerdo con la ruta de solicitud específica.
8. La clase de procesamiento de solicitudes [clase de controlador] ejecuta un procesamiento de solicitudes específico y obtiene el objeto ModelAndView [1. data. 2. Jump address], entregue el objeto ModelAndView al adaptador del controlador y el adaptador del controlador devuelve el objeto ModelAndView al controlador central [DispatcherServlet].
9. El controlador central [DispatcherServlet] transfiere el objeto ModelAndView al solucionador de vistas para su análisis.
10. El analizador de vistas analiza el objeto ModelAndView para obtener una ruta de visualización de datos específica y devuelve esta ruta de visualización de datos específica al controlador central [DispatcherServlet].
11. Una vez que el controlador central [DispatcherServlet] obtiene la ruta de visualización de datos específicos, convierte y ejecuta el recurso representado por la ruta en datos html.
12. Devuelva los datos html convertidos al navegador del cliente. ****

3. La configuración de la ruta de acceso solicitada por
SpringMVC 3.1 La configuración de DispatcherServlet en el archivo web.xml

1.1 /
El valor del atributo de nombre del elemento del bean controlador del archivo de configuración de Spring correspondiente "/ xxxx"
corresponde a http://127.0.0.1: 8080 / springmvc1 / el valor del atributo Add
1.2 .do
name del correspondiente perfil de bean del controlador del elemento spring "xxxx.do"
corresponde a http://127.0.0.1:8080/springmvc1/add.do
/ esta es una forma incorrecta
3.2 El nombre valor de atributo del
controlador en el archivo de configuración springmvc La configuración del valor del atributo de nombre del controlador debe
ser consistente con el formulario de configuración de DispatcherServlet en el archivo web.xml
2.1 La configuración de DispatcherServlet en el archivo web.xml / luego el control en el archivo de configuración springmvc El valor del atributo de nombre del controlador debe ser "/ xxxx"
http://127.0.0.1:8080/springmvc1/add
* .do configurado por DispatcherServlet en el archivo 2.2web.xml, luego el valor del atributo de nombre de el controlador en el archivo de configuración springmvc debe ser "/Xxxx.do"
http://127.0.0.1:8080/springmvc1/add.do
3.3 El valor de retorno del método de procesamiento de solicitudes handleRequest en la clase de controlador para el procesamiento de solicitudes ModelAndView
3.3.1 Crear una clase Java común para implementar la
interfaz org.springframework.web.servlet.mvc.Controller
3.3.2 Anular el método handleRequest [método de procesamiento de solicitudes]
3.3.3 Configurar en el archivo de configuración springmvc Por ejemplo: paquete com .wangxing.springmvc.controller; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; // Clase de controlador [manejo de solicitudes de usuario] clase pública HelloController implementa Controlador { // Solicitud de usuario al proceso de transformación @ Override pública ModelAndView handleRequest (petición javax.servlet.http.HttpServletRequest, la respuesta javax.servlet.http.HttpServletResponse) throws Exception { información string = "hola, Netstar software"; ModelAndView MAV = new ModelAndView (); mav.addObject ("información", información);














mav.setViewName ("test.jsp");
return mav;
}
}

El valor de retorno del método de procesamiento de solicitudes handleRequest ModelAndView
1. ModelAndView -java class
2. La primera parte de la clase ModelAndView es un modelo [modelo] de datos encapsulados El
la segunda parte es un elemento de página View [view] que muestra datos. 3. La
clase ModelAndView se utiliza para encapsular datos y mostrar elementos de página de datos.
4. Construya el método ModelAndView () para crear el objeto de clase
ModelAndView ModelAndView mav = new ModelAndView ();
5. El método de encapsular datos addObject (attributeName, attributeValue) es equivalente a setAttribute (clave, valor)
mav.addObject ("info "," hola, software
Netstar "); 6. Establezca el nombre del elemento de la página que muestra el conjunto de datosViewName (viewName)

      mav.setViewName("test.jsp");
          mav.setViewName("test");
 		  mav.setViewName("test.html");
mav.setViewName("控制器对应的请求处理路径");
mav.setViewName("test");---forword跳转[转发]
mav.setViewName("forward:test.jsp");
mav.setViewName("redirect:test.jsp");

---- sendRedirect jump [redirect]
3.4 view parser
Por ejemplo:

<!--配置视图解析器-->
<!--org.springframework.web.servlet.view.InternalResourceViewResolver-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀配置:[工程访问路径“http://localhost:8080/SpringMVCDemo1_war/”]-->
    <property name="prefix" value="/"></property>
<!--后缀配置-->
    <property name="suffix"  value=""></property>
</bean>

Usando el nombre de vista obtenido en la clase de procesamiento de solicitudes, se obtiene una ruta de acceso completa combinando el prefijo y el sufijo del analizador de vista.
prefijo + nombre de vista + sufijo: ruta de acceso completa al elemento
Por ejemplo:

ModelAndView  mav=new ModelAndView();
 		  mav.setViewName("test.jsp");
    
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix" value="/"></property>
    		<property name="suffix"  value=""></property>
	  </bean>

La ruta completa después de analizar por el solucionador de vistas

http://localhost:8080/SpringMVCDemo1_war/test.jsp

P.ej:

ModelAndView  mav=new ModelAndView();
 		  mav.setViewName("test");
    
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix" value="/"></property>
    		<property name="suffix"  value=".html"></property>
	  </bean>

La ruta completa después del análisis por parte del solucionador de vistas
http: // localhost: 8080 / SpringMVCDemo1_war / test.html

4. Configuración del procesador central DispatcherServlet para cargar la configuración del archivo de configuración SpringMVC
1. Cuando el archivo de configuración springMVC está en el directorio de recursos, el
directorio raíz de recursos

 <!--配置加载springmvc的配置文件-->
    	<init-param>
      		<param-name>contextConfigLocation</param-name>
      		<param-value>classpath:xxxxxxxxxxxx.xml</param-value>
       </init-param>

Inserte la descripción de la imagen aquí

En la subcarpeta [primavera] del directorio de recursos

<!--配置加载springmvc的配置文件-->
    <init-param>
      	<param-name>contextConfigLocation</param-name>
      	<param-value>classpath:spring/xxxxxxxxxxxx.xml</param-value>
    </init-param>

Inserte la descripción de la imagen aquí

2. Cuando el archivo de configuración springMVC está en el directorio WEB-INF
2.1 El nombre del archivo de configuración Spring
[el valor del elemento del nombre del servlet correspondiente al controlador central-servlet.xml]
2.2 No es necesario que aparezca en el elemento de configuración de servlet en el archivo web.xml

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/guoguo0717/article/details/110174236
Recomendado
Clasificación