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提供了很多功能,可以根据项目的需要进行相应的配置和扩展。

相关推荐
hummhumm6 分钟前
第 36 章 - Go语言 服务网格
java·运维·前端·后端·python·golang·java-ee
YuanLiu_22715 分钟前
代码随想录算法训练营第十三天(递归遍历;迭代遍历;统一迭代;层序遍历)
java·数据结构·笔记·算法·leetcode
呆呆小雅21 分钟前
C# 封装
java·开发语言·c#
linmoo198629 分钟前
java脚手架系列16-AI大模型集成
java·人工智能·ai·大模型·通义千问·qwen·脚手架
对酒当歌丶人生几何30 分钟前
Mybatis控制台打印SQL执行信息(执行方法、执行SQL、执行时间)
java·数据库·sql·mybatis
uncleqiao38 分钟前
5.Feign与ReflectiveFeign
java·feign
yours_Gabriel43 分钟前
【微服务】 Eureka和Ribbon
java·微服务·eureka·ribbon
小扳1 小时前
微服务篇-深入了解使用 RestTemplate 远程调用、Nacos 注册中心基本原理与使用、OpenFeign 的基本使用
java·运维·分布式·后端·spring·微服务·架构
阿乾之铭1 小时前
Spring Framework的常用工具类
java
北巷!!1 小时前
宇信科技JAVA笔试(2024-11-26日 全部AK)
java·开发语言·科技