Springmvc RequestMapping请求实现方法解析

 更新时间:2020年09月23日 14:33:19   作者:柒  
这篇文章主要介绍了Springmvc RequestMapping请求实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

请求url

标记请求URl很简单,只需要在相应的方法上添加注解即可:

@Controller
public class HelloController {
  @RequestMapping("/hello")
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

这里 @RequestMapping(“/hello”) 表示当请求地址为 /hello 的时候,这个方法会被触发。其中,地址可以是多个,就是可以多个地址映射到同一个方法。

@Controller
public class HelloController {
  @RequestMapping({"/hello","/hello2"})
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

这个配置,表示 /hello 和 /hello2 都可以访问到该方法

请求窄化

同一个项目中,会存在多个接口,例如订单相关的接口都是 /order/xxx 格式的,用户相关的接口都是 /user/xxx 格式的。为了方便处理,这里的前缀(就是 /order、/user)可以统一在 Controller 上面处理。

@Controller
@RequestMapping("/user")
public class HelloController {
  @RequestMapping({"/hello","/hello2"})
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

当类上加了 @RequestMapping 注解之后,此时,要想访问到 hello ,地址就应该是 /user/hello 或者 /user/hello2

请求方法限定

默认情况下,使用 @RequestMapping 注解定义好的方法,可以被 GET 请求访问到,也可以被 POST 请求访问到,但是 DELETE 请求以及 PUT 请求不可以访问到。

当然,我们也可以指定具体的访问方法:

@Controller
@RequestMapping("/user")
public class HelloController {
  @RequestMapping(value = "/hello",method = RequestMethod.GET)
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

通过 @RequestMapping 注解,指定了该接口只能被 GET 请求访问到,此时,该接口就不可以被 POST 以及请求请求访问到了。强行访问会报如下错误:

当然,限定的方法也可以有多个:

@Controller
@RequestMapping("/user")
public class HelloController {
  @RequestMapping(value = "/hello",method = {RequestMethod.GET,RequestMethod.POST,RequestMethod.PUT,RequestMethod.DELETE})
  public ModelAndView hello() {
    return new ModelAndView("hello");
  }
}

此时,这个接口就可以被 GET、POST、PUT、以及 DELETE 访问到了。但是,由于 JSP 支支持 GET、POST 以及 HEAD ,所以这个测试,不能使用 JSP 做页面模板。可以讲视图换成其他的,或者返回 JSON,这里就不影响了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java实现快速排序的方法

    java实现快速排序的方法

    这篇文章主要介绍了java实现快速排序的方法,涉及java排序的相关操作技巧,需要的朋友可以参考下
    2015-05-05
  • JMeter 实现Java请求步骤及原理详解

    JMeter 实现Java请求步骤及原理详解

    这篇文章主要介绍了JMeter 实现Java请求步骤及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Freemarker如何生成树形导航菜单(递归)

    Freemarker如何生成树形导航菜单(递归)

    这篇文章主要为大家详细介绍了Freemarker采用的的方法生成树形导航菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • 解决Eclipse配置Tomcat出现Cannot create a server using the selected type错误

    解决Eclipse配置Tomcat出现Cannot create a server using the selected

    这篇文章主要介绍了解决Eclipse配置Tomcat出现Cannot create a server using the selected type错误的相关资料,需要的朋友可以参考下
    2017-02-02
  • Java Fluent Mybatis 项目工程化与常规操作详解流程篇 下

    Java Fluent Mybatis 项目工程化与常规操作详解流程篇 下

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。国内又以Mybatis用的多,基于mybatis上的增强框架,又有mybatis plus和TK mybatis等。今天我们介绍一个新的mybatis增强框架 fluent mybatis关于项目工程化与常规操作流程
    2021-10-10
  • 一文详解Java方法重载与递归应用

    一文详解Java方法重载与递归应用

    方法重载 允许在同一个类中定义多个具有相同名称的方法,但 参数列表 必须不同,递归 是一种让函数调用自身的技术,它提供了一种将复杂问题分解为简单问题的方法,这样更容易解决,本文详细介绍了Java方法重载与递归应用,需要的朋友可以参考下
    2024-02-02
  • Spring定时任务@scheduled多线程使用@Async注解示例

    Spring定时任务@scheduled多线程使用@Async注解示例

    这篇文章主要为大家介绍了Spring定时任务@scheduled多线程使用@Async注解示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 利用java实现一个客户信息管理系统

    利用java实现一个客户信息管理系统

    这篇文章主要给大家介绍了关于利用java实现一个客户信息管理系统的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java 中 String,StringBuffer 和 StringBuilder 的区别及用法

    Java 中 String,StringBuffer 和 StringBuilder 的区别及用法

    这篇文章主要介绍了Java 中 String,StringBuffer 和 StringBuilder 的区别及用法的相关资料,需要的朋友可以参考下
    2017-03-03
  • SpringBoot扫描不到Controller的解决方案

    SpringBoot扫描不到Controller的解决方案

    这篇文章主要介绍了SpringBoot扫描不到Controller的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论