在jsp中显示word的问题,实在郁闷,请高手帮帮忙!
页面是用的框架结构,左边一个left.jsp,中间是main.
left.jsp里就一句话 :
<a href="servlet/LookFileServlet" target="main" >查看</a></td>
调用 的 LookFileServlet具体代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws
ServletException,
IOException {
String filePath = "d:/file/1.doc";
String fileName = "1.doc";
response.setContentType("Application/msword");
response.setHeader("Content-Disposition","filename="+fileName);
OutputStream out = response.getOutputStream();
byte[] bs = new byte[2048];
FileInputStream fis = new FileInputStream(filePath);
for( int i = fis.read(bs); i > -1; i = fis.read(bs)){
System.out.println("555")
out.write(bs,0,i);
}
fis.close();
out.close();
return;
}
就很简单的代码,出现的问题是:
当第一次点 “查看”连接,main中正常显示 1.doc的内容。但第二次再点 “查看”连接,main中空白,啥都不显示。第三次点 “查看”连接,main中还是正常显示 1.doc的内容。第四次还是一片空白。第五次点击又是好的了。就这样一直循环下去的情况。
我跟踪的时候,第二次显示不正常的情况是 "555"打印到一半就没有了,停在那里不动了。
我不知道是什么情况,还请高手能帮帮忙解决。谢谢了。
------解决方案--------------------
你这问题我也遇见过的,你需要做两次跳转的。先发送给一个jsp,然后再发给servlet,这样就正常了。 还有你那个异常也是正常的。当一个word还没整个读完的时候,你再去点击的话,就出现在这异常了。正常的,不影响啥。