Spring MVC (forma tradicional)

Tabla de contenido

1. Componentes de primavera MVC

2. Pruebe Spring MVC

1.1 Crear proyecto maven

1.2 Agregar dependencias en pom.xml

1.3 Agregar el archivo de configuración de Spring beans.xml

1.4 Configurar SpringMVC en web.xml (src-webapp-WEB-INF-web.xml)

1.5 Configurar en web.xml para permitir el acceso a archivos estáticos

1.6. Agregue demo01.html en la carpeta de la aplicación web

1.7 Agregar controlador

1.8 Prueba de acceso al navegador

3. Agregue soporte JSON 

3.1 Agregar conversor de mensajes JSON en beans.xml

3.2 Agregar entidad de usuario

3.3 Prueba en el controlador

3.4 Prueba en el navegador


1. Componentes de primavera MVC

  • DispatcherServlet (controlador frontal): equivalente al controlador en MVC, DispatcherServlet es el centro de todo el control del proceso. Llama a otros componentes para manejar las solicitudes de los usuarios. La existencia de DispatcherServlet reduce el acoplamiento entre componentes.
  • HandlerMapping (mapeador de procesador): responsable de encontrar el controlador (procesador) correspondiente de acuerdo con 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 anotación
  • Controlador (procesador): bajo el control de DispatcherServlet, el controlador procesa solicitudes de usuarios específicas.
  • HandlerAdapter (adaptador de procesador): modo adaptador. Al extender el adaptador, se pueden controlar más tipos de controladores.
  • ViewResolver (resolución de vistas): responsable de generar una vista (Vista) a partir de los resultados del procesamiento. SpringMVC proporciona una variedad de tipos de vistas, a saber: jstlView, freemarkerView, pdfView, etc.

2. Pruebe Spring MVC

1.1 Crear proyecto maven

1.2 Agregar dependencias en pom.xml

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.2.6.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>4.2.6.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.2.6.RELEASE</version>
    </dependency>

1.3 Agregar el archivo de configuración de Spring beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 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">
​
    <!--开启MVC框架注解-->
    <mvc:annotation-driven/>
    <!--开启注解扫描-->
    <context:component-scan base-package="demo.controller"/>
​
    <!-- 添加视图解析 -->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 前缀(目录) -->
        <!--        <property name="prefix" value="/WEB-INF/views/"/>-->
        <property name="prefix" value="/views/"/>
        <!-- 后缀 -->
        <property name="suffix" value=".html"/>
    </bean>
</beans>

1.4 Configurar SpringMVC en web.xml (src-webapp-WEB-INF-web.xml)

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
​
<web-app>
  <!--配置DispatcherServlet-->
  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <!--配置dispatcher.xml作为mvc的配置文件-->
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:beans.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>
​

1.5 Configurar en web.xml para permitir el acceso a archivos estáticos

<!-- 允许访问静态文件 -->
  <servlet-mapping>
    <servlet-name >default</servlet-name >
    <url-pattern >*.js</url-pattern>
  </servlet-mapping >
  <servlet-mapping >
    <servlet-name >default</servlet-name >
    <url-pattern >*.css</url-pattern>
  </servlet-mapping >
  <servlet-mapping >
    <servlet-name >default</servlet-name >
    <url-pattern >*.html</url-pattern>
  </servlet-mapping >
  <servlet-mapping >
    <servlet-name >default</servlet-name >
    <url-pattern >*.gif</url-pattern>
  </servlet-mapping >

1.6. Agregue demo01.html en la carpeta de la aplicación web

Cree el archivo demo01.html en la carpeta \webapp\views\

<body>
    <h3>Hello World</h3>
</body>

1.7 Agregar controlador

package demo.controller;
​
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
​
@Controller
public class DemoController {
    @RequestMapping("/index")
    public String index1(){
        return "demo01";
    }
}
​

1.8 Prueba de acceso al navegador

Acceda a localhost:8080/index en el navegador y podrá saltar a demo01.html normalmente.

3. Agregue soporte JSON 

3.1 Agregar conversor de mensajes JSON en beans.xml

Agregue dependencia fastjson en pom.xml

<!--json-->
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.13.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.79</version>
    </dependency>

Configure en beans.xml (colocado en el medio de <mvc:annotation-driven></mvc:annotation-driven>)

    <!--解决json 乱码配置-->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8"/>
            </bean>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper">
                    <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                        <property name="failOnEmptyBeans" value="false"/>
                    </bean>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

3.2 Agregar entidad de usuario

public class User {
    private int id;
    private String uname;
  	//省略Getter和Setter
}

3.3 Prueba en el controlador

package demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @RequestMapping("/test2")
    public User test2(){
        User user = new User(1001, "张三");
        return user;
    }
}

3.4 Prueba en el navegador

Visite localhost:8080/test2 en el navegador para probar

Supongo que te gusta

Origin blog.csdn.net/lanlan112233/article/details/129211847
Recomendado
Clasificación