在哪里保留应该可编辑和可下载的XML?

时间:2014-07-16 04:50:48

标签: java xml tomcat servlets web-applications

所以我有一个Web应用程序(使用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文件并能够下载它。那么我在哪里保存文件以及如何访问它?

2 个答案:

答案 0 :(得分:1)

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

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

我个人认为第二种方式。

e.g。

/yourapp/resource/config_file/xmltemplate.xml

可以更改的参数:

userLocation
folderLocation
colorBase

将它们存储在表格中:

Table: UserCongifStorage
Columns: userLocation, folderLocation, colorBase

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

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

然后你阅读使用。

希望有所帮助

答案 1 :(得分:1)

如果该文件位于您的' webapp'文件夹(我认为你的意思是你的应用程序根目录),然后通过调用hxxp://domainname/appname/MyXML.xml它已经可以访问所有人。我建议您不要在app文件夹中存储可以编辑的文件,因为如果重新部署应用程序,它们将被覆盖。

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