1、使用Session传输数据到页面
1、通过Servlet api 的方式读写session
① 通过参数绑定的方式去获取servlet api。
② 通过自动注入的方式去获取servlet api。
/*
通过参数绑定的方式获取servlet api
*/
@RequestMapping("servletapi/session")
public String session01(HttpSession httpSession /*,HttpServletRequest httpServletRequest*/){
httpSession.setAttribute("type","servletapi-session");
//System.out.println(httpServletRequest.getSession().getAttribute("type"));
return "main";
}
/*
* 通过自动注入的方式获取
* */
@Autowired
private HttpSession session;
@RequestMapping("autowire/session")
public String session02(){
session.setAttribute("type","autowire-session");
return "main";
}
前端调用:
session:${sessionScope.type}
2、通过SrpingMVC 提供的注解方式去读写Session
① @SessionAttributes
用在类上面 写入Session的
@Controller
//从Model Map ModelMap 中获取指定的属性写入session中
//这种方式 是
@SessionAttributes({"type","name"})
public class DTVController { //////////........
② @SessionAttribute
用在参数上面 读取Session
@RequestMapping("annotation/session")
public String session03(@SessionAttribute(value = "name",required = false) String username) {
System.out.println(username);
return "main";
}
//@SessionAttribute("name")这样写 session 不存在 会报400错误!!
/**** 注意
* @SessionAttributes({"type", "name"})
* 这种方式 map model modelmap 中type name 和 session 中的值互通的 能互相操作!!!!
*
*/