049@RequestMapping的用法

本文详细介绍了SpringMVC框架下控制器如何通过@RequestMapping注解实现请求拦截,包括请求路径、方法类型、请求参数及头部信息的指定方式,以及如何处理特定的请求类型。

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

SpirngMVC 控制器拦截请求非常简单,只需要对控制器方法用@RequestMapping修饰即可
其中@RequestMapping有如下属性可以指定:

  1. value/path:指定拦截的请求地址
  2. name:给映射地址指定一个名称
  3. method:指定拦截的请求类型,支持POST,GET,PUT,DELETE,PATCH,如果不指定则可以修饰所有请求
  4. consumer:指定请求的类型,比如text/plain,application/*等
  5. params:指定请求中的必须包含(或者不能包含,在前面加!)的参数,并可以为该参数限定参数值。比如params=“!name”表示参数中不能有name请求参数,params=“name=哈哈哈”表示请求参数name的值必须是哈哈哈
  6. headers:与params类似,只不过这是用于限定请求头。
  7. produces:限定Accpet请求类型,如:produces=“test/plain”,表示修饰的目标只处理Accpet请求头包含test/plain的请求。

栗子:

@Controller
@RequestMapping("/user")
public class UserController
{
    @Resource(name="userService")
    private UserService userService;
    @RequestMapping(path = "/login",
        method = RequestMethod.POST,
        params = "name=lyx",
        consumes = "application/x-www-form-urlencoded",
        headers = "Referer=http://localhost:8080/_RequestMapping_war_exploded/loginFrom.jsp"
    )
    public String login(User user, Model model)
    {
        if (userService.adduser(user)>0)
        {
            model.addAllAttributes(Map.of("tip","添加用户成功!"));
            return "success";
        }
        model.addAllAttributes(Map.of("tip","添加用户失败!"));
        return "error";
    }
}

忘了说了,当控制器和控制器方法都用@RequestMapping修饰,并且都指定了value/path属性,那么拦截的请求是两者相加,比如上面栗子中拦截的请求是
user/login

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值