我想要做的是阅读html文件的内容。点击一个链接,应该读取html文件内容,并在我的代码中使用该内容。
我尝试了什么:
我尝试将相对路径转换为绝对路径
String absoluteFilePath = servletContext.getRealPath("/html/en/TestPage.html");
这可以在我的 windows 开发计算机上的 weblogic 中正常工作,但是当此代码部署到 webloic Unix 机器上面的代码返回null。我挖了谷歌,我找到了
“如果servlet容器无法转换,则servletContext.getRealPath返回null 出于任何原因(例如当时的路径)到真实路径的虚拟路径 内容正在从.war档案中获得。“
您能否建议将相对路径转换为绝对路径(使用上下文路径)的最佳方法。如果我可以从相对路径读取文件文件,代码应该在Windows以及Unix平台或其他方式上工作以读取html文件,而不是从绝对路径读取。
答案 0 :(得分:1)
如果战争爆炸,您只能使用getRealPath(...)
,但您始终可以读取具有getResource(...)
或getResourceAsStream(...)
的servlet上下文根目录下的文件。在您的示例中,它将变为:
InputStream is = servletContext.getResourceAsStream("/html/en/TestPage.html");
然后你可以安全地阅读它......