SpringMVC中的请求地址映射:@RequestMapping、@RequestParam、@PathVariable

本文详细介绍了SpringMVC中关于请求地址映射的关键概念,包括@RequestMapping注解的功能、属性及其用法,如method、params、headers等。还探讨了@PathVariable用于获取URL动态参数的方式,以及@RequestParam如何绑定单个请求参数值。此外,对比了@PathVariable和@RequestParam的异同,并简要提到了RequestMethod枚举类,概述了HTTP请求方法的种类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0、目录

1)    相关注解

@RequestMapping(最重要)@RequestParam@PathVariable

注意:@RequestParam与@PathVariable的区别。

2)    用到的类

枚举类:RequestMethod

3)    请求地址映射

A.       精准化映射

利用RequestMapping的value、method、params、header实现;同时利用@RequestParam对请求参数添加限制条件。

B.       @PathVariable

REST风格;从请求地址URL模板中提取变量值。

C.        Ant风格匹配:模糊匹配。

D.       正则表达式匹配

E.        “或”匹配:从多个条件中满足一个即可。

1.      @RequestMapping:映射请求地址。

1)    @RequestMapping功能:映射请求地址

Spring MVC使用@RequestMapping注解为控制器类或内部方法指定可以处理哪些URL请求。@RequestMapping是一个用来处理请求地址映射的注解(将请求地址映射到对应的控制器方法中)可用于类或方法

@RequestMapping请求路径映射,如果标注在某个@Controller的级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法上,表明哪个具体的方法来接受处理某次请求。

2)    @RequestMapping修饰类和方法

注解@RequestMapping类级别和方法级别层面都可标注,用来确定将被调用方法的URL。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法。在类上可以使用也可以不使用@RequestMapping,但是在handle方法上必须使用@RequestMapping

按照一般的开发习惯:类上的@RequestMapping一般就是利用类名作为父路径,可以指定多层,如@RequestMapping(value='/xxx/xxx/类名');然后内部方法上利用方法名指定,一般就是一层路径,如@RequestMapping(value='/方法名')。

提供初步的请求映射信息,相当于WEB应用的根目录。

在标有@Controller的类中,利用@RequestMapping可以将该类中的方法变成handler方法,用来处理请求。

3)    @RequestMapping的属性(6个):实现精准化映射

@RequestMapping具有四个属性:value、method、params、headers、consumes、produces。(consumes、produces使用较少)

分别为映射请求路径(value属性)、请求方法(method属性)、请求参数(parmas属性)或请求头(headers属性)。多个属性同时指定的时候,利用逗号隔开,属性之间的关系是“与”的关系。

@RequestMapping一般情况必须指定属性value,用来指定对应的URL,这就是粗略映射。当@RequestMapping只指定一个属性value,此时value可省略不写,即@RequestMapping(value="/hello")等价于@RequestMapping("/hello")。

注意:"@RequestMapping"的value值前后是否有“/”对请求的路径没有影响,即value="book" "/book""/book/"其效果是一样的

A.       method:指定请求的method类型, GET、POST、PUT、DELETE等;

@RequestMapping(value="/get/{bookid}",method={RequestMethod.GET,RequestMethod.POST})

RequestMethod是一个枚举类。

B.       params:指定request中必须包含某些参数值是,才让该方法处理。

@RequestMapping(params="action=del"),请求参数包含“action=del”,如:http://localhost:8080/book?action=del

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值