Java 如何使用GWT在服务器上保存/打开文件

Java 如何使用GWT在服务器上保存/打开文件,java,eclipse,gwt,birt,Java,Eclipse,Gwt,Birt,我有一个在GWT中创建的BIRT报告,我想将其保存到服务器,然后将其打开备份。我觉得对url进行硬编码是错误的做法(例如C:/files/foo/foo.html),但我没有太多运气找到另一种方法。我尝试使用GWT.getModuleBaseForStaticFiles(),但如果我使用它,我会在BIRT中得到一个不满意的链接错误。我可以使用什么来保存/打开文件,最佳做法是什么?谢谢 编辑:措辞错误,BIRT报告是在服务器端生成的。我希望能够将它保存到服务器端,然后在新的浏览器窗口中打开它(使用

我有一个在GWT中创建的BIRT报告,我想将其保存到服务器,然后将其打开备份。我觉得对url进行硬编码是错误的做法(例如C:/files/foo/foo.html),但我没有太多运气找到另一种方法。我尝试使用GWT.getModuleBaseForStaticFiles(),但如果我使用它,我会在BIRT中得到一个不满意的链接错误。我可以使用什么来保存/打开文件,最佳做法是什么?谢谢


编辑:措辞错误,BIRT报告是在服务器端生成的。我希望能够将它保存到服务器端,然后在新的浏览器窗口中打开它(使用window.open,我可以想象吗?)。没有从客户端上传任何内容

如果BIRT报告是一个静态文件(不是在应用程序运行时生成的),则可以创建一个简单的Servlet来读取该文件并将数据复制到响应的
输出流中。如果它是在运行时生成的,客户端将向服务器请求它,服务器将生成它并返回报告的URL位置。客户端可以使用该URL打开报表

例子:
如果BIRT位于foo/foo.bar下,则可以将servlet映射为/foo/*。映射后,用户将请求url
www.yourselver.com/foo/foo.bar
doGet
方法中的servlet可以读取文件并将内容流回到客户端。

Hi,如果您的文件位于客户端,并且您想将其保存到服务器,则必须使用某种上载机制将其发送到服务器。我推荐。我不熟悉BIRT,但是当您尝试从客户端使用服务器端方法/类时,会发生
不满意的链接错误。
GWT
类仅用于客户端。让我重新表述一下。报告是在服务器端生成的,我想在服务器端保存它,然后将其打开备份。不需要上传任何内容,因为客户端没有创建任何内容。在这种情况下,关键是要获得正确的URL。如果您确定该URL对客户端可见(通过在浏览器上访问来测试),那么您可以结合使用
GWT.getModuleBaseURL()
GWT.getModuleName()
来帮助您解析正确的URL。然后可以使用
Window.open()
打开客户端的URL。另外,我忘了提一件事。确保您的报告保存在
WAR
目录中的某个位置。这是我先前的建议唯一有效的方法。一个好的路径是
war/PROJECT\u NAME/
我知道您提到了
C:/files/foo/foo.html
,但是当您将应用程序部署到web服务器时,该目录将不相同。我尝试使用“GWT.GetModuleBaseURL()”和“GWT.getModuleBaseForStaticFiles()”对其进行测试,它们都给我一个客户端看不到的url(我得到一个404错误)。事实上,它在我的测试中是同一个url。让我重新表述一下。报告是在服务器端生成的,我想在服务器端保存它,然后将其打开备份。不需要上传任何内容,因为客户端没有创建任何内容。嘿,我没有时间创建模拟。但这解释了我的意思。只需将JSP代码替换为h GWT:嗨,Andre,你能给出一个替代它的GWT代码的例子吗?doGet方法有输入参数,而JSP代码没有(我不熟悉JSP)。有没有一种特殊的实现方法?