如题,我在文件下载时按下F5 刷新,后台报错java.lang.ArrayIndexOutOfBoundsException
显示是write(i)这一行。。请各位大侠帮帮忙,怎样解决
本人菜鸟……
显示是write(i)这一行。。请各位大侠帮帮忙,怎样解决
本人菜鸟……
解决方案 »
- 一个过滤器的问题
- 我的问题是一个页面弹出另一个页面,然后灰掉第一个页面;
- 如何将数据库中查询出来的数据写成txt文件,让用户下载到客户端???
- 心跳程序
- 在struts中点击链接后将链接文字显示到文本框?
- applet是否能够设置客户端的path?一个dll文件能不能和jar文件一样被自动下载到本地!并能被调用?
- 怎样在JSP中显示已经查询出来的历史记录?(仔细看下内容)
- 请问如何在jb9下配置javamail包,有谁知道javamail在sun哪里可以下?
- JSP里面,怎样发送EMAIL,需要什么环境还是什么API?具体给出个列子?
- cookie奇怪问题
- javamail 接收邮件内容乱码问题
- oracle update 在线等
new FileInputStream(exportFile.getPath()));
response.reset();
response.setContentType("application/pdf");
String filename = new String(
filePath.getBytes("GBK"), "ISO8859_1").trim();
response.setHeader("Content-Disposition","inline;attachment;filename="+filename);
out = new BufferedOutputStream(response.getOutputStream());
int i = 0;
while ((i = in.read()) != -1) {
out.write(i);
}
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
catch (Exception e)
{
File file;
e.printStackTrace();
}
finally
{
File file;
if (out != null) {
try {
out.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
错误信息:
12/10/30 11:01:55 java.lang.ArrayIndexOutOfBoundsException
12/10/30 11:01:55 at java.lang.System.arraycopy(Native Method)
12/10/30 11:01:55 at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:216)
12/10/30 11:01:55 at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:151)
12/10/30 11:01:55 at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
12/10/30 11:01:55 at java.io.BufferedOutputStream.write(BufferedOutputStream.java:79)
out.write(buffer,0,i);//为什么不用这个write方法?buffer是缓存大小,自己定义1024的倍数都可以
}
不知道你的下载代码有没有做session同步?没有的话就同步吧
就是让你的下载代码在同一个session中串行化,也就是在同一个session中下载代码不能并行执行。
在下载代码中:
获取session,对session加锁。
synchronized (session) {
//下载代码放在这里
}