zoukankan      html  css  js  c++  java
  • SpringMVC基础03——常用注解之@RequestMapping

    1.用法

    SpringMVC使用@RequestMapping注解,为控制器指定可以处理哪些URL请求,并且可以指定处理请求的类型(POST/GET),如果@RequestMapping没有指定请求的方式,那么代表这个方法可以同时处理GET/POST请求。

    1 @RequestMapping("/helloworld")
    2 public String helloWorld() {
    3     return SUCCESS;
    4 }

    URL的地址:http://localhost:8082/helloworld

    除此之外,@RequestMapping有两种用法,一是标在类上,二是标在方法上。

    ① 标记在类上:提供初步的请求映射信息。相对于 WEB 应用的根目录

    ② 标记在方法上:提供进一步的细分映射信息。相对于标记在类上的 URL。

    1 @Controller
    2 @RequestMapping("/springmvc")
    3 public class SpringMVCTest {
    4     private static final String SUCCESS = "success";
    5     @RequestMapping("/helloworld")
    6     public String helloWorld() {
    7         return SUCCESS;
    8     }
    9 }

    URL的地址:http://localhost:8082/springmvc/helloworld

     除此之外我们还可以设置处理请求的类型,GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS,TRACE;

    1 @Controller
    2 @RequestMapping("/springmvc")
    3 public class SpringMVCTest {
    4     private static final String SUCCESS = "success";
    5     @RequestMapping(value = "/helloworld", method = RequestMethod.GET)
    6     public String helloWorld() {
    7         return SUCCESS;
    8     }
    9 }

    因为有多个属性,所以我们把方法的路由地址设置为value属性值,把请求方式设置为method,但是如果我们以POST方式去请求helloworld这个方法,就会抛出405错误。

    我们打开postman,输入要访问的地址:http://localhost:8090/springmvc/helloworld    之后选择POST请求方式进行访问,我们就可以看到报出405。

    2.补充用法

     @RequestMapping除了能够对请求对url和请求方式进行设置之外,还可以对HTTP请求的内容(请求参数和请求头)进行设置,下面是一个标准HTTP请求的报文格式。

    我们可以通过@RequestMapping的params和headers属性进行限制,我们重新来编写一个Controller方法,在@RequestMapping中我们设置了params和header属性,首先来看params属性,它表示的是,接受的请求中,必须包含username参数且age属性不能等于10,headers属性指的是方法处理的请求头中必须含有Accept-Language,且属性相同,这里一定要注意Accept-Language后面跟的是=。

    1 @RequestMapping(value = "/testParamAndHeaders", params = {"username", "age!=10"}, headers = {"Accept-Language=zh,zh-CN;q=0.9,en;q=0.8"})
    2     public String testParamAndHeaders() {
    3         System.out.println("testParamAndHeaders");
    4         return SUCCESS;
    5     }

    我们在index.jsp定义如下代码进行测试:

    1 <a href="/springmvc/testHeadersAndParams">Test HeadersAndParams</a> <br><br>

    ①什么参数都不传,结果会报400

     ②如果只传递了username,是可以正常访问的,后台拿到的age为null所以可以正常访问

    ③如果传入用户名和年龄为10,也是会报400

    ④当传入用户名为wzy,年龄为11时,即可正常访问

    并且我们通过谷歌的调试工具可以发现,确实发送了指定的请求头。

  • 相关阅读:
    java运行时异常与一般异常有何异同?
    B+树原理及mysql的索引分析
    ibatis in的用法
    brython的问题
    限流算法的原理
    Java8的CompletionService使用与原理
    命令行相关快捷键
    Java8 异步编排类CompletableFuture
    分布式系统ID生成方案
    curl 命令简介
  • 原文地址:https://www.cnblogs.com/fengyun2019/p/11051272.html
Copyright © 2011-2022 走看看