工程代码
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;
}