java - Servlet/Tomcat 相对文件路径

标签 java jsp tomcat servlets

将文件放在 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 目录之外即可。

关于java - Servlet/Tomcat 相对文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680637/

相关文章:

java - 在 ant build.xml 中包含 Jar

java - 组织.hibernate.AnnotationException : @OneToOne or @ManyToOne on <entity> references an unknown entity

java - 带有 JAX-RX 的 REST API 从 jsp 页面中的表单发送和接收已解析的 JSON

jsp - ${pageContext.request.contextPath} 在本地工作正常,但实时显示空白

Tomcat 5.0.28 内存不足错误

mysql - OpenJPA + Tomcat JDBC 连接池 = 陈旧数据

java - JLabel 文本未出现

Java根据输入改变形状的颜色

java - java中使用itext将jsp转为pdf

tomcat - Tomcat 如何选择经过身份验证的远程用户