SpringMVC调用流程

SpringMVC的调用流程

SpringMVC涉及组件理解:

  1. DispatcherServlet : SpringMVC提供,我们需要使用web.xml配置使其生效,它是整个流程处理的核心,所有请求都经过它的处理和分发! CEO

  2. HandlerMapping : SpringMVC提供,我们需要进行IoC配置使其加入IoC容器方可生效,它内部缓存handler(controller方法)和handler访问路径数据,被DispatcherServlet调用,用于查找路径对应的handler!秘书

  3. HandlerAdapter : SpringMVC提供,我们需要进行IoC配置使其加入IoC容器方可生效,它可以处理请求参数和处理响应数据数据,每次DispatcherServlet都是通过handlerAdapter间接调用handler,他是handler和DispatcherServlet之间的适配器!经理

  4. Handler : handler又称处理器,他是Controller类内部的方法简称 ,是由我们自己定义,用来接收参数,向后调用业务,最终返回响应结果打工人

  5. ViewResovler : SpringMVC提供,我们需要进行IoC配置使其加入IoC容器方可生效!视图解析器主要作用简化模版视图页面查找的,但是需要注意,前后端分离项目,**后端只返回JSON数据,不返回页面,那就不需要视图解析器!**所以,视图解析器,相对其他的组件不是必须的!财务

使用流程

Spring MVC(Model-View-Controller)是一个基于Java的Web应用程序框架,用于开发Web应用程序。下面是Spring MVC的基本使用流程:

  1. 配置Spring MVC环境: 在项目中配置Spring MVC的环境,包括引入相关的JAR包,配置web.xml文件,指定DispatcherServlet,配置Spring MVC的配置文件等。

    复制代码
    xmlCopy code<!-- web.xml配置 -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-mvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
  2. 配置Spring MVC的配置文件: 创建Spring MVC的配置文件,一般命名为spring-mvc-config.xml。配置文件中包括组件扫描、视图解析器、控制器映射等配置。

    复制代码
    xmlCopy code<!-- spring-mvc-config.xml配置示例 -->
    <context:component-scan base-package="com.example.controller" />
    ​
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>
  3. 创建Controller: 创建处理HTTP请求的Controller类。Controller负责处理用户请求,调用业务逻辑,并返回适当的视图。

    复制代码
    javaCopy code@Controller
    public class MyController {
        @RequestMapping("/hello")
        public String hello(Model model) {
            model.addAttribute("message", "Hello, Spring MVC!");
            return "hello"; // 视图名
        }
    }
  4. 创建视图(View):/WEB-INF/views/目录下创建视图文件,比如hello.jsp。这个文件用于展示处理结果。

    复制代码
    jspCopy code<!-- hello.jsp -->
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Hello</title>
    </head>
    <body>
        <h2>${message}</h2>
    </body>
    </html>
  5. 运行应用程序: 部署项目到Servlet容器(如Tomcat)并启动。访问配置的URL(比如http://localhost:8080/your-web-app/hello),就会调用相应的Controller方法,并展示对应的视图。

这是一个简单的Spring MVC使用流程。实际项目中,你可能会涉及更复杂的业务逻辑、数据持久化、拦截器等方面的内容。Spring MVC提供了很多功能,可以根据项目的需要进行相应的配置和扩展。

相关推荐
nanxun88615 小时前
记一次诡异的 Docker 容器"串包"故障排查
java
用户15630681035118 小时前
Day01 | Java 基础(Java SE)
java
行者全栈架构师20 小时前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师1 天前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_01 天前
mac(m5)平台编译openjdk
java
唐青枫2 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马2 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261352 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261352 天前
Java 打印 Word 文档:从基础打印到高级设置
java
用户3521802454753 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程