当前位置: 首页 > 知识库问答 >
问题:

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

凌永逸
2023-03-14

我有一个过滤器和一个Servlet。我试图创建一个Cookie,并将其添加到“chain.do过滤器”方法后的过滤器中的响应中。

*Cookie需要在"chain.do过滤器"方法之后创建并添加到响应中,因为它的值取决于来自响应的一些信息。

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

共有2个答案

东郭承业
2023-03-14
HttpServletResponse httpResp=(HttpServletResponse)servletResponse;
Cookie myCookie=new Cookie("test","");
myCookie.setValue("testValue");
myCookie.setPath("/");
myCookie.setDomain(".mydomain.com");
httpResp.addCookie(myCookie);
filterChain.doFilter(servletRequest,servletResponse); 

这样做可以在你的浏览器中添加cookie,也可以从中获得响应

苏鸿羽
2023-03-14

要添加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);
  }
 类似资料:
  • 问题内容: 上面的问题是参考上面线程中描述的内容。有这么多的API,可以灵活地返回XML或JSON响应。我想知道是否有一种方法可以自动构造与JSON响应相对应的java bean。 问题答案: 假设您得到一个类似 你想要一个像 使用getter和setters的一种方法是使用JSONGen之类的服务,它将创建该类。您需要使用它 第一 ,并在项目中包含生成的代码。另一种选择可能是动态生成使用了Jav

  • 问题内容: 我正在使用Docker使用SSL创建特定的nginx容器。 但是我不希望我的SSL文件原样保留在我的版本控制系统中。因此,它们是加密的。在构建Docker容器时,我需要密码来解密文件并测试我的Nginx配置。 我用来在安装脚本中获得提示,但Docker只是在提示上停止了: 做某事时有什么办法得到提示吗? 谢谢你的帮助 :) 问题答案: 好吧,在四处搜寻之后,在期间没有提示的方法。它被设

  • 我需要在每个响应中添加标题。我正打算在下面做 我想在之后这样做,以便一旦控制器处理它,我只是在返回客户端之前添加标头。是正确的吗? 但如何编写响应过滤器? 在已返回,对响应执行任何操作都为时已晚。此时,整个响应已经发送到客户端,您的代码无法访问它。 我觉得上面的说法不对。我不能在过滤链之后添加标题。doFilter(请求、响应)?如果不是,为什么? 我使用的是spring mvc。

  • 我试图在运行时向tomcat添加一个端口。有办法做到这一点吗?或者有没有办法监听所有端口?我使用的是spring,我希望用户能够添加一个APIendpoint调用,以添加一个新的端口来侦听。 我知道您可以在配置文件中添加其他端口,但我不知道我需要添加哪些端口。

  • 所以我想的是: 除了在外部mods文件夹中有一个Mod之外,有没有一种方法可以将整个内容打包到客户端?安装大约500个模块。。。不好玩。将它们打包成一个jar(客户机本身)并内置所有mod?节省安装时间。很多。有什么帮助吗?

  • 我尝试了以下代码,但出现了错误-spring web ResponseEntity无法序列化。 org.springframework.data.redis.serializer.SerializationException:无法序列化;嵌套异常org.springframework.core.serializer.support.SerializationFailedException:无法使用