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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/184654.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud微服务:Nacos快速入门

目录 第一步&#xff1a;cloud-demo的pom文件 第二步&#xff1a;user-service的pom文件 第三步&#xff1a; user-service的yml文件 第四步&#xff1a;order-service的pom文件 第五步&#xff1a; order-service的yml文件 运行 访问数据 1.Nacos服务搭建 下载安装包 …

如何深度了解汤泉场所?VR全景给你答案

天气逐步转凉&#xff0c;温泉、水会这些室内汤泉场所开始登上消费的主战场。伴随着人们物质生活水平的提高&#xff0c;人们对休闲养生会馆的要求也愈发旺盛&#xff0c;汤泉场所也逐渐从单一的洗浴开始向休闲、娱乐、保健、桑拿等多种业态形式发展&#xff0c;那么大家如何深…

java雷区?要小心的子父类代码!

目录 一段子父类调用重写的代码 1. 重写的代码 2. 执行结果 3. 分析原因 4. 总结概括 一段子父类调用重写的代码 这是一段有坑的代码&#xff0c;我们创建一个子类A和父类B&#xff0c;A中重写function方法&#xff0c;并且在B的构造方法中调用function 1. 重写的代码 …

C# - 委托、事件、Action、Func

前言&#xff1a;所有的名词&#xff0c;都是基于委托产生的 委托 &#xff08;delegate&#xff09; 解释&#xff1a; 其实就是一种指定格式的函数模版(容器) 这个模版(容器)可以用来存放各种格式和它相同的函数(的引用) 比如指定类型参数 指定参数个数 指定返回值等等 定义…

GB28181流媒体平台LiveGBS切换为国产信创环境下达梦数据库、高斯数据库、瀚高数据库的配置说明

LiveGBS流媒体平台GB/T28181功能-支持数据库切换为高斯数据库信创瀚高数据信创数据库 1、如何配置切换信创达梦数据库&#xff1f;2、如何配置切换高斯数据库&#xff1f;3、如何配置切换信创瀚高数据库&#xff1f;4、搭建GB28181视频直播平台 1、如何配置切换信创达梦数据库&…

在市场发展中寻变革,马上消费金融树行业发展“风向标”

11月11日&#xff0c;2023金融街论坛年会第三届全球金融科技大会“金融科技创新与合规安全”平行论坛在北京召开。会上&#xff0c;马上消费金融副总经理孙磊就数据对金融的赋能作用、数据安全治理等方面展开了深度讨论。 公开信息显示&#xff0c;马上消费金融是一家经中国银保…

行内样式、内部样式、外部样式

行内样式&#xff1a; 该元素的所在本行中使用style标记来写样式 内部样式&#xff1a; 在head标签中使用style标记来写样式 外部样式&#xff1a; 在head标签中使用link标记引用外部样式 注意优先级&#xff1a; 行内样式&#xff1e;内部样式&#xff1e;外部样式 代码…

Spring6(四):JUnit、事务

文章目录 5. 单元测试&#xff1a;JUnit5.1 整合JUnit55.2 整合JUnit4 6. 事务6.1 JdbcTemplate6.1.1 准备工作6.1.2 实现CURD①装配 JdbcTemplate②测试增删改功能③查询数据返回对象④查询数据返回list集合⑤查询返回单个的值 6.2 事务6.2.1 编程式事务6.2.2 声明式事务 6.3 …

如何在 Linux 上部署 RabbitMQ

如何在 Linux 上部署 RabbitMQ 文章目录 如何在 Linux 上部署 RabbitMQ安装 Erlang从预构建的二进制包安装从源代码编译 Erlang RabbitMQ 的安装使用 RabbitMQ Assistant 连接 RabbitMQ Assistant 是一款优秀的RabbitMQ 可视化管理工具&#xff0c;提供丰富的管理功能。下载地址…

【算法每日一练]-图论(保姆级教程 篇3(遍历))#图的遍历 #奶牛牧场 #杂务

今天讲图的遍历 目录 题目:图的遍历 思路&#xff1a; 题目&#xff1a;奶牛牧场 思路&#xff1a; 题目&#xff1a;杂务 思路&#xff1a; 题目:图的遍历 思路&#xff1a; 正向建边需要跑O(N^2)会超时&#xff0c;所以反向建边&#xff0c;先从最大的点出发&#x…

海外推广必备|如何制定领英LinkedIn营销战略?

在网络上脱颖而出不是一件简单的事。不仅有比以往更多的平台、算法和内容类型&#xff0c;而且还有更多的企业在争夺注意力。据统计&#xff0c;每天有超过 270 万家公司在 LinkedIn 上发布信息。 策略很重要&#xff0c;尤其是在 LinkedIn 营销领域。下面将为你总结LinkedIn 营…

使用Spring Boot实现大文件断点续传及文件校验

一、简介 随着互联网的快速发展&#xff0c;大文件的传输成为了互联网应用的重要组成部分。然而&#xff0c;由于网络不稳定等因素的影响&#xff0c;大文件的传输经常会出现中断的情况&#xff0c;这时需要重新传输&#xff0c;导致传输效率低下。 为了解决这个问题&#xff…