1

以下のコードを使用するとします。Setpaths=servletCtxt.getResourcePaths( "/ app / themes");

パス内のパスがディレクトリなのか実際のファイルなのかをどのように判断できますか?

これは通常、圧縮された戦争になります。

私が見つけたのはこれですが、信頼できないと思います。

ファイルの場合

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を使用できると言っても安全ですか?

ありがとう

4

1 に答える 1

3

テストせずに、JavaDocで次のように表示されますgetResourcePaths()

サブディレクトリパスを示すパスは/で終わります。

[...]

たとえば、次のものを含むWebアプリケーションの場合:

  • /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("/")戻るだろう戻る{"/welcome.html", "/catalog/", "/customer/", "/WEB-INF/"}, and getResourcePaths("/catalog/")だろう{"/catalog/index.html", "/catalog/products.html", "/catalog/offers/", "/catalog/moreOffers/"}

パスの最後の文字だけに頼ることができるようです。

于 2012-04-19T18:59:58.137 に答える