代码之家  ›  专栏  ›  技术社区  ›  jsight TaherT

如何从servlet内省web.xml?

  •  5
  • jsight TaherT  · 技术社区  · 15 年前

    有没有一种方法让servlet过滤器获取所有servlet及其映射的列表?

    1 回复  |  直到 15 年前
        1
  •  4
  •   ChssPly76    15 年前

    没有标准的API(现在已经没有了,以前的API也相当有限了),但它是一个带有标准模式的XML文件。您可以通过以下方式在过滤器中获得:

    filterConfig.getServletContext().getResource("/WEB-INF/web.xml");
    

    并使用sax/dom/xpath/你有什么,例如

     InputStream is = filterConfig.getServletContext()
       .getResourceAsStream("/WEB-INF/web.xml");
     DocumentBuilder builder = DocumentBuilderFactory.newInstance()
       .newDocumentBuilder();
     Document document = builder.parse(is);
     NodeList servlets = document.getElementsByTagName("servlet");