gpt4 book ai didi

servlets - 如何删除HTTP响应头?

转载 作者:行者123 更新时间:2023-12-02 14:07:27 25 4
gpt4 key购买 nike

我遇到了一种情况,必须删除其中一个响应 header Content-Disposition。所以我想到编写一个servlet过滤器来做到这一点。但我意识到 HttpServletResponse 只有一个 setHeader() 方法,但没有删除它的方法。我怎样才能做到这一点?

最佳答案

之后您无法通过标准 Servlet API 删除 header 。最好的办法是阻止设置 header 。您可以通过创建 Filter 来做到这一点它将 ServletResponse 替换为自定义 HttpServletResponseWrapper跳过 setHeader() 的实现每当 header 名称为 Content-Disposition 时,就会执行此操作。

基本上:

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, new HttpServletResponseWrapper((HttpServletResponse) response) {
public void setHeader(String name, String value) {
if (!name.equalsIgnoreCase("Content-Disposition")) {
super.setHeader(name, value);
}
}
});
}

只需将该过滤器映射到感兴趣的 URL 模式即可运行。

关于servlets - 如何删除HTTP响应头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com