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[]{"/"};}}

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

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

相关文章

深度测评8个AI论文网站,专科生轻松搞定毕业论文格式规范!

深度测评8个AI论文网站&#xff0c;专科生轻松搞定毕业论文格式规范&#xff01; AI 工具如何助力专科生轻松应对论文写作难题 随着人工智能技术的不断进步&#xff0c;AI 工具在学术领域的应用越来越广泛。对于专科生来说&#xff0c;撰写毕业论文不仅是学业的重要环节&#x…

宏智树 AI:ChatGPT 学术版驱动的一站式学术写作智能解决方案

在学术研究与论文写作迈向智能化的新时代&#xff0c;一款真正懂学术、强赋能的辅助工具&#xff0c;是科研工作者与广大学子突破创作瓶颈的关键。宏智树 AI&#xff08;官网&#xff1a;www.hzsxueshu.com&#xff09;—— 基于 ChatGPT 学术版模型打造、搭载 AI5.0 技术架构的…

零基础也能转!网络安全转行超详细建议:技能、项目、学习路径一篇全有!

在当前就业形势下&#xff0c;不少朋友咨询过龙哥&#xff0c;询问转行能否转行网络安全。网络安全作为一个热门领域&#xff0c;自然也吸引了许多人的目光。本文将就转行网络安全这一话题&#xff0c;提供一些切实可行的建议。 网络安全行业概况 网络安全涵盖了从基础的脚本编…

如何将视频从 iPhone 传输到戴尔笔记本电脑?

您的 iPhone 可以拍摄精彩的视频&#xff0c;但这些视频片段很快就会占满您的存储空间。与其担心空间不足&#xff0c;不如将它们转移到您的戴尔笔记本电脑上&#xff1f;这样&#xff0c;您既可以释放手机空间&#xff0c;又可以安全地备份您珍爱的瞬间。在本指南中&#xff0…

宏智树 AI:ChatGPT 学术版驱动的全流程学术智能解决方案平台

当学术研究遇上效率瓶颈&#xff0c;当论文写作陷入文献堆砌、数据失真、格式混乱的困境&#xff0c;一款真正懂学术、强赋能的智能工具&#xff0c;成为万千科研人与高校师生的迫切需求。宏智树 AI&#xff08;官网www.hzsxueshu.com&#xff0c;微信公众号搜一搜 “宏智树 AI…

如何轻松从 POCO 手机恢复已删除的音乐文件

音乐文件是我们日常生活中不可或缺的一部分&#xff0c;它们存储着珍贵的旋律、个性化的播放列表和难忘的录音。不小心从 POCO 手机中删除这些文件会令人非常沮丧。幸运的是&#xff0c;POCO 设备提供了多种恢复已删除音乐文件的方法&#xff0c;无论您是否有备份。本指南将详细…

mybatis - 动态语句、批量注册mapper、分页插件

动态语句 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/PO…

投稿不再陪跑!宏智树 AI:期刊论文写作的智能通关秘籍

作为深耕论文写作科普的教育博主&#xff0c;后台每天都被科研人的投稿焦虑刷屏&#xff1a;“选题被说没新意”“文献综述写得像流水账”“格式改了八遍还不达标”“查重过了却栽在 AIGC 检测”…… 其实&#xff0c;写期刊论文不是 “硬熬” 出来的&#xff0c;选对工具就能事…

如何从备份还原 iPhone?

丢失 iPhone 上的重要数据可能会让人焦虑不安&#xff0c;但值得庆幸的是&#xff0c;Apple 提供了多种从备份恢复 iPhone 的方法。无论您是将数据备份到 iCloud还是 iTunes&#xff0c;总有一款适合您。本指南全面介绍了如何从 iCloud 备份和 iTunes 备份恢复 iPhone。让我们逐…

Python系列Bug修复|如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘fastapi’ 问题

摘要 你在使用pip安装/运行fastapi时遇到ModuleNotFoundError: No module named fastapi报错&#xff0c;该问题核心诱因是环境一致性问题&#xff08;pip与python版本错位&#xff0c;占比40%&#xff09; 安装不完整 权限不足 虚拟环境未激活 Python版本不兼容 缓存损坏…

11 亿估值 盒装床垫的跨境 DTC 破局之路

