Spring注解:@RequesMapping、@PathVariable 、@RequestParam、@RequestHeader

@RequesMapping
  1. 除了修饰方法,也可以修饰类
  2. 类定义处:提供初步的请求映射信息,相当于web应用的根目录,表示类中的所有响应请求的方法都是以该地址作为父路径。
  3. 方法定义处:提供进一步的细分映射信息,访问该类中的某个方法时,需要通过定义的类路径加方法路径,如果类路径没有定义,直接通过方法定义的路径即可。

@RequestMapping 的 value、method、params 及 heads 分别表示请求 URL、请求方法、请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可让请求映射更加精确化。

value,method
value: 指定请求的实际地址,指定的地址可以是URI

method: 指定请求的method类型, GET、POST、PUT、DELETE等;

params,headers
params: 指定request中必须包含某些参数值是,才让该方法处理。

headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

/**
	 * 了解: 可以使用 params 和 headers 来更加精确的映射请求. params 和 headers 支持简单的表达式.
	 * 
	 * @return
	 */
	@RequestMapping(value = "testParamsAndHeaders", params = { "username",
			"age!=10" }, headers = { "Accept-Language=en-US,zh;q=0.8" })
	public String testParamsAndHeaders() {
		System.out.println("testParamsAndHeaders");
		return SUCCESS;
	}

	/**
	 * 常用: value表示请求的url  method 属性来指定请求方式
	 */
	@RequestMapping(value = "/testMethod", method = RequestMethod.POST)
	public String testMethod() {
		System.out.println("testMethod");
		return SUCCESS;
	}
Ant 风格资源地址支持 3 种匹配符:
?:匹配文件名中的一个字符 –
*:匹配文件名中的任意字符 –
**:** 匹配多层路径 –

@RequestMapping 还支持 Ant 风格的 URL•:
/user/*/createUser: 匹配 –
/user/aaa/createUser、/user/bbb/createUser 等 URL
/user/**/createUser: 匹配 –
/user/createUser、/user/aaa/bbb/createUser 等 URL
/user/createUser??: 匹配 –
/user/createUseraa、/user/createUserbb 等 URL
@PathVariable

@PathVariable 映射 URL 绑定的占位符
带占位符的 URL 是 Spring3.0 新增的功能,该功能在 SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义
通过 @PathVariable 可以将 URL 中占位符参数绑定到控 制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过
@PathVariable(“xxx”) 绑定到操作方法的入参中。

/**
	 * @PathVariable 可以来映射 URL 中的占位符到目标方法的参数中.
	 * @param id
	 * @return
	 */
	@RequestMapping("/testPathVariable/{id}")
	public String testPathVariable(@PathVariable("id") Integer id) {
		System.out.println("testPathVariable: " + id);
		return SUCCESS;
	}

http://localhost:8080/testPathVariable/111 
@RequestParam

@RequestParam获取请求参数的值,把请求的信息绑定到相应的方法入参中,并根据方法的返回值类型做出相应的后续处理。

属性值: @RequestParam 来映射请求参数.

	value 值即请求参数的参数名
	required 该参数是否必须. 默认为 true
	defaultValue 请求参数的默认值
    @RequestMapping(value = "/testRequestParams",method = RequestMethod.GET)
    public String testRequestParams(@RequestParam(value = "username") String username,@RequestParam(value = "id",required = false,defaultValue = "0") int id){
        System.out.print(username+" "+id);
        return username+id;
    }

请求:http://localhost:8080/hello/testRequestParams?username=zhangsan&id=1
结果:zhangsan0
@RequestHeader

映射请求头信息 用法同 @RequestParam

    @RequestMapping(value = "/testRequestHeader",method = RequestMethod.GET)
    public String testRequestHeader(@RequestHeader(value = "Accept-Language") String al){
        System.out.print(al);
        return al;
    }
请求:http://localhost:8080/hello/testRequestHeader
结果:zh-CN,zh;q=0.9
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值