Spring-mvc-Handler的返回值用法以及URL映射

spring boot 获取项目全部URL spring boot 项目在做URL权限控制的时候需要获得全部的URL,一个一个去controller中找费时费力。而且有的权限点的命名和URL有一定的对应关系。如果能用程序获得全部URL,将会省去很多事。下面就介绍一种获取URL的方法。在项目中添加如下Controller,请求/getAllUrl,即可看到项目所有的URL。当然也可以根据项目将URL写入数据库或写入配置文件。 import or 阅读详情

1)返回的是ModelAndView对象?

主要运用于:及传递页面也传递数据

ModelAndView代表的是响应的视图,还有一个向该视图传递的数据。比如:

<span style="font-size:18px;"><span style="color:#999999;">@RequestMapping(value="/getalluser.action")
	public ModelAndView getAllUser(){
		ModelAndView model = new ModelAndView();
		List<UserInfo> list = userInfoService.getList(null);
		</span><span style="background-color: rgb(255, 153, 255);"><span style="color:#3333ff;">model.addObject("users", list);//表示向页面传递的数据
		model.setViewName("/index.jsp");//表示呈现的页面</span></span><span style="color:#999999;">
		return model;
	}</span></span>

2)返回的是String类型?

主要运用于:传递页面

a.转发。类似于request.getRequestDispacher(“页面名称”).forward(request,response);

     特点:url路径不发生改变,但是request共享。

   在handler方法返回的时候:return “forward:/edit.action”;

   b.重定向,类似于response.sendRedirect(“页面名称”);

     特点:url路径发生改变,但是request不共享。

    在handler中返回值:return "redirect:/item.action";

3)返回的是void类型。有的handler的处理是不需要有返回页面的情况,那这个时候就采取返回的类型为void。

   适用情况:请求json或者xml的数据格式,或者请求的就是一串字符串数据。

写法:类似于servlet的处理。

<span style="color:#999999;">@RequestMapping(value=”/aaa.action”)
public void addType(HttpServletRequest req,HttpServletResponse resp){
        //JSON处理
        List<UserInfo> list = userService.getList();
					//序列化的操作
				 </span><span style="color:#3333ff;"> <span style="background-color: rgb(255, 153, 255);"> JSONArray jsonArray = JSONArray.fromObject(list);</span></span><span style="color:#999999;">
				   String strInfo = 	jsonArray.toString();
				   System.out.println(strInfo);
				   PrintWriter pw = response.getWriter();
				   pw.print(strInfo);
    }</span>



2.URL映射

1)同一个handler处理多个路径的情况下:

<span style="font-size:18px;color:#999999;">@RequestMapping(value={"/index", "/hello"}, method = {RequestMethod.GET})</span>

以上表示的就是可以处理index.action和hello.action的路径。

method表示限定的请求方法,

2)url风格设定?

restful风格设定:

我们的请求路径的风格为这样:

   /方法名/参数1/参数2

   案例:

<span style="color:#999999;">@RequestMapping(value="/detail/</span><span style="background-color: rgb(255, 153, 255);"><span style="color:#3333ff;">{id}</span></span><span style="color:#999999;">",method={RequestMethod.GET})
	public ModelAndView detail(</span><span style="background-color: rgb(255, 153, 255);"><span style="color:#3333ff;">@PathVariable(value="id")</span></span><span style="color:#999999;"> Integer id){
		System.out.println("hello");
		ModelAndView model = new ModelAndView();
	    UserInfo u = userInfoService.getUserInfo(id);
	    model.addObject("user", u);
	    model.setViewName("/user.jsp");
		return model;
	}</span>

注意:{}里的参数名和PathVariable里的value里的名字一定要一致。

浏览器访问路径:http://localhost:10086/ssmdemo2/detail/81.action

3)通配符映射: 

•          我们还可以通过通配符对URL映射进行配置,通配符有“?”和“*”两个字符。其中“?”表示1个字符,“*”表示匹配多个字符,“**”表示匹配0个或多个路径。 

