【问题标题】:where to keep an XML that should be editable and downloadable?在哪里保存应该可编辑和可下载的 XML?
【发布时间】:2014-09-06 11:43:36
【问题描述】:

所以我有一个网络应用程序(使用 apache tomcat 服务器、servlets、eclipse IDE)。我编写了代码以允许用户通过 UI 编辑 XML 文件。所以我使用下面的代码通过java访问XML

 String fileName = "/MyXML.xml"; 
 String path = this.getClass().getResource(fileName).toString();

这很好用。我可以通过 UI 编辑文件。

现在我想让客户端下载文件。但是我在尝试下载时无法访问该文件。 但是,如果我将文件保存在 webapps 文件夹中,则可以使用以下命令访问该文件

ServletContext ctx = getServletContext();
InputStream is = ctx.getResourceAsStream("/MyXML.xml"); 

(谢谢Mr.MK Yong-http://www.mkyong.com/servlet/servlet-code-to-download-text-file-from-website-java/)

但是如果我将它保存在 webapp 文件夹中,我如何访问该文件以编辑 XML?

所以基本上我可以编辑文件,或者我可以下载文件(从 webapp 文件夹),或者我可以在文件的两个不同副本上执行这两项操作。我想编辑 XMl 文件并能够下载它。那么我将文件保存在哪里以及如何访问它呢?

【问题讨论】:

    标签: java xml tomcat servlets web-applications


    【解决方案1】:

    您应该将其存储在本地资源文件夹中,因为它本质上是一个动态资源。

    我建议的另一件事是,如果您知道将要更改的参数,则在资源文件夹中有一个模板并将更改存储在数据库中。

    我个人有第二种方式。

    例如

    /yourapp/resource/config_file/xmltemplate.xml
    

    可以改变的参数:

    userLocation
    folderLocation
    colorBase
    

    将它们存储在表格中:

    Table: UserCongifStorage
    Columns: userLocation, folderLocation, colorBase
    

    所以当我需要使用第 1 行的数据时,逻辑是:

    将xml文件读入字符串,用从数据库中检索到的数据替换变量,将其作为xml输出到资源文件夹。

    然后你阅读使用。

    希望有帮助

    【讨论】:

    【解决方案2】:

    如果该文件位于您的“webapp”文件夹中(我认为您的意思是您的应用程序根目录),那么每个人都可以通过调用 hxxp://domainname/appname/MyXML.xml 来访问它。我建议您不要将可编辑的文件存储在您的应用文件夹中,因为如果您重新部署应用程序,它们将被覆盖。

    将它们放在外部目录中并像处理所有其他文件一样加载内容。这样做您也可以轻松控制文件权限。

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      • 2011-08-14
      相关资源
      最近更新 更多