news 2026/4/16 19:52:36

springMvc 快速体验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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数据,不返回页面,那就不需要视图解析器!所以,视图解析器,相对其他的组件不是必须的![财务]


用到了 tomcat


用到了 JBLJavaToWeb

运行效果



pom.xml

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.cool</groupId><artifactId>ssm-springmvc-part</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><module>springmvc-base-quick</module><module>springmvc-study-one</module></modules><properties><spring.version>6.0.6</spring.version><servlet.api>9.1.0</servlet.api><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- springwebmvc web - servlet ioc - spring-context mvc - spring-webmvc --><dependencies><!-- springioc相关依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><!-- web相关依赖 --><!-- 在 pom.xml 中引入 Jakarta EE Web API 的依赖 --><!-- 在 Spring Web MVC 6 中,Servlet API 迁移到了 Jakarta EE API,因此在配置 DispatcherServlet 时需要使用 Jakarta EE 提供的相应类库和命名空间。错误信息 “‘org.springframework.web.servlet.DispatcherServlet’ is not assignable to ‘javax.servlet.Servlet,jakarta.servlet.Servlet’” 表明你使用了旧版本的 Servlet API,没有更新到 Jakarta EE 规范。 --><dependency><groupId>jakarta.platform</groupId><artifactId>jakarta.jakartaee-web-api</artifactId><version>${servlet.api}</version><scope>provided</scope></dependency><!-- springwebmvc相关依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><!-- lombok插件: 可以使用 @Data 给 实体类自动添加setter、getter、toString方法 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version></dependency><!-- post请求,接收json格式的参数,的时候 会报一个 415的错误,因为,java原生api识别不了json,只支持 param、path参数 解决办法: 这个依赖 + 在配置类上使用@EnableWebMvc(给springmvc的handlerAdpater配置json转化器) --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.0</version></dependency></dependencies></project>

HelloController

packagecom.cool.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;@ControllerpublicclassHelloController{@RequestMapping("springmvc/hello")// 对外访问的地址【到handlerMapping注册的注解】@ResponseBody// 直接返回字符串给前端,不要找视图解析器publicStringhello(){System.out.println("HelloController.hello");// 返回给前端return"hello springmvc!";}}

MvcConfig

packagecom.cool.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.ComponentScan;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;importorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;/** * 要做2件事情 * 1、controller 配置ioc容器 * 2、hanglerMapping、handlerAdapter 加入到ioc容器 */@Configuration@ComponentScan("com.cool.controller")publicclassMvcConfig{@BeanpublicRequestMappingHandlerMappinghandlerMapping(){returnnewRequestMappingHandlerMapping();}@BeanpublicRequestMappingHandlerAdapterhandlerAdapter(){returnnewRequestMappingHandlerAdapter();}}

SpringMvcInit 需要继承 AbstractAnnotationConfigDispatcherServletInitializer

packagecom.cool.config;importorg.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;/** * 可以被web项目加载,会初始化ioc容器,会设置dispatcherServlet的地址 */publicclassSpringMvcInitextendsAbstractAnnotationConfigDispatcherServletInitializer{@OverrideprotectedClass<?>[]getRootConfigClasses(){returnnewClass[0];}// 设置我们项目对应的配置@OverrideprotectedClass<?>[]getServletConfigClasses(){returnnewClass[]{MvcConfig.class};}// 配置springmvc内部自带servlet的访问地址@OverrideprotectedString[]getServletMappings(){returnnewString[]{"/"};}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 7:24:10

防泄密软件有哪些?六款防泄密软件排行榜(2026最新)

从存储到传输&#xff0c;企业数据每一环都藏着泄密风险&#xff01;想靠技术手段筑牢安全防线&#xff0c;却被五花八门的软件绕晕&#xff1f;今天整理 2026 年 6 款实用防泄密工具&#xff0c;覆盖加密、权限管控、行为监控等核心需求&#xff0c;从功能到场景全解析&#x…

作者头像 李华
网站建设 2026/4/16 7:23:46

计算机毕业设计springboot大学班费管理记账系统 基于SpringBoot的高校班级财务收支智慧台账系统 融合SpringBoot+Thymeleaf的大学班费在线缴费与公示平台

计算机毕业设计springboot大学班费管理记账系统&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 班级活动、团建、资料打印、毕业礼物……每一笔班费都靠微信群接龙和 Excel 手工…

作者头像 李华
网站建设 2026/4/16 7:22:43

预防性维护计划、工单管理、设备生命周期跟踪——正是企业资产管理(EAM)系统的核心功能模块

预防性维护计划、工单管理、设备生命周期跟踪——正是企业资产管理&#xff08;EAM&#xff09;系统的核心功能模块。它们共同构成了一个闭环的、数据驱动的设备管理生态系统&#xff0c;旨在最大化资产可靠性、优化维护成本并延长设备寿命。下面我将为您详细解析这三个功能及其…

作者头像 李华
网站建设 2026/4/16 7:29:26

Glary Utilities v6.37.0.41 电脑系统优化清理神器

Glary Utilities v6.37.0.41 便携版是一款专业电脑系统优化工具&#xff0c;集成深层清理、注册表修复等数十种实用功能&#xff0c;适配各类 Windows 系统&#xff0c;能轻松解决电脑卡顿、存储不足等问题&#xff0c;是家庭用户与专业人士的优选系统维护工具。一、核心功能亮…

作者头像 李华
网站建设 2026/4/16 9:09:32

day153—回溯—子集(LeetCode-78)

题目描述给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1&#xff1a;输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2],[1,2],…

作者头像 李华
网站建设 2026/4/15 19:35:36

Fastapi全面教程:常用 API 串联与实战指南

大家好&#xff0c;我是jobleap.cn的小九。在生产环境下&#xff0c;我们不再简单地使用 uvicorn main:app&#xff0c;而是需要考虑进程守护、多核并发、故障自启以及特权端口管理。 &#x1f6e0; 方案一&#xff1a;PM2 方案&#xff08;最简单、全能&#xff09; PM2 本是 …

作者头像 李华