比如:“/helloworld/index?”可以匹配“/helloworld/indexA”、“/helloworld/indexB”,但不能匹配“/helloworld/index”也不能匹配“/helloworld/indexAA”;

“/helloworld/index*”可以匹配“/helloworld/index”、“/helloworld/indexA”、“/helloworld/indexAA”但不能匹配“/helloworld/index/A”;

“/helloworld/index/*”可以匹配“/helloworld/index/”、“/helloworld/index/A”、“/helloworld/index/AA”、“/helloworld/index/AB”但不能匹配    “/helloworld/index”、“/helloworld/index/A/B”;

“/helloworld/index/**”可以匹配“/helloworld/index/”下的多有子路径,比如:“/helloworld/index/A/B/C/D”;

如果现在有“/helloworld/index”和“/helloworld/*”,如果请求地址为“/helloworld/index”那么将如何匹配?Spring MVC会按照最长匹配优先原则(即和映射配置中哪个匹配的最多)来匹配,所以会匹配“/helloworld/index


4)url正则表达式匹配

Spring MVC还支持正则表达式方式的映射配置,我们通过一 

@RequestMapping(value="/reg/{name:\\w+}-{age:\\d+}", method = {RequestMethod.GET})

public ModelAndView regUrlTest(@PathVariable(value="name") String name, @PathVariable(value="age") Integer age){

   } 



URL协议处理器Handler URL组成   URL格式: protocol://[authority]hostname:port/resource?queryString   说明:每种协议对应一种特定handler进行解析处理,JDK内置了HTTP 、 File 、 FTP和Jar等协议的。 Handler    作用:每个Handler解析一种特定的协议,获取资源;   命名规范: Handler类的命名模式为... 阅读详情

相关推荐

【Handler】Spring MVC控制器详解

在Spring MVC中,Handler是一个用来处理HTTP请求的对象。它通常是一个控制器(Controller)类中的方法。当用户发送一个请求到服务器时,Spring MVC会根据请求的URL、HTTP方法等信息,找到相应的处理器(Handler)来处理这个请求。

科马的博客 3560

多个URL请求Handler里面不同的方法

介绍实现Handler通常有下面几种方式:1.实现Controller接口。重写handleRequest()方法 2.继承AbstractController抽象类。特殊功能:该抽象类能够限制哪儿些请求方式(POST,GET)能够访问该Handler。 2.实现HttpRequestHandler接口。重写handleRequest()方法 3.继承MultiActionController。可以

Marvel__Dead 胡艺宝的博客 1798

Spring MVC 的运行流程

通过这一流程,Spring MVC 实现了请求处理的分层与解耦,开发者可以专注于业务逻辑,而无需关心底层的请求分发与响应处理细节。

为天加朵云... 984

SpringMVC的Handler处理及url映射

1.Handler的理解?  一个handler就是一个控制器里的某个方法,而通常情况下,该方法会对应到相应的url。 2.每个Handler的返回值?  1)返回的是ModelAndView对象? ModelAndView代表的是响应的视图,还有一个向该视图传递的数据。比如: @RequestMapping(value="/getalluser.action") public Mod

mygod1994的博客 966

Win11任务栏图标消失?快速恢复指南

任务栏图标消失是Windows 11操作系统中常见的问题之一,但通过上述方法,用户通常可以轻松解决这一问题。无论是重启Windows资源管理器、使用命令提示符修复、检查系统更新和设置,还是考虑重装系统,都可以帮助用户恢复任务栏图标的正常显示。希望本文的介绍能对用户有所帮助,让Windows 11的使用更加顺畅和愉快。

mmoo_python的博客 5411

【STM32G474实战】RS485通信的DMA优化策略与性能对比

本文深入探讨了在STM32G474微控制器上优化RS485通信的DMA策略。通过对比轮询、中断和DMA三种数据传输方式的代码实现与性能,揭示了DMA在解放CPU、降低占用率方面的巨大优势。文章提供了详细的DMA配置指南、高级应用技巧(如结合空闲中断)以及一个高可靠通信框架的实战思路,旨在帮助开发者构建高效、实时的工业控制系统。

weixin_29268331的博客 304

Java中如何获取所有的请求路径

InitializingBean是Spring框架中的一个核心接口,它提供了一种机制,允许在Spring容器中的bean的所有属性被设置完成后(即依赖注入完成后)执行特定的初始化逻辑。这个接口定义了一个方法afterPropertiesSet()当bean的所有属性被设置后,Spring容器会调用这个方法实现一些额外的配置。RequestMappingHandlerMapping是Spring MVC中用于将HTTP请求映射到对应的处理器方法(即带有@RequestMapping注解的方法)的组件。

weixin_58970142的博客 805

PyMySQLSaver实战:构建高可靠性的LangGraph状态管理

本文详细介绍了如何使用PyMySQLSaver构建高可靠性的LangGraph状态管理系统。通过检查点机制和MySQL持久化技术,开发者可以确保AI应用在崩溃后从最近状态恢复,支持长时间运行任务和多轮交互。文章包含核心架构解析、生产环境部署指南及实战案例,帮助开发者掌握状态管理的核心技术。

weixin_29310605的博客 496

Spring MVC

Spring MVC 是 Spring 框架中的一个模块,用于构建 Web 应用程序。它提供了一种基于模型 - 视图 - 控制器(MVC)设计模式的 Web 开发框架。Spring MVC 是一个功能强大、灵活可配置、易于测试和集成的 Web 开发框架,广泛应用于企业级 Web 应用程序的开发。优势特点:松耦合:通过 MVC 设计模式实现了模型、视图和控制器的分离,使得各个部分可以独立开发、测试和维护,提高了代码的可维护性和可扩展性。灵活配置。

L1216347491的博客 1711

攻防世界 web高手进阶区 9分题 Web_python_flask_sql_injection

继续ctf的旅程,开始攻防世界web高手进阶区的9分题,本文是Web_python_flask_sql_injection的writeup

闵行小鱼塘 1476

FPGA以太网开发实战:YT8511 PHY芯片MDIO接口配置全流程(附Verilog代码)

本文详细介绍了FPGA以太网开发中YT8511 PHY芯片MDIO接口的配置全流程,包括MDIO接口技术解析、Verilog状态机设计、核心代码实现细节及实战调试经验。通过提供经过验证的Verilog代码和优化策略,帮助开发者快速掌握以太网PHY芯片配置技术,提升通信系统性能。

weixin_29184371的博客 233

ssm URL的映射问题

1.Handler的理解?  一个handler就是一个控制器里的某个方法,而通常情况下,该方法会对应到相应的url。 2.每个Handler的返回值?  1)返回的是ModelAndView对象? ModelAndView代表的是响应的视图,还有一个向该视图传递的数据。比如: @RequestMapping(value="/getalluser.action")    publicM

wqy123123wqy的博客 1013

从‘最长白列’到‘八邻域’:智能车图像巡线算法怎么选?我的踩坑经验分享

本文深入探讨了全国大学生智能汽车竞赛中图像巡线算法的选型与优化,对比了最长白列法、八邻域算法等五种主流方法的性能与适用场景。通过实战数据和代码示例,分析了各算法在直道、弯道及特殊赛道元素中的表现,并提供了内存优化、参数调整等实用技巧,帮助参赛团队提升智能车的巡线精度与效率。

weixin_30374009的博客 642

关于SSM的url映射问题

1.Handler的理解?  一个handler就是一个控制器里的某个方法,而通常情况下,该方法会对应到相应的url。 2.每个Handler的返回值?  1)返回的是ModelAndView对象? ModelAndView代表的是响应的视图,还有一个向该视图传递的数据。比如: @RequestMapping(value="/getalluser.action")    publicM

qq_27752831的博客 1万+

Claude Code 安装指南(Windows / macOS)

本文介绍了Claude Code的安装准备和基本流程。作为开发者工具,安装前需具备命令行操作能力、可用的Claude账号和稳定网络环境。Windows和macOS的安装都需通过终端完成,安装后以命令行形式运行。首次使用建议在熟悉项目中执行简单任务,逐步建立使用习惯。强调安装只是开始,后续需学习如何有效使用工具,包括任务提交流程和上下文提供方法。核心要点是:Claude Code是开发者工具,网络和终端环境是关键,建议先运行再深入理解。

sg_knight的专栏 4496

32、机械臂数字孪生模型创建指南

本文介绍了如何在MATLAB Simscape中为一款3自由度(DOF)微型机械臂创建数字孪生模型。内容涵盖硬件参数测量、Simulink模型搭建流程,包括初始条件设置、基座与上部主体构建、上臂结构设计等关键步骤。通过使用Solid、Revolute Joint和Rigid Transform等模块,实现机械臂多体系统建模,并支持后续运动仿真与物理系统的对比诊断。读者可依据指南逐步完成模型构建,相关资源可通过MATLAB File Exchange或指定网站获取。

qsc9012345的博客 216

Java29:Spring MVC

Spring Web MVC 是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC” 来自其源模块名称(spring-webmvc)但它通常被称为“Spring Mvc”在控制层框架历经 Strust ,WebWork,Strust2等诸多产品的历代更迭之后,目前业界普遍选择了Spring MVC 作为JavaEE 项目表述层开发的首先方案。优势:》Spring 家族的原生产品,与IOC容器等基础设施无缝对接。

zzx_nihao的博客 1224

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

讲讲Spring MVC的处理流程

Spring MVC 是 Spring Framework 的一个核心模块,是一个基于MVC 设计模式​ 的优秀 Web 框架。它本质上是 Spring 框架在Web 应用领域的延伸,旨在简化基于 MVC 架构的 Web 应用程序开发。MVC全名是Model View Controller,是模型(model)视图(view)控制器(controller)的缩写。模型(model)代表应用程序的核心数据和业务规则。它专注于处理什么数据和数据如何变化。视图(view):负责与用户直接交互的界面部分。

gdpu2400502251的博客 1137

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Spring MVC 中 HandlerAdapter 的作用

HandlerAdapter 是 Spring MVC 中的核心组件,负责将不同类型的控制器(Handler)封装成统一的接口进行调用,并处理其返回值和异常。它充当“翻译官”的角色,使得基于注解的控制器、传统控制器等不同形式的控制器能够被统一处理。HandlerAdapter 的核心接口包括 supports()、handle() 和 getLastModified(),分别用于判断是否支持特定处理器、执行处理器方法以及获取资源最后修改时间。Spring MVC 通过 HandlerAdapter 实现了对

红血哥 732

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

@RequestMapping和Handler返回值总结

@RequestMappingurl映射 定义controller方法对应的url,进行处理器映射使用。 如: @RequestMapping("/findItemById") public String findItemById(String id , Model model){ if(id!=null&&!id.equals("")){ mo

Marvel__Dead 胡艺宝的博客 1383

Spring MVC 源码剖析

本文介绍了Spring MVC的Web配置及核心原理,主要包括:1)在web.xml中配置DispatcherServlet前端控制器,指定拦截规则(如*.action)和Spring配置文件位置;2)三种URL拦截方式对比,/方式需特殊处理静态资源;3)通过mvc:resources映射静态资源访问;4)中文乱码解决方案,包括POST请求过滤器和GET请求参数重编码。从Servlet角度分析了DispatcherServlet的继承体系,重点说明FrameworkServlet通过重写service()方

py_1990_04_20的博客 992

Spring MVC 具体的工作原理?

理解这些组件的作用以及它们之间的协作关系,就能够理解 Spring MVC 的工作原理。HandlerMapping 会遍历已注册的 HandlerMapping 实现,根据请求的 URL 和配置,找到最合适的 HandlerExecutionChain (处理器执行链)。因为 Handler 的类型有很多种 (Controller 方法、HttpRequestHandler、Servlet 等),HandlerAdapter 的作用就是适配不同类型的 Handler,以统一的方式进行调用。

qq_63553317的博客 1046
上一篇: 从JSP页面里传数据到SpringMVC中的Controller处理
下一篇: myBatis-Spring-mvc里关于扫描service
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值