Los pasos básicos para crear un proyecto SpringMVC

  1. Cree un proyecto Maven vacío como proyecto principal, elimine src
  2. Agregar dependencias relacionadas para este proyecto principal

primavera, servlet, jsp, jstl ...

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>
  1. Evite los problemas de exportación de recursos estáticos de Maven
<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
  1. Crear un nuevo subproyecto Maven en blanco
  2. Haga clic derecho y seleccione agregar soporte de marco

imagen-20210227182715934

  1. Elija la aplicación web

imagen-20210227182801084

De esta forma, se creó con éxito un proyecto web

imagen-20210227212219071

  1. Configurar web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!--注册servlet-->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--通过初始化参数指定SpringMVC配置文件的位置,进行关联-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!-- 启动顺序,数字越小,启动越早 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--所有请求都会被Spring拦截-->
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


</web-app>

La diferencia entre / y / *: <url-pattern> / </ url-pattern> no coincidirá con el .jsp, solo para las solicitudes que escribamos; es decir, el .jsp no ingresará a la clase Spring DispatcherServlet. <url-pattern> / * </ url-pattern> coincidirá con * .jsp, y la clase DispatcherServlet de spring volverá a aparecer cuando regrese a la vista jsp. Como resultado, no se puede encontrar el controlador correspondiente y aparece un error 404 informó.

    • Preste atención al problema de la versión web.xml, ¡solicite la última versión!
    • Registrar DispatcherServlet
    • Archivo de configuración SpringMVC asociado
    • El nivel de inicio es 1
    • La ruta de mapeo es / [No use / *, será 404]

8. Agregue el archivo de configuración springMVC

Agregue el archivo de configuración springmvc-servlet.xml en recursos. El formulario de configuración es similar a la configuración básica del contenedor Spring. Para admitir el IOC basado en anotaciones, se establece la función de escaneo automático del paquete. La información de configuración específica es la siguiente:

<?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
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
    <context:component-scan base-package="top.faroz.controller"/>
    <!-- 让Spring MVC不处理静态资源 -->
    <mvc:default-servlet-handler />
    <!--
    支持mvc注解驱动
        在spring中一般采用@RequestMapping注解来完成映射关系
        要想使@RequestMapping注解生效
        必须向上下文中注册DefaultAnnotationHandlerMapping
        和一个AnnotationMethodHandlerAdapter实例
        这两个实例分别在类级别和方法级别处理。
        而annotation-driven配置帮助我们自动完成上述两个实例的注入。
     -->
    <mvc:annotation-driven />

    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
</beans>
  1. En el solucionador de vistas, almacenamos todas las vistas en el directorio / WEB-INF / , lo que puede garantizar la seguridad de la vista, porque el cliente no puede acceder directamente a los archivos de este directorio .

    • Deje que los comentarios del COI surtan efecto
    • Filtrado de recursos estáticos: HTML. JS. CSS. Imágenes, vídeos ...
    • MVC basado en anotaciones
    • Configurar el solucionador de vistas

9. Crea el controlador

Escribe una clase de control de Java

@Controller
@RequestMapping("/HelloController")
public class HelloController {
    
    

    //真实访问地址 : 项目名/HelloController/hello
    @RequestMapping("/hello")
    public String sayHello(Model model) {
    
    
        //向模型中添加属性msg与值,可以在JSP页面中取出并渲染
        model.addAttribute("msg","hello,SpringMVC");
        //web-inf/jsp/hello.jsp
        return "hello";
    }
}
  • @Controller permite que el contenedor Spring IOC se escanee automáticamente cuando se inicializa;
  • @RequestMapping es para mapear la ruta de la solicitud, aquí porque hay mapeos en la clase y el método, debería ser / HelloController / hello cuando se accede;
  • El método declara los parámetros del tipo Modelo para traer los datos de la Acción a la vista;
  • El método Results hello devuelve el nombre de la vista, junto con el prefijo y el sufijo profile-INF en WEB / JSP / hello .jsp. Anteriormente, el siguiente párrafo en springmvc-servlet.xml se usó para esto:imagen-20210227214423343
  1. Crea la capa de vista

  2. Cree hello.jsp en el directorio WEB-INF / jsp, la vista puede recuperar y mostrar directamente la información traída del controlador;

  3. El valor u objeto almacenado en el modelo se puede recuperar a través de la representación EL;

  4. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
       <title>SpringMVC</title>
    </head>
    <body>
    ${msg}
    </body>
    </html>
    
  5. Configurar Tomcat

  6. Ejecutar, ingrese la URL http: // localhost: 8080 / HelloController / hello

Encontró que el resultado es 404

imagen-20210227215831809

Aquí debe prestar atención a un problema de paquete de guía

  1. Problema del paquete de guías

imagen-20210227220123220

Agregar lib

imagen-20210227220230257

Seleccione todo aquí, luego haga clic en Aceptar

imagen-20210227220306324

En este momento, reiniciamos el proyecto y descubrimos que estaba bien.

imagen-20210227220410119

Supongo que te gusta

Origin blog.csdn.net/weixin_44062380/article/details/114195145
Recomendado
Clasificación