Servlet / Tomcat相对文件路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet / Tomcat相对文件路径相关的知识,希望对你有一定的参考价值。
将文件放在Tomcat Servlet应用程序中的位置,以使它们对页面相对可见?
更多细节:我在使用外部库时开发servlet页面。该库大量依赖于外部加载的XML文件(相对文件路径)。所以我需要将这些XML文件放在servlet的运行目录中。
在Tomcat服务器中有没有办法可以相对访问文件?
将Web应用程序部署到Tomcat时,Web应用程序的根目录最终为$ CATALINA_HOME / webapps / YOUR_WEB_APP /
因此,如果使用servlet访问位于Web应用程序根目录中的路径上的XML文件,则可以使用以下命令:
request.getServletContext().getResourceAsStream("PATH/TO/YOUR/XML_FILE.xml")
这将加载XML文件作为InputStream
。当然,如果你想要访问文件本身,你总是可以使用getResource(String resource)
方法来获得URL
,从中可以获得File
对象(包括替代方法):
File f;
try {
f = new File(url.toURI());
} catch(URISyntaxException e) {
f = new File(url.getPath());
}
编辑:要使它们对Web浏览器相对可见,只需将它们保留在./WEB-INF和./META-INF目录之外。
如果你正在谈论的这个库将要在类路径上搜索文件(比如Hibernate或Log4J会这样做),你必须将你的XML文件放在WEB-INF中。但是,我建议你不要手动执行此操作。您可以将文件放在应用程序的源目录中,这将确保文件部署在正确的位置。
这是一个老问题。我正在使用Tomcat 9.我以Tomcat安装目录为基础已经非常成功。 (CATALINA_HOME)例如,ROOT中文件的相对路径是“webapps / ROOT / someDir / fileName”
抱怨重复答案的地方是处理重复的问题。
以上是关于Servlet / Tomcat相对文件路径的主要内容,如果未能解决你的问题,请参考以下文章
springboot报错说 Failed to parse multipart servlet request; nested exception is java.io.IOException(代码片
JavaLearn#(23)JSP相关语法HTTP协议Servlet介绍Servlet生命周期请求和响应相对路径转发和重定向