tomcat9在运行时添加webapi

7tofc5zh  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(120)

当我创建一个webapi时,我必须在web.xml中声明相关的class/url

<servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>/myServlet.htm</url-pattern>
        <!-- WebApi -->
        <url-pattern>/Timbrature2/*</url-pattern>
        <url-pattern>/Timbrature2.json/*</url-pattern>
        <url-pattern>/Timbrature2.xml/*</url-pattern>
        <url-pattern>/Timbrature/*</url-pattern>
        <url-pattern>/Timbrature.json/*</url-pattern>
        <url-pattern>/Timbrature.xml/*</url-pattern>
        <url-pattern>/TimbratureMobile/*</url-pattern>
        <url-pattern>/TimbratureMobile.json/*</url-pattern>
        <url-pattern>/TimbratureMobile.xml/*</url-pattern>
        <url-pattern>/$metadata</url-pattern>
    </servlet-mapping>

但是如果我的webapp从jars动态代码加载,我可以添加一个“新”类来用作REST端点吗?
阅读Apache文档,尝试各种配置,但一无所获

8tntrjer

8tntrjer1#

如果希望一个servlet处理所有事情,可以将其注册到广泛的URL模式,如

<url-pattern>/api/*</url-pattern>

值得一阅读的是Servlet Specification,特别是12.2节(在4.0版本的规范中),其中涵盖了“Map规范”。
另一种选择是在代码中使用@WebServlet注解(在上面的文档的8.1.1节中介绍)来从代码中建立Map。我更喜欢web.xml中的声明式Map,因为所有Map都位于同一位置,而不是分散在任意的源文件中,这些源文件的源代码可能并不总是可用的。

相关问题