Implementación simple de springMVC

Pasos de implementación

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

Crear proyecto

Inserte la descripción de la imagen aquí

Agregar dependencia

Agregar dependencia de Servlet y springmvc

<!--    Servlet依赖-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>

    <!--springmvc-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>

Registrar DispatherServlet

Debes crear una instancia del objeto DispatcherServlet después de que se inicie Tomcat. Durante el proceso de creación, el objeto contenedor springmvc se creará al mismo tiempo y se leerá el archivo de configuración springmvc.

Cree todos los objetos en este archivo de configuración y utilice los objetos directamente cuando el usuario inicie una solicitud

Creará un contenedor en el método init, leerá el archivo de configuración y luego colocará el objeto contenedor en el ServletContext,

      //创建容器,读取配置文件
      WebApplicationContext ctx=new ClassPathXmlApplicationContext("springmvc.xml");
      //把容器对象放入到ServletContext中
	  getServletContext().setAttribute(key,ctx);

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">
    <!--  声明,注册springmvc的核心对象DispatherServlet     -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!--springmvc默认读取的是/WEB-INF/<servlet-name>-servlet.xml文件,
        可以自定义springMVC读取配置文件的位置-->
        <init-param>
            <!--            springMvc的配置文件的位置-->
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>

        <!--    在tomcat启动后,创建Servlet对象,表示tomcat启动后
        创建对象的顺序。他的数值越小,创建对象的时间越早-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--        url-pattern使用框架的时候可以有两种值:
                    1、一种是使用扩展名:*.do,表示以.do结尾的请求都会映射到这个Servlet
                    tomcat自带一个DefaltServlet,未映射的请求和静态资源都会交给这个Servlet去处理

                    2、第二种是使用斜杠"/",所有静态资源(html,js,jpg等)都给这个映射的Servlet去处理,而DispatcherServlet没有
                    处理静态资源的能力,动态资源some.do是可以访问的,因为程序中有控制器对象
                    第一种解决方案:
                        是在springmvc的配置文件中加入<mvc:default-servlet-handler/>注解
                     第二种解决方案:
                        在springmvc中加入<mvc:resource>-->

                <url-pattern>*.do</url-pattern>
<!--        <url-pattern>/</url-pattern>-->
    </servlet-mapping>
</web-app>

Iniciar la página de solicitud

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<a href="test/some.do">发起请求</a><br/>
</body>
</html>

Crea la clase de controlador

El método para procesar las solicitudes de los usuarios puede tener múltiples valores de retorno, múltiples parámetros
@RequestMapping mapeo de solicitudes, vincular una dirección de solicitud y un método juntos,

Puede estar en el método o en la clase. En la clase, significa que la parte pública de la dirección de solicitud. El
valor es una Cadena [], lo que significa que la dirección URL solicitada también puede ser una matriz de cadenas, lo que significa varias URL.

ModelAndView representa el resultado del procesamiento de esta solicitud,

Modelo: Datos, los datos que se mostrarán al usuario después de que se procese la solicitud

Ver: Ver, como jsp, etc.

Agrega datos , de esta manera agrega atributos de dominio

Especifique la vista , especifique la ruta completa de la vista, la operación de avance realizada por el marco en la vista y agregue la cadena en el analizador de vista

atributo de método , especifique el método de solicitud

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/test")
public class MyController {
    
    
    @RequestMapping(value ={
    
    "/some.do","/other.do"},method = RequestMethod.GET)
    public ModelAndView doSome(){
    
    
        System.out.println("Jinlai");
        ModelAndView mv=new ModelAndView();
        //添加数据,这种方式添加的是域属性
        //request.setAttribute("msg","Hi");
        mv.addObject("msg","Hi");
        //指定视图,指定视图的完整路径,框架对视图执行的转发forward操作,和视图解析器中的字符串相加
        mv.setViewName("/show.jsp");
        return mv;
    }
}

Crea un jsp como resultado

show.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h3>show.jsp从request作用域获取数据</h3>
<h3>msg数据:${msg}</h3>
</body>
</html>

archivo de configuración springmvc

Declarar escáner de componentes

<?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"
       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">
    <!--声明组件扫描器-->
    <context:component-scan base-package="controller"/>

</beans>

resultado de la operación

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

Supongo que te gusta

Origin blog.csdn.net/qq_36976201/article/details/113092519
Recomendado
Clasificación