Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在哪里保存应可编辑和可下载的XML?_Java_Xml_Tomcat_Servlets_Web Applications - Fatal编程技术网

Java 在哪里保存应可编辑和可下载的XML?

Java 在哪里保存应可编辑和可下载的XML?,java,xml,tomcat,servlets,web-applications,Java,Xml,Tomcat,Servlets,Web Applications,所以我有一个web应用程序(使用ApacheTomcat服务器、servlet和EclipseIDE)。我编写了允许用户通过UI编辑XML文件的代码。因此,我使用以下代码通过java访问XML String fileName = "/MyXML.xml"; String path = this.getClass().getResource(fileName).toString(); 这个很好用。我可以通过UI编辑文件 现在我想让客户端下载文件。但我无法在尝试下载时访问该文件。 但是,如果

所以我有一个web应用程序(使用ApacheTomcat服务器、servlet和EclipseIDE)。我编写了允许用户通过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"); 
(谢谢MK Yong先生-)

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


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

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

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

就我个人而言,我有第二种方法

e、 g

可以更改的参数:

userLocation
folderLocation
colorBase
将它们存储在表中:

Table: UserCongifStorage
Columns: userLocation, folderLocation, colorBase
因此,当我需要使用第1行的数据时,逻辑是:

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

然后你阅读以了解用法


希望这对您有所帮助

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


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

谢谢Aeseir!但是如何访问资源文件夹?我希望有一些java代码可以从资源文件夹中获取文件的路径和输入流。这取决于您如何设置资源,我的建议是先看一下这些内容,以进一步了解它
Table: UserCongifStorage
Columns: userLocation, folderLocation, colorBase