Получение информации о файле, упакованном / включенном в jar-ресурсы, работающие в контейнере сервлета - PullRequest
0 голосов
/ 27 августа 2018

Из 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()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...