SpringMVC_day01_c01_RequestMapping的介绍

一、RequestMapping的简介

     RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

     RequestMapping注解有以下几个常用参数,当这些参数一起出现时,它们之间是与的关系。即,只要有一个条件不满足,就不能接收请求。

  • value
  • path
  • method
  • params
  • headers

二、RequestMapping常用注解的介绍

  1. value参数
         value参数用于指定访问该方法的地址。当RequestMapping位于方法上时该值就是该方法的访问路径。当RequestMapping位于类上和方法上时,类上的路径是方法上的路径的父路径。举个例子:
@Controller
public class HelloController {
    @RequestMapping(value = "/hello")
    public String sayHello(){
        System.out.println("Hello MVC!");
        return "success";
    }
}

     在上面这个类中,类上面没有RequestMapping注解,而sayHello方法上面有RequestMapping注解,且value值为/hello,这个方法的访问路径就是/hello。而在下面这个类中,类上面有RequestMapping注解,且值为/user。那么方法sayHello的访问路径就是/user/hello,方法sayAAA的访问路径就是/user/aaa

@Controller
@RequestMapping(value = "/user")
public class HelloController {
    @RequestMapping(value = "/hello")
    public String sayHello(){
        System.out.println("Hello MVC!");
        return "success";
    }
    @RequestMapping(value = "/aaa")
    public String sayAAA(){
        System.out.println("AAA!");
        return "success";
    }
}

2、path参数
     path参数的作用与value参数完成相同。通过源码可见一斑。
在这里插入图片描述在这里插入图片描述

3、method参数
     method参数是一个数组,用于指定访问的方法。比如POST、GET这些。springMVC提供了一个叫做RequestMethod的枚举类。查看这个类的源码,可以了解到支持的方法
在这里插入图片描述
下面的例子,还是使用上面那个类,多加了一个method参数,参数的值为RequestMethod.POST,如果请求的方法不是POST的话,那么服务器就会报错。
在这里插入图片描述

@Controller
@RequestMapping(path = "/user")
public class HelloController {
    @RequestMapping(path = "/hello", method = {RequestMethod.POST})
    public String sayHello(){
        System.out.println("Hello MVC!");
        return "success";
    }
}

4、params参数

     params参数用于指定请求要包含的参数,它也是一个数组。还是上面的例子,加上params参数之后,如果你的请求中没有包含params参数指定的内容,那么将无法访问。

        @RequestMapping(path = "/hello"
                , params = {"username"})
        public String sayHello(){
            System.out.println("Hello MVC!");
            return "success";
        }

在这里插入图片描述

上面的params中只是指定要要包含的键名,而并没有指定值。而如果这样子写,就需要键名和键值同时满足才能访问。

        @RequestMapping(path = "/hello"
                , params = {"username=hehe"})
        public String sayHello(){
            System.out.println("Hello MVC!");
            return "success";
        }

在这里插入图片描述
在这里插入图片描述

5、headers参数
     headers参数也是一个数组,用于指定请求头中要包含的信息。使用方式类似于params参数。这里指定了请求头里面必须包含accept参数,而值不做要求。如果要加上值的要求,类似于params。

    @RequestMapping(path = "/user")
    public class HelloController {
        @RequestMapping(path = "/hello"
                , headers = {"accept"})
        public String sayHello(){
            System.out.println("Hello MVC!");
            return "success";
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值