java - 确定来自 ServletContext 的资源是文件还是目录

标签 java servlets

假设我们使用下面的代码 设置路径 = servletCtxt.getResourcePaths("/app/themes");

我们如何判断路径中的路径是目录还是实际文件?

这通常是一场紧张的 war 。

我确实找到了这个,但我打赌它不可靠:

当它是一个文件时

servletCtxt.getResource(dir).getContent()
    returned (java.io.ByteArrayInputStream) java.io.ByteArrayInputStream@5a645a64

当它是一个目录时它返回:

(org.apache.naming.resources.FileDirContext) org.apache.naming.resources.FileDirContext@57155715

可以安全地说我可以对 getContent 返回的内容使用带有 InputStream 的 instanceof 吗?

谢谢

最佳答案

未经测试,我在 getResourcePaths() 的 JavaDoc 中看到以下内容:

Paths indicating subdirectory paths end with a /.

[...]

For example, for a web application containing:

  • /welcome.html

  • /catalog/index.html

  • /catalog/products.html

  • /catalog/offers/books.html

  • /catalog/offers/music.html

  • /customer/login.jsp

  • /WEB-INF/web.xml

  • /WEB-INF/classes/com.example.OrderServlet.class

  • /WEB-INF/lib/catalog.jar!/META-INF/resources/catalog/moreOffers/books.html

getResourcePaths("/") would return {"/welcome.html", "/catalog/", "/customer/", "/WEB-INF/"}, and getResourcePaths("/catalog/") would return {"/catalog/index.html", "/catalog/products.html", "/catalog/offers/", "/catalog/moreOffers/"}.

似乎您可以简单地依赖路径的最后一个字符。

关于java - 确定来自 ServletContext 的资源是文件还是目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10234813/

相关文章:

java - 如何在android中使数组列表的数组列表可分割

java - 如何动态获取同一 EAR/应用程序中另一个 Web 模块的上下文根

jsp - 防止用户在注销后看到以前访问过的安全页面

java - Akka 没有在 Servlet 中完全关闭

spring - 了解 spring 调度程序 servlet 初始化

java - 如何防止Vaadin 10长时间处理时出现连接松动?

java - 即使显示为未使用的导入实际上并未在类中使用,编译器警告也会显示

java - 是否有 BiConsumer 的反向映射到元组等多个值

java - 是否可以更改 httpservletrequest 对象

java - 从 eclipse 插件上下文中使用 JUnit4TestAdapter 的问题