在控制器内创建会话cookie


问题内容

我是Tomcat,Servlet和Spring Web的新手。我来自PHP背景,因此至少可以说我有点迷失方向。我希望控制器为我创建一个会话cookie。

有人告诉我可以在标准servlet中获得这样的会话:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
  // Somewhere inside the method...
  HttpSession session = request.getSession(true);

  // Set a cookie
      session.setAttribute("hello", "world");

  // More stuff...
}

这如何转换为Spring Web MVC的工作方式?我可以在控制器内创建会话cookie吗?


问题答案:

在Java Servlet(尤其是Spring
MVC)中,您不会直接与会话cookie进行交互,实际上,正确编写的基于servlet的应用程序应该在不启用cookie的情况下工作,并自动退回到基于URL的会话id。

您提供的方法是正确的,尽管Spring为您提供了更好的(更高级别)方法,例如会话范围的 bean。这样,您就不会与会话本身进行交互。