在Web服务器中写入文件而不指定实际路径

时间:2012-08-31 22:15:22

标签: java jsp servlets file-io filewriter

在我的应用程序中,我有一个功能,我需要在webcontent文件夹中写一个文件,我有一个名为data的文件夹,我需要写一个新名称,如果我给出了真正的路径(C:\ Users \ SanWin) \ workspace \ RoleAccessControl \ data \ ActivityLog.txt)它写的文件但是当项目要在不同的机器上运行时这必须改变,所以我用它来获取真正的路径

ServletContext ctx = getServletContext();
        String path = ctx.getRealPath("/data/ActivityLog.txt");
        System.out.println(path);

当我打印时,我在控制台中收到以下消息

  

C:\用户\ SanWin \ workspace.metadata.plugins \ org.eclipse.wst.server.core \ TMP0 \ wtpwebapps \ RoleAccessControl \数据\ ActivityLog.txt

我不知道系统如何获得这一行

  

.metadata.plugins \ org.eclipse.wst.server.core \ TMP0 \ wtpwebapps \

这是在日食中,我期待着类似的东西 的 C:\用户\ SanWin \工作空间\ RoleAccessControl \数据\ ActivityLog.txt

如何获得我想要摆脱线条的真实路径(.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps),我看起来并且做了我在网上看到的所有可能,但是失败了,对不起,如果我发了一个重复的帖子,请原谅我 感谢您的时间和回复

1 个答案:

答案 0 :(得分:2)

在Eclipse的Servers视图中,您可以双击服务器以打开配置屏幕,该屏幕允许您设置不同的部署路径(至少在Tomcat中)。请注意,您只能在未部署任何内容时修改该设置,否则您将看到灰色显示的选项。

enter image description here

您获得的.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\是因为您拥有使用工作空间元数据选项。

无论如何,如果您将战争直接手动部署到Tomcat webapps文件夹中,而没有Eclipse,您将获得正确的路径。

换句话说,您的代码是正确的并且为您提供了正确的路径,您只是不喜欢部署应用程序的路径。

希望这有帮助。