2014-10-09 155 views
3

我想要做的是读取html文件的内容。点击链接时,应该阅读html文件的内容,并且该内容将在我的代码中被使用。绝对路径的相对URL

我的尝试:

我试过相对路径转换为绝对路径

String absoluteFilePath = servletContext.getRealPath("/html/en/TestPage.html"); 

,这工作正常的WebLogic窗口 dev的机器,但是当这种代码部署到webloic on Unix机器上面的代码返回null。我挖谷歌,我发现如果servlet容器不能 虚拟路径转换成以任何理由(一个真正的通路时,正在提供从该 内容如

“的ServletContext.getRealPath返回null。战争档案)“。

你能否建议最好的方式将相对路径转换为绝对路径(使用上下文路径)。代码应该在Windows和Unix平台上工作,或者其他方式读取html文件,而不是从绝对路径读取,如果我可以从相对路径读取文件文件。

+0

什么服务器您使用的?你能告诉我们servletcontext的全限定类名吗? – 2014-10-09 08:45:50

+2

似乎重复http://stackoverflow.com/a/12160863/2078908 – ursa 2014-10-09 09:05:50

+1

可能重复[什么是“/”在方法'servletcontext.getRealPath'中的意思](http://stackoverflow.com/questions/12160639/ what-does-mean-in-the-method-servletcontext-getrealpath) – 2014-10-09 09:55:39

回答

1

你只能使用getRealPath(...)如果战争是爆炸,但你总是可以阅读下的servlet上下文根文件与getResource(...)getResourceAsStream(...)。在你的榜样,它会变成:

InputStream is = servletContext.getResourceAsStream("/html/en/TestPage.html"); 

然后你就可以安全地读取它...