【学习笔记】SpringMVC—@RequestMapping注解(二)

简介: 【学习笔记】SpringMVC—@RequestMapping注解(二)

七、@RequestMapping注解的headers属性

在学习这个属性前,我想问大家什么是 header ?大家是不是很熟悉?


header:


用于HTTP协义交互的信息被称为HTTP报文,客户端发送的HTTP报文被称为请求报文,服务器发回给客户端的HTTP报文称为响应报文,报文由报文头部和报文体组成。

请求头部(Request Headers):请求头包含许多有关客户端环境和请求正文的信息,例如浏览器支持的语言、请求的服务器地址、客户端的操作系统等。

响应头部(Rsponse Headers):响应头也包含许多有用的信息,包括服务器类型、日期、响应内容的类型及编码,响应内容的长度等等。

和 params 使用方式相似:


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


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


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


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


我们来测试一下代码吧:

@RequestMapping(
        //我们的一般端口是8080
            headers = "Host=localhost:8081"
    )
    public String testParams(){
        return "success";
    }


我们请求8081端口号,来看一下运行结果:

image.png



我们这个肯定是访问不到的啦。所以这个参数一般一般可以用来设置请求头。


八、@RequestMapping注解的consumes属性

consumes: 指定处理请求的提交内容类型(Content-Type),例如:application/json、text/html时,才能够让该方法处理请求。


@RequestMapping(
            value = "/test",
            params = "username",
            headers = "Host=localhost:8080",
            consumes = "application/json"
    )
    public String testParams(){
        return "success";
    }


九、@RequestMapping注解的produces属性

produces: 指定返回的内容类型,返回的内容类型必须是request请求头(Accept)中所包含的类型。


 

@RequestMapping(
            value = "/test",
            params = "username",
            headers = "Host=localhost:8080",
            consumes = "application/json",
        //可设置编码!
            produces = "application/json , charset=utf-8"
    )
    public String testParams(){
        return "success";
    }


十、@RequestMapping注解支持ant路径风格

?:表示任意的单个字符


*:表示任意的0个或多个字符


**:表示任意的一层或多层目录


注意: 在使用时,只能使用//xxx的方式


测试案例一:


 

@RequestMapping(
            value = "/test/a?a/ant"
    )
    public String testParams(){
        return "success";
    }


请求: http://localhost:8080/SpringMVC/test/a1a/ant


结果:

image.png



测试案例二:


@RequestMapping(
            value = "/test/*/ant"
    )
    public String testParams(){
        return "success";
    }


请求: http://localhost:8080/SpringMVC/test/afasdfa/ant


结果:

image.png


测试案例三:


 

@RequestMapping(
            value = "/test/**/ant"
    )
    public String testParams(){
        return "success";
    }


请求: http://localhost:8080/SpringMVC/test/a/b/c/ant


运行结果:

image.png



十一、SpringMVC支持路径中的占位符

原始方式: /deleteUser?id=1


rest方式: /deleteUser/1


SpringMVC路径中的占位符常用于RESTful 风格中,当请求路径中将某些数据通过路径的方式传输到服务器中,就可以在相应的**@RequestMapping** 注解的 value 属性中通过占位符 {xxx} 表示传输的数据,在通过 @PathVariable 注解,将占位符所表示的数据赋值给控制器方法的形参


<a th:href="@{/testRest/1/admin}">测试路径中的占位符-->/testRest</a><br>


@RequestMapping("/testRest/{id}/{username}")
    public String testRest(@PathVariable("id") String id, @PathVariable("username") String username){
        System.out.println("id:"+id+",username:"+username);
        return "success";
    }


后端获取的参数:


image.png



目录
相关文章
|
JSON 前端开发 Java
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
111 0
|
2天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
17 2
SpringMVC入门到实战------3、@RequestMapping注解(超详细基础知识+实际代码案例)
该博客文章详细介绍了SpringMVC中`@RequestMapping`注解的使用方法,包括其功能、位置、value属性、method属性、params属性、headers属性以及支持的路径风格和占位符,并通过实际代码案例展示了如何建立请求与控制器方法之间的映射关系。
SpringMVC入门到实战------3、@RequestMapping注解(超详细基础知识+实际代码案例)
|
7月前
|
前端开发 Java Spring
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
155 1
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
|
缓存 前端开发 Java
【SpringMVC】JSR 303与拦截器注解使用
【SpringMVC】JSR 303与拦截器注解使用
74 0
|
7月前
|
XML 前端开发 Java
【SpringMVC】 一文掌握 》》》 @RequestMapping注解
【SpringMVC】 一文掌握 》》》 @RequestMapping注解
72 1
|
7月前
|
前端开发 Java 应用服务中间件
SpringMVC之@RequestMapping注解
SpringMVC之@RequestMapping注解
|
XML JSON 前端开发
SpringMVC入门的注解、参数传递、返回值和页面跳转---超详细教学
SpringMVC入门的注解、参数传递、返回值和页面跳转---超详细教学
290 1
|
Java
springmvc之自定义注解-->自定义注解简介,基本案例和aop自定义注解
springmvc之自定义注解-->自定义注解简介,基本案例和aop自定义注解
56 0
|
JSON 前端开发 Java
SpringMVC的常用注解,参数传递以及页面跳转的使用
SpringMVC的常用注解,参数传递以及页面跳转的使用
64 0