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

相关推荐
北执南念6 分钟前
CompletableFuture+线程池使用案列
java
黄交大彭于晏39 分钟前
发送文件脚本源码版本
java·linux·windows
钮钴禄·爱因斯晨1 小时前
Java 面向对象进阶之多态:从概念到实践的深度解析
java·开发语言·数据结构
鸽子炖汤1 小时前
Java中==和equals的区别
java·开发语言·jvm
hstar95271 小时前
二、即时通讯系统设计经验
java·架构
风象南1 小时前
SpringBoot的4种死信队列处理方式
java·spring boot·后端
互联网全栈架构2 小时前
遨游Spring AI:第一盘菜Hello World
java·人工智能·后端·spring
优秀的颜3 小时前
计算机基础知识(第五篇)
java·开发语言·分布式
BillKu3 小时前
Java严格模式withResolverStyle解析日期错误及解决方案
java
网安INF3 小时前
ElGamal加密算法:离散对数难题的安全基石
java·网络安全·密码学