Java 在哪里保存应可编辑和可下载的XML?
所以我有一个web应用程序(使用ApacheTomcat服务器、servlet和EclipseIDE)。我编写了允许用户通过UI编辑XML文件的代码。因此,我使用以下代码通过java访问XMLJava 在哪里保存应可编辑和可下载的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编辑文件 现在我想让客户端下载文件。但我无法在尝试下载时访问该文件。 但是,如果
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