2014 年问世的 Casper&#xff0c;凭借创新泡沫床垫产品与精准的内容营销策略&#xff0c;迅速颠覆传统床垫行业&#xff0c;仅用 5 年时间就实现 11 亿美元估值&#xff0c;堪称跨境 DTC 品牌的标杆案例。起初&#xff0c;几乎没人看好一家线上床垫店能成功 —— 毕竟消费者习…

Python系列Bug修复|如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘rich’ 问题

摘要 你在使用pip安装/运行rich时遇到ModuleNotFoundError: No module named rich报错&#xff0c;该问题核心诱因是环境一致性问题&#xff08;pip与python版本错位&#xff0c;占比45%&#xff09; 安装不完整 权限不足 虚拟环境未激活 Python版本不兼容 缓存损坏&#…

Inteva DELJIT 报文解析:从 EDI 到 JSON 的结构化转换与字段说明

一、背景说明 在汽车行业供应链中&#xff0c;DELJIT&#xff08;Delivery Just In Time&#xff09; 报文用于客户向供应商下发短周期、强约束的交付指令&#xff0c;是 JIT / JIS / 看板&#xff08;KANBAN&#xff09;模式下的核心业务报文。 与 DELFOR&#xff08;预测计…

零基础转网安别乱学!这篇超详细建议从入门到精通,收藏起来少走一年弯路!

在当前就业形势下&#xff0c;不少朋友咨询过龙哥&#xff0c;询问转行能否转行网络安全。网络安全作为一个热门领域&#xff0c;自然也吸引了许多人的目光。本文将就转行网络安全这一话题&#xff0c;提供一些切实可行的建议。 网络安全行业概况 网络安全涵盖了从基础的脚本编…

2026 年 1 月铝镁锰合金瓦厂家推荐排行榜,钛锌瓦/铝镁锰仿古瓦/直立锁边瓦/氟碳工艺瓦,专业屋面系统解决方案与创新工艺深度解析 - 企业推荐官【官方】

2026年1月铝镁锰合金瓦厂家推荐排行榜:钛锌瓦/铝镁锰仿古瓦/直立锁边瓦/氟碳工艺瓦,专业屋面系统解决方案与创新工艺深度解析 在当代建筑领域,金属屋面系统以其卓越的耐久性、丰富的造型可能性和优异的环保性能,已…

【转行网安全攻略】非常详细的零基础路线:从入门到精通,收藏这一篇就够!

在当前就业形势下&#xff0c;不少朋友咨询过龙哥&#xff0c;询问转行能否转行网络安全。网络安全作为一个热门领域&#xff0c;自然也吸引了许多人的目光。本文将就转行网络安全这一话题&#xff0c;提供一些切实可行的建议。 网络安全行业概况 网络安全涵盖了从基础的脚本编…

TDengine R 语言连接器入门指南

本指南帮助 R 语言初学者快速掌握通过 RJDBC 连接 TDengine 时序数据库的全过程&#xff0c;从环境准备到执行第一次查询&#xff0c;让您在最短时间内上手。 1. 前置准备 在开始之前&#xff0c;请确保&#xff1a; ✅ 已安装 R 语言环境&#xff08;推荐 4.3 或更高版本&a…

Python系列Bug修复|如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘gunicorn’ 问题

摘要 你在使用pip安装/运行gunicorn时遇到ModuleNotFoundError: No module named gunicorn报错&#xff0c;该问题核心诱因是环境一致性问题&#xff08;pip与python版本错位&#xff0c;占比40%&#xff09; 安装不完整 权限不足 虚拟环境未激活 Python版本不兼容 缓存损…

2026 年 1 月珍珠棉厂家推荐排行榜,EPE珍珠棉/珍珠棉包装/珍珠棉内衬/防静电珍珠棉/珍珠棉卷材,精选缓冲防护材料优质源头! - 企业推荐官【官方】

2026 年 1 月珍珠棉厂家推荐排行榜:精选 EPE 珍珠棉/珍珠棉包装/珍珠棉内衬/防静电珍珠棉/珍珠棉卷材优质源头 在当今的工业制造与商品流通领域,产品的安全运输与精密防护已成为供应链管理中的核心环节。作为主流的缓…

2026中山网络营销推广:如何用行业解决方案替代硬广,提升营销效果

随着2026中山网络营销推广的不断发展&#xff0c;越来越多的企业意识到&#xff0c;传统的硬广&#xff08;硬性广告&#xff09;已无法满足客户日益增长的需求&#xff0c;且难以有效吸引用户的注意力。相比之下&#xff0c;行业解决方案通过提供深入的行业洞察和具体问题的解…