Servlet - web.xml 与 Java 配置

Servlet - web.xml vs Java config

我正在将一个旧项目从 web.xml 方法迁移到完整的 Java 风格的 Servlet 3.0 配置。

但是我无法理解如何翻译 Java 代码中的部分 XML 配置。特别是下一个片段:

<jsp-config>
    <taglib>
        <taglib-uri>....</taglib-uri>
        <taglib-location>....</taglib-location>
    </taglib>
</jsp-config>

欢迎任何提示!

作为次要的、更具学术性的问题:Servlet 3.0 API 是否全面涵盖了您可以使用 XML 做什么?

斯特凡诺,

从JSP 2.0开始,就不需要在web.xml中放入<taglib>标签了。来自 Head First Servlets 和 JSP 书:

The Container automatically builds a map between TLD files and names, so that when a JSP invokes a tag, the Container knows exactly where to find the TLD that describes the tag. How? By looking through a specific set of locations where TLDs are allowed to live. When you deploy a web app, as long as you put the TLD in a place the Container will search, the Container will find the TLD and build a map for that tag library.

因此,您所要做的就是拥有一个具有正确 URI 的 TLD 文件。

放置您的 TLD 文件的地方:

  • 直接在WEB-INF里面
  • 直接在 WEB-INF 的子目录中
  • 在 JAR 文件里面的 META-INF 目录里面 WEB-INF/lib
  • 在 JAR 文件里面的 META-INF 的子目录里面 WEB-NF/lib