java的requestmapping_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 以及请求请求访问到了。强行访问会报如下错误:

75cefced0c67a5154610b71e4ca4f518.png

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

@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,这里就不影响了。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值