我有这个问题铬随机提交我的请求两次因某些我不知道的原因,我在这里解释,https://stackoverflow.com/questions/30444861/servlet-called-twice-when-loading-small-pdf-files-on-chrome,我非常想要一个避免双重提交的解决方案但是现在补丁将不得不做。
在我的servlet中,我使用下一行代码读取和编写PDF:
FileInputStream archivo = new FileInputStream(nFile);
int longitud = archivo.available();
byte[] datos = new byte[longitud];
archivo.read(datos);
archivo.close();
OutputStream ouputStream = response.getOutputStream();
ouputStream.write(datos);
ouputStream.flush();
ouputStream.close();
因此,每当chrome double提交时,我都会在行处获得损坏的管道异常:
ouputStream.write(datos);
我第二次尝试写信给它。
如何在尝试编写“ouputStream”之前验证“ouputStream”是否有效,这样就不会抛出异常?
或者更好的是,我可以在过滤器上验证它吗?
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {
if (request instanceof HttpServletRequest) {
filterChain.doFilter(request, response);
}
}
我如何验证我可以在这行代码中写入响应?
filterChain.doFilter(request, response);
此外,它需要是一个servlet 2.3解决方案。