当客户端发出Request的时候DispatcherServlet会将Request提交给HandlerMapping, 然后HanlerMapping根据Web Application Context的配置来回传给DispatcherServlet相应的Controller.
HandlerMapping
1. org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
默认的HanlerMapping 会根据Controller的Bean Name来进行匹配 例如:
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name="
/welcome.html" class="me.iace.spring.controller.WelcomeController"/>
当客户端发出http://xxxx/ctx/welcome.html的时候 BeanNameUrlHandlerMapping指向该Controller回传给DispatcherServlet
2. org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping
ControllerClassNameHandlerMapping会根据Controller Bean的Class Name来做匹配 例如:
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<bean name="/hello" class="me.iace.spring.controller.
WelcomeController"/>
例如WelcomeController 会去掉后面的Controller 客户端发出 /welcome的request 会匹配到该Controller, 需要注意的是 如果welcome的第一个字母'w'为大写的话是错误的, 而且后welcome后面不管有什么都会匹配该WelcomeController 例如 ‘/welcome
224sscc’也是可以匹配到该Controller的。
ControllerClassNameHandlerMapping的相关属性 如下
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="caseSensitive" value="true" />
<property name="pathPrefix" value="/haha" />
<property name="basePackage" value="me.iace.spring.controller" />
</bean>
caseSensitive: 是否识别大小写
pathPrefix: url的前缀,在这里的前缀是 '/haha'
basePackage: 指定匹配哪个package的Controller
再就是可以同时使用 BeanNameUrlHandlerMapping 和 ControllerClassNameHandlerMapping 例如
<bean class="
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean class="
org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<bean name="
/hello" class="me.iace.spring.controller.
WelcomeController"/>
当客户端发出 '/hello' 和 '/welcome'的时候都会匹配到该WelcomeController
3. org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
SimpleUrlHandlerMapping会将在自身Properies里设置的Url映射到相关的Controller, 如下:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/welcome">welcomeController</prop>
<prop key="/hello">helloController</prop>
</props>
</property>
</bean>
<bean id="
welcomeController" class="me.iace.spring.controller.WelcomeController" />
<bean id="
helloController" class="me.iace.spring.controller.WelcomeController" />
分享到:
相关推荐
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
2024免费毕业设计成品,包括源码+数据库+往届论文资料 录屏:https://www.bilibili.com/video/BV19H4y1F77r 启动教程:https://www.bilibili.com/video/BV11ktveuE2d 讲解视频:https://www.bilibili.com/video/BV1YfkHYwEME 二次开发教程:https://www.bilibili.com/video/BV1Cw2rY1ErC
项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
HarmonyOSNext元服务开发快速入门.docx
java java的课程作业,用swing写一个小游戏.zip
基于欧姆龙Omron PLC与MCGS技术的四层电梯控制仿真系统设计——精细掌控,安全可靠的高级方案,No.952 基于欧姆龙Omron PLC和MCGS的4层四层电梯控制仿真系统设计 ,基于欧姆龙Omron PLC; MCGS; 4层电梯控制; 仿真系统设计; 控制系统设计,欧姆龙PLC与MCGS协同的四层电梯控制仿真系统设计
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
基于S7-300 PLC与组态王的散装水泥生产线在线称重控制系统设计与实现,No.892 S7-300 PLC和组态王散装水泥生产线在线称重控制系统设计 ,核心关键词:S7-300 PLC; 组态王; 散装水泥生产线; 在线称重; 控制系设计; 892号。,"S7-300 PLC与组态王结合的散装水泥生产线称重控制系统设计"
【C#分布式】DTM分布式事务的示例代码
"深入探讨两阶段鲁棒优化指导:分布鲁棒性的挑战与KKT函数经典代码实现",两阶段鲁棒优化指导,分布鲁棒,kkt函数附带经典代码 ,两阶段鲁棒优化指导; 分布鲁棒; kkt函数; 经典代码;,两阶段鲁棒优化指导下的分布鲁棒KKT函数经典代码
一、项目简介 本项目是一套基于SpringBoot+mybatis+maven+mysql实现的医院挂号就诊管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值 二、技术实现 jdk版本:1.8 及以上 ide工具:IDEA或者eclipse 数据库: mysql5.5及以上 后端:spring+springboot+mybatis+maven+mysql 前端: vue , css,js , elementui 三、系统功能 1、系统角色主要包括:管理员、医生、用户 2、系统主要功能包括: 首页 个人中心 修改密码 个人信息 管理员管理 在线咨询管理 挂号管理 健康教育管理 健康教育类型管理 公告类型管理 可是管理 职位管理 公告信息管理 医生管理 用户管理 轮播图管理等功能 详见 https://flypeppa.blog.csdn.net/article/details/145483185
# 基于Arduino的超声波除垢系统 ## 项目简介 本项目是一个基于Arduino的超声波除垢系统,旨在通过超声波技术防止设备表面结垢。系统采用多个Arduino Pro Mini控制器,每个控制器负责一个超声波通道,并通过PWM信号驱动MOSFET来生成超声波输出。系统还具备电压监控和温度检测功能,以确保设备在安全条件下运行。 ## 项目的主要特性和功能 1. 多通道超声波驱动每个通道由一个独立的Arduino Pro Mini控制,通过PWM信号驱动MOSFET生成超声波输出。 2. 频率可调支持从200Hz到250KHz的频率范围,并可通过PWM控制输出功率。 3. 电压监控系统能够监控输入电压,根据电压水平自动调整超声波输出的功率。 4. 温度检测与保护内置温度传感器,当温度过高时,系统会自动进入休眠模式以防止过热。 5. LED状态指示通过LED闪烁模式指示系统状态,便于用户快速了解系统运行情况。
2024免费毕业设计成品,包括源码+数据库+往届论文资料 录屏:https://www.bilibili.com/video/BV1hi421h7bZ 启动教程:https://www.bilibili.com/video/BV11ktveuE2d 讲解视频:https://www.bilibili.com/video/BV1YfkHYwEME 二次开发教程:https://www.bilibili.com/video/BV1Cw2rY1ErC
基于spring boot的学生在线训练考试系统设计与实现_w8w5x0a2.zip
"基于电流矢量闭环控制的改进if控制策略研究:优化电机控制效率与抗扰动能力",改进的if控制策略研究,传统的if控制严重依赖于电机的机械特性,导致易失步,带载能力弱,抗负载扰动能力差,效率低下。 采用改进的电流矢量闭环控制策略,能将电流控制在最优角度上,大大提高控制效率,且转速和电流能跟随转速和负载自适应调节,抗扰动能力大幅提升,转速波动更小。 ,改进的if控制策略; 电流矢量闭环控制; 抗扰动能力; 转速波动,改进电流矢量控制策略提升电机性能
1、资源内容地址:https://blog.csdn.net/2301_79696294/article/details/145039101 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理
【Python】基于python的名片管理系统项目_pgj