Czy istnieje sposób na filtr serwletów, aby uzyskać listę wszystkich serwletów i ich odwzorowań?W jaki sposób introspekcja web.xml z serwletu?
5
A
Odpowiedz
4
Nie ma standardowego interfejsu API (już było, a co było dość ograniczone) - ale jest to plik XML ze standardowym schematem. Można go otrzymać w filtrze poprzez:
filterConfig.getServletContext().getResource("/WEB-INF/web.xml");
i dostać to, czego chcesz od niego przy użyciu SAX/DOM/XPath/co masz, na przykład
InputStream is = filterConfig.getServletContext()
.getResourceAsStream("/WEB-INF/web.xml");
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document document = builder.parse(is);
NodeList servlets = document.getElementsByTagName("servlet");
+0
Spada to nieco w EE6, gdzie serwlety można definiować za pomocą adnotacji i plików web-fragment.xml. To samo podejście można jednak zastosować do tych; to tylko prosta sprawa programowania. –
Nie używanie standardowego interfejsu API. Konkretne kontenery mogą Ci to umożliwić, ale to zależy od twojego kontenera. – skaffman
To dziwne, że kiedyś istniały interfejsy API dla takich rzeczy, ale zostały usunięte. – jsight