我正在学习 Spring MVC,但无法理解会话数据的存储位置和方式。
我想要实现的是将会话数据存储在发送到浏览器的加密 cookie 中。这是必要的,因为我计划在没有粘性会话的 heroku 上运行应用程序。(这是我已经在 python 中使用的解决方案,通过使用金字塔和烧杯,我对此非常满意)
我有这个玩具控制器
public class HelloController implements Controller {
protected final Log logger = LogFactory.getLog(getClass());
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
logger.info("Returning hello view");
Map<String, Object> myModel = new HashMap<String, Object>();
myModel.put("key", "value");
return new ModelAndView("hello", "model", myModel);
}
}
如果我打电话会发生什么
HttpSession session = request.getSession();
在handleRequest 方法中?我认为如果会话不存在,则会启动会话,否则将返回现有会话。但是这个会话存储在哪里?在带有 cookie 的浏览器中?或者别的地方?
如何指定必须将会话放入 cookie 并设置必须用于加密它的密钥?