所以我有一个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文件并能够下载它。那么我在哪里保存文件以及如何访问它?
答案 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文件夹中存储可以编辑的文件,因为如果重新部署应用程序,它们将被覆盖。
将它们放在外部目录中并像加载所有其他文件一样加载内容。这样做,您也可以轻松控制文件权限。