@RequestMapping注解基本介绍

@RequestMapping注解的功能

RequestMapping翻译过来就是请求映射

主要功能就是:就是将请求和处理请求的控制器方法关联起来,建立映射关系

服务器接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。

@RequestMapping注解的位置

可以加在控制器类上,加在类上代表标识一个类

@RequestMapping注解基本介绍_第1张图片

加在类上在访问类内部方法时,必须要在路径前面加上类标识上的路径(上图要加上/hello)才可以正常访问内部方法 

也可以加在方法上,加在方法上就是标识一个方法

@RequestMapping注解基本介绍_第2张图片

就是标记一个方法,通过解析调用这个方法 

@RequestMapping注解的value属性

@RequestMapping注解基本介绍_第3张图片

value属性的作用就是请求路径,当客户端发送何种请求时调用

由图可知value是一个String类型的数组,也就是其中可以存放多个数据 

其中path和value属性所代表的意思相同,由@AliasFor(别名)可以看出

其中value属性是必须设置

@RequestMapping(value = {"/","hello"})

@RequestMapping注解的method属性

通过设置method属性,用来规定请求方式(post,get,put,delete)

@RequestMapping注解基本介绍_第4张图片

其中可以通过RequestMethod来规定使用的请求方式, RequestMethod是一个枚举类型

method属性也是数组类型的,也可以同时设置多个

@RequestMapping(value = {"/","hello"},method = {RequestMethod.DELETE,RequestMethod.GET})

同时也可以使用派生注解

处理get请求的映射-->@GetMapping

处理post请求的映射-->@PostMapping

处理put请求的映射-->@PutMapping

处理delete请求的映射-->@DeleteMapping

用来代替method属性

当请求方式不满足method属性时报,405错误:Request method 'xxxx' not supported

@RequestMapping注解的params属性

params属性通过请求的请求参数匹配请求映射,相当于对请求路径进行一定的规则匹配,满足params设定规则的才可以被匹配

主要设置规则:

"name":要求请求映射所匹配的请求必须携带name请求参数

"!name":要求请求映射所匹配的请求必须不能携带name请求参数

"pwd=123456":要求请求映射所匹配的请求必须携带pwd请求参数且pwd=123456

"pwd!=123456":要求请求映射所匹配的请求必须携带param请求参数但是pwd!=123456

    @RequestMapping(value = {"test"},
            method = {RequestMethod.GET},
            params = {"name","!username","pwd=123456","password!=55555"}
    )
    public String test(Model model){
        model.addAttribute("zt","ok");
        return "test";
    }

上述规则为:访问路径必须含有name,且不能还要username,其中必须含有pwd且内容必须为123456,password不一定含有,如果含有内容不能是55555,规则必须全部满足

params也是数组,类型为String,可以同时指定多个规则

如果不匹配则会报400错误

Parameter conditions "指定的规则" not met for actual request parameters: 你的请求参数

@RequestMapping注解的headers属性

headers属性通过请求的请求头信息匹配请求映射,与params类似不过这个规则检查是对请求头来进行检验的

"header":要求请求映射所匹配的请求必须携带header请求头信息

"!header":要求请求映射所匹配的请求必须不能携带header请求头信息

"header=value":要求请求映射所匹配的请求必须携带header请求头信息且header=value

"header!=value":要求请求映射所匹配的请求必须携带header请求头信息且header!=value

@RequestMapping(value = {"test"},
            method = {RequestMethod.GET},
            params = {"name","!username","pwd=123456","password!=55555"},
            headers = {"!Host"}
    )
    public String test(Model model){
        model.addAttribute("zt","ok");
        return "test";
    }

上面的代码headers的规则表示请求头中不能含有Host

在浏览器发送请求下必定会携带Host,于是一定会报错

注意这里报错是404,与找不到路径是相同报错

@RequestMapping注解基本介绍_第5张图片

以上就是 @RequestMapping注解常用的一些属性啦

如果有错误的地方欢迎大家指正

你可能感兴趣的:(java,开发语言)