1. 程式人生 > >springmvc Session,Cookies,Header管理(springmvc教程五)

springmvc Session,Cookies,Header管理(springmvc教程五)

目錄

工程程式碼

github: https://github.com/dengjili/springmvc

頁面檔案:attribute.jsp

<html>
<body>
	<h2>Hello World!</h2>
	hehe
	<hr/>
	<a href="setSession">setSession</a>	
	<hr/>
	<a href="getSession">getSession</a>	
	<hr/>
	<a href="getCookie">getCookie</a>	
	<hr/>
	<a href="getRequestHeader">getRequestHeader</a>	
</body>
</html>


Session的寫入與獲取

基本配置

// SessionAttributes只能設定在類上
@SessionAttributes(value = {"beanParam"}, types = {BeanParam.class})
public class AttributeController {
	@RequestMapping("/setSession")
	public ModelAndView Session(Long id) {
		BeanParam beanParam = new BeanParam();
		beanParam.setName("zhagnan");
		beanParam.setNote("test張國");
		
		// 設定請求屬性
		ModelAndView mv = new ModelAndView();
		mv.addObject("beanParam", beanParam);
		mv.setViewName("attribute");
		return mv;
	}
	
	@RequestMapping("/getSession")
	public ModelAndView getSession(@SessionAttribute("beanParam") BeanParam beanParam) {
		ModelAndView mv = new ModelAndView();
		mv.addObject(beanParam);
		mv.setView(new MappingJackson2JsonView());
		return mv;
	}

Cookie獲取

	@RequestMapping("/getCookie")
	public ModelAndView getCookie(@CookieValue(value = "JSESSIONID", defaultValue = "mmp") String jsessionId) {
		logger.debug("jsessionId: {}", jsessionId);
		ModelAndView mv = new ModelAndView();
		mv.setViewName("attribute");
		return mv;
	}

Request Header獲取

	/** 
	 * Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,
	 * Accept-Encoding: gzip, deflate, br
	 * Accept-Language: zh-CN,zh;q=0.9
	 * Connection: keep-alive
	 * Cookie: JSESSIONID=064DBEF12310AD0EA33D35A9A410F38C
	 * Host: localhost:8080
	 * Referer: http://localhost:8080/springmvc/attribute/setSession
	 * Upgrade-Insecure-Requests: 1
	 * User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 
	 */
	@RequestMapping("/getRequestHeader")
	public ModelAndView getRequestHeader(@RequestHeader(value = "Accept-Encoding") String acceptEncoding) {
		logger.debug("Accept-Encoding: {}", acceptEncoding);
		ModelAndView mv = new ModelAndView();
		mv.setViewName("attribute");
		return mv;
	}