为了这是我需要发生的事情:
要求 blah.com/test
chain.doFilter
repsonse.setStatus
以及response.addHeader("Location", target)
实际情况:
chain.doFilter
repsonse.setStatus
以及response.addHeader("Location", target)
我认为这可能与您可以在ServletFilter配置中设置的调度程序值有关。
有任何想法吗?
我认为,当它到达响应得到承诺ServletFilter A
的Step 4
。提交响应后,即将标头写入客户端,便无法执行需要添加标头的操作。这些操作类似于添加cookie。
如果您不希望在提交Step 4
包装之前HttpServletResponse
返回响应,请尝试包装并返回自定义输出流,该输出流将缓冲数据直到到达step 4
并提交响应。
这是示例代码:
public class ResponseBufferFilter implements Filter
{
public void init(FilterConfig filterConfig) throws ServletException
{
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException
{
HttpServletResponse httpResponse = (HttpServletResponse)response;
BufferResponseWrapper wrapper = new BufferResponseWrapper(httpResponse);
filterChain.doFilter(request, resposneWrapper);
response.getOutputStream().write(wrapper .getWrapperBytes());
}
public void destroy()
{
}
private final class BufferResponseWrapper extends HttpServletResponseWrapper
{
MyServletOutputStream stream = new MyServletOutputStream();
public BufferResponseWrapper(HttpServletResponse httpServletResponse)
{
super(httpServletResponse);
}
public ServletOutputStream getOutputStream() throws IOException
{
return stream;
}
public PrintWriter getWriter() throws IOException
{
return new PrintWriter(stream);
}
public byte[] getWrapperBytes()
{
return stream.getBytes();
}
}
private final class MyServletOutputStream extends ServletOutputStream
{
private ByteArrayOutputStream out = new ByteArrayOutputStream();
public void write(int b) throws IOException
{
out.write(b);
}
public byte[] getBytes()
{
return out.toByteArray();
}
}
}
当我尝试使用Spring boot和Spring mvc下载压缩文件时,出现了一个错误: null 基本上,我的应用程序是加载一个文件,压缩它并下载新的压缩文件。 这是我的应用程序控制器: 如果我关闭输入和输出流,我不知道为什么会发生这种情况。
我试图创建一个api的商店以下属性:StoreId,名称,位置,电话,产品列表(ProductId,对象,价格,股票),产品列表的大小 问题是,当存储区与列表中的项目不一致时,它会以以下方式响应: 但是,如果所有的商店都没有项目,就没有问题,但是如果所有的商店都没有项目,api就没用了。
我使用下面的jsp和得到
我正在阅读https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/datastream/kafka/#kafka-消费者补偿提交行为配置 它说: 启用检查点:如果启用了检查点,Flink Kafka使用者将在检查点完成时提交存储在检查点状态中的偏移量。这确保了Kafka代理中提交的偏移量与检查点状态中
我们有一个场景,提交给ThreadPoolExecitor的任务长时间运行。当线程池启动时,我们以核心池大小=5、最大池大小=20和队列大小为10启动它。在我们的应用程序中,大约有10个任务被提交。大多数时候,这些任务运行几分钟/小时,然后完成。但是有一种情况,所有5个任务都挂在I/O上。因此,我的核心池大小达到了最大值,但我的ThreadpoolExector队列未满。所以额外的5个任务从未有机
我正在使用一个表单并提交一个表单,其中包括名字、姓氏、电子邮件、用户名等字段。当ajax返回时,它返回一个错误消息字符串。如何分离该错误消息?我正在使用这个代码