日期:2014-05-18  浏览次数:20787 次

在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还没整个读完的时候,你再去点击的话,就出现在这异常了。正常的,不影响啥。