【发布时间】: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,那么浏览器可能使用了浏览器缓存的文件。
-
我认为这可能是问题所在,有没有办法清除缓存?