Spring的@RequestHeader注释和SpringMVC基础-@CookieValue

SpringMVC提供了可以用于映射控制器参数以请求头值的注释@RequestHeader。以下是spring@RequestHeader注释的简单使用。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
//..

@Controller
public class HelloController {

    @RequestMapping(value = "/hello.htm")
    public String hello(@RequestHeader(value="User-Agent") String userAgent)

        //..
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

  在上面的代码中,我们定义了一个hello()映射到URL /hello.htm的控制器方法。此外,我们String userAgent使用@RequestHeader注释绑定参数。当spring映射请求时,它将使用名称“User-Agent”检查http头,并将其值绑定到String userAgent。 
  如果您指定的头值在请求中不存在,Spring将初始化具有空值的参数。如果要设置参数的默认值,可以使用defaultParameter弹簧@RequestHeader注释的属性进行设置。
 
  

@RequestMapping(value = "/hello.htm")
public String hello(@RequestHeader(value="User-Agent", defaultValue="foo") String userAgent)

    //..
}

SpringMVC基础-@CookieValue

1.概述

  从Http请求头中的Cookie提取指定的某个Cookie.


2.配置
(1)value(default ""):参数名例如: JSESSIONID
(2)required(default true):是否请求路头中必须带value指定的参数

(3)defaultValue(default ValueConstants.DEFAULT_NONE):如果value指定的参数值不存在或者为空,那么将使用默认值.


3.使用

和@RequestHeader的使用方式类似,在控制器的方法参数中使用注解把请求路径指定的参数提取出来作为实参注入形参中


3.example

代码

@Controller
@RequestMapping("cookieValue")
public class CookieValueController {

	@RequestMapping(value = "/jsessionId")	
	public String jsessionId(
			@CookieValue(value = "JSESSIONID", required = true, defaultValue = "MyJsessionId") String jsessionId,
			Model model) {
		model.addAttribute("jsessionId", jsessionId);
		return "request/cookieValue";
	}
}


测试结果

使用浏览器的开发工具,我们看到Cookie的值为:

"COOKIE_SUPPORT=true; 
GUEST_LANGUAGE_ID=en_US; 
SCREEN_NAME=67647435495538793357374a6f6a65504c58734934673d3d; 
LOGIN_COUNTER=6; 
__hstc=181257784.86116ef980075d3fba956fffe07c85e0.1438228059723.1440732273706.1440910819029.71; 
hsfirstvisit=http%3A%2F%2Flocalhost%3A8080%2F||1438228059722;
 hubspotutk=86116ef980075d3fba956fffe07c85e0;
 _ga=GA1.1.980038962.1438310213; 
 Hm_lvt_fdb2929bcc763a794aa6bd116b4c8fea=1439132484; 
 Hm_lvt_3154c3b89194bf9b6f2d883c5cc4bbc2=1440003830,1440305825,1440422775,1440602238; 
 LOGIN=6861696a69616e2e79616e67406c6966657261792e636f6d; 
 COMPANY_ID=10155; 
 ID=68313736374768716b6254585a6b695a6d6d39366d413d3d; 
 PASSWORD=32446c336f66453659384c66734935354c4b2b7849513d3d; 
 REMEMBER_ME=true; 
 JSESSIONID=5A80E379641BE6E680E29736CF29A914;
 __hssrc=1;
 USER_UUID=rhRQ/8Ab6yZ+Uul5p+y5D49Ngv1KcGFL"




  • 1
  • 2
  • 3
  • 4
  • 5

猜你喜欢

转载自blog.csdn.net/qq_39469809/article/details/78936621