-1

我正在开发一个 Eclipse Web 动态项目,并尝试访问存在于我的本地机器/服务器中的文件。

我正在寻找类似 CodeIgniter 中的“base_url()”的东西,它会自动指向服务器所在的目录。

我正在使用 Mac。

try{
          model.read(new FileInputStream(url),"");
      }catch(IOException e)
      {
          System.out.println("Exception caught"+e.getMessage());
      }

这是我正在处理的代码的一部分,我试图提供正确的 URL 路径以供阅读。

在搜索 StackOverflow 和其他地方后,我遇到了这段代码:

String url = request.getRequestURL().toString().replace(request.getRequestURI().substring(1), request.getContextPath())
            +"/WebContent/WEB-INF/test.xml";

这似乎不起作用。

然后我尝试对路径目录进行硬编码,结果发现我不知道 Mac 文件系统是如何工作的:/

任何人都可以分享一些关于这一点的信息吗?

先感谢您

4

3 回答 3

0

servlet如果您使用的是 a或其他东西(如 WS),我不太了解,但是该request对象公开了一个名为的方法,该方法getRealPath()很好地提供了……文件系统中 servlet 上下文的真实路径。

所以你需要用这个来改变你的代码:

String url = this.getServletContext().getRealPath("")+"/test.xml";

它与操作系统无关,因为您肯定知道 java 是可移植的。

于 2012-05-24T18:34:48.633 回答
0

我想你想要的是

String path = getServletContext().getRealPath("/");

指向服务器中应用程序的 bas 目录

e.g. /opt/tomcat/webapps/MyApp
于 2012-05-24T18:44:30.840 回答
0

我总是使用 getResourceAsStream 并将其从我的课程路径中吸走。平面文件名在 Web 应用程序内部存在问题。

于 2012-05-24T18:47:43.863 回答