Из java servlet 3.0 Spec можно иметь любые статические файлы ресурсов в WEB-INF / lib / *. Jar и только в * .jar, чтобы иметь: META-INF / resources directory / folder и в браузере можно запросить ресурсы по «контекстному пути»:
Например: у меня есть: apptest / WEB-INF / lib / test1.jar
В test1.jar у меня есть:
META-INF / ресурсы / JS / script1.js
тогда я могу запросить в браузере:
http://srv/apptest/js/script1.js
Есть ли возможность в сервлете / фильтре / ... с использованием "виртуального пути":
"JS / script1.js"
чтобы получить «дату изменения» и «время модификации» и другую информацию статического файла «script1.js»?
Спасибо.
EDIT:
Самое близкое, что я могу получить, это использовать:
Где-то у меня pagctx
как javax.servlet.jsp.PageContext
, затем:
String virtualPath = "js/script1.js";
ServletContext svltctx = pagctx.getServletContext()
URL url = svltctx.getResource(virtualPath);
strFilePath = url.getFile();
File rscFile = new File(strFilePath);
выход
файл: / C: / _ t / apptest / WEB-INF / lib / test1.jar! /META-INF/resources/js/script1.js
rscFile.exists()
вернет false
и
rscFile.lastModified()
вернется 0
и потому что он возвращает rscFile.exists() = false
может быть, я должен использовать: File.getParent()
и вызывать его для каждого «фрагмента пути», чтобы добраться до файла JAR, а затем открыть / распаковать файл JAR и получить упакованный файл «js / script1.js» и получить File.lastModified()
?