【问题标题】:Tomcat redirecting to old fileTomcat重定向到旧文件
【发布时间】:2013-07-29 19:07:42
【问题描述】:

我在使用 tomcat 6 和重定向时遇到问题。我的 servlet 创建了一个在 tomcat 服务器上生成文件的类。在 servlet 的 post 方法结束时,我调用了 redirect 方法,以便用户可以下载此文件。用户被重定向并提示下载文件。问题是文件过时了。这是在我启动 tomcat 服务器之前存在的文件。我什至尝试在重定向之前让线程休眠。任何想法为什么他们被重定向到这个不再存在的陈旧文件?

我正在使用 eclipse 启动一个 tomcat 服务器。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String outputName = "XXX\\workspace\\BlahOnline\\WebContent\\Blah.xlsm";
    String redirect = "Blah.xlsm";
    response.sendRedirect(redirect);
} 

编辑:没关系,我找到了一种使用 servlet 中的代码下载文件的更好方法。这个帖子帮了大忙:Download mp3 file from Tomcat server with Java servlet

【问题讨论】:

  • 向我们展示代码。文件是否保存到下载文件的同一位置?
  • 是的,它具有相同的路径,并且也出现在同一目录中。 (它正在覆盖那里的文件)
  • 向我们展示文件下载是如何完成的。
  • 如果重定向返回浏览器,然后才返回文件的目标 URL,那么浏览器可能使用了浏览器缓存的文件。
  • 我认为这可能是问题所在,有没有办法清除缓存?

标签: java tomcat tomcat6


【解决方案1】:

也许有类似 TTL (timeToLife) 的东西可以使服务器输出与几分钟前相同。如果 TTL 是一小时,它将输出相同的一小时。只有在这个小时之后,它才会更新答案文件。

检查一下你的 Tomcat 服务器的 TTL 配置。

【讨论】:

    【解决方案2】:

    我找到了一种从 tomcat 下载文件的更好方法。我使用 Streams 而不是将用户重定向到文件。这个帖子帮了大忙:Download mp3 file from Tomcat server with Java servlet

    【讨论】:

      猜你喜欢
      • 2015-08-10
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 2016-12-25
      • 2017-09-25
      • 1970-01-01
      相关资源
      最近更新 更多