通过原生session对象
获取原生session对象只需要在控制类的目标方法中加入一个HttpSession类型的形参
public class Session {
@RequestMapping("/getSession")
public String getSession(User user,HttpSession session){
session.setAttribute("CURR_USER", user);
return "index";
}
}
通过注解的方式获取
通过在控制类上方加入注解@SessionAttributes(value={"CURR_USER"},types={User.class})
来指定session值的类型以及key值,通过方法中类型或者key值的匹配来实现自动往session中赋值
注意:在注解中key值或类型有任意一个匹配,此对象都会被赋值到session域中
如果不写注解@SessionAttributes(value={"CURR_USER"},types={User.class}),则其作用域为request
有三种方法
- 通过java.util.Map方式
@SessionAttributes(value={"CURR_USER"},types={User.class})
@Controller
public class Session {
@RequestMapping("/getSession")
public String getSession(User user,Map<String, Object> map){
map.put("CURR_USER", user);
return "index";
}
}
- 通过ModelMap方式
@SessionAttributes(value={"CURR_USER"},types={User.class})
@Controller
public class Session {
@RequestMapping("/getSession")
public String getSession(User user,ModelMap map){
map.put("CURR_USER", user);
return "index";
}
}
- 通过Model方式
@SessionAttributes(value={"CURR_USER"},types={User.class})
@Controller
public class Session {
@RequestMapping("/getSession")
public String getSession(User user,Model model){
model.addAttribute("CURR_USER", user);
return "index";
}
}