6

我的应用程序中有一个 Servlet 映射,但没有为它定义一个 servlet。

Eclipse 会对其产生警告:

The servlet mapping "/docs/*" refers to a servlet that is not defined
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/docs/*</url-pattern>
</servlet-mapping>    

没有定义的 servlet 默认值。但这只是一个警告,应用程序本身运行良好,并提供来自该 url 模式的内容。

是否有处理这些 servlet 映射的“默认”servlet?如果不?这甚至是如何工作的?

附加信息

我有另一个像这样的映射,它有一个 servlet:

com.sun.jersey.spi.spring.container.servlet.SpringServlet
<servlet-mapping>
    <servlet-name>springDispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

所以对Kayaman的回答。如果我删除“冗余”映射。/docs 功能停止工作。

我真正想要的是知道什么 servlet 是默认的,这样我就可以为我的映射创建一个 servlet 并避免警告。

谢谢。

4

2 回答 2

6

甲骨文文档:

每个 Web 应用程序都有一个默认的 servlet。此默认 servlet 可以是您指定的 servlet,或者,如果您未指定默认 servlet,WebLogic Server 使用称为 FileServlet 的内部 servlet 作为默认 servlet。

您可以将任何 servlet 注册为默认 servlet。编写自己的默认 servlet 允许您使用自己的逻辑来决定如何处理回退到默认 servlet 的请求。

设置默认 Servlet

Tomcat 特定

于 2013-09-16T11:09:52.853 回答
1

是的,正在使用处理静态数据的默认 servlet。您已经创建了一个 servlet 映射,但实际上您只是在使用 servlet 容器的默认的类似 HTTP 服务器的行为。

这是不必要的。

于 2013-09-16T11:06:58.187 回答