SpringMVC 响应处理 读写Session信息

128 阅读1分钟

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 中的值互通的   能互相操作!!!!
 *
 */