java - 有没有办法在过滤器内创建 Cookie 并将其添加到响应中?

标签 java servlet-filters

我有一个过滤器和一个 Servlet。我正在尝试创建一个 Cookie 并将其添加到过滤器中“chain.doFilter”方法之后的响应中。

*Cookie 需要在“chain.doFilter”方法之后创建并添加到 Response 中,因为它的值取决于来自 Response 的一些信息。

我做了一些研究,发现为响应创建一个包装器(在 doFilter 方法之前)可以让我实现这一点,但它不起作用,我可以将 Cookie 添加到包装器,但在浏览器中检查时Cookie 不存在。

最佳答案

要添加 cookie,您必须在 doFilter 方法中使用 HttpServletResponse 类。 这是一个例子:

public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
    response.addCookie(new Cookie("key", "value"));
    chain.doFilter(request, response);
  }

关于java - 有没有办法在过滤器内创建 Cookie 并将其添加到响应中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59490657/

相关文章:

java - 如何设置过滤器链执行顺序

servlets - 在 Compojure 中使用 javax.servlet.Filter

java - 仅在 Spring boot 2.0.0 响应时执行 GenericFilterBean

java - 重写 java.io.FileOutputStream 方法

java - 状态变化颜色变化

java - myeclipse 中的 F4 快捷键及其在 IntelliJ idea 中的等效快捷键

java - 在 ArrayList<? 定义的方法中交换两个子级扩展父级>

java.lang.NoSuchMethodError : No static method combineMeasuredStates(II)I in class 错误

java - Selenium WebDriver - 使用 click() 时出现 StaleElementReferenceException

java - Servlet.init() 和 Filter.init() 调用顺序