我遇到一种情况,其中一个响应标头Content-Disposition
必须被删除。所以我想到编写一个servlet过滤器来做到这一点。但我意识到HttpServletResponse
只有一个setHeader()
方法,但没有方法删除它。
我怎样才能做到这一点?
之后您无法通过标准 Servlet API 删除标头。你最好的选择就是prevent标题被设置。您可以通过创建一个来做到这一点Filter它取代了ServletResponse
与定制HttpServletResponseWrapper跳过的实现setHeader()每当标题名称为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 模式即可运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)