【问题标题】:can servlet-name be different in <servlet> and <servlet-mapping>?<servlet> 和 <servlet-mapping> 中的 servlet-name 可以不同吗?
【发布时间】:2014-05-27 00:10:56
【问题描述】:

这个 web.xml 有效吗?

servlet 和 servlet-mapping 中的 servlet-name 可以不同吗?

<web-app>
    <servlet>
        <servlet-name>Levensthein Servlet</servlet-name>
        <servlet-class>Levensthein</servlet-class>
    </servlet>
    <servlet-mapping>
       <servlet-name>Levensthein</servlet-name>
       <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

【问题讨论】:

    标签: java xml servlets


    【解决方案1】:

    不,它不能。

    servlet-name 元素必须匹配,这就是 servletservlet-mapping 元素如何绑定在一起。将其视为 id。

    如果您想为 servlet 添加描述,您可以使用description 元素。您也可以使用 cmets。

    【讨论】:

      【解决方案2】:

      不,因为这是将他们联系在一起的原因。

      【讨论】:

        【解决方案3】:

        不,这是无效的。 &lt;servlet&gt;...&lt;/servlet&gt;&lt;servlet-mapping&gt;...&lt;/servlet-mapping&gt; 标记中的 &lt;servlet-name&gt;...&lt;/servlet-name&gt; 必须相同,因为它将映射绑定到该特定 servlet。

        在服务器启动时保持两个不同的抛出错误。

            <servlet>
                <servlet-name>HelloWorld2</servlet-name>
                <servlet-class>com.servlets.HelloWorldServlet</servlet-class>
        
            </servlet>
            <servlet-mapping>
                <servlet-name>HelloWorld1</servlet-name>
                <url-pattern>/</url-pattern>
            </servlet-mapping>
        

        服务器启动时出错,因为容器找不到任何 servlet 名称为 HelloWorld1 的 servlet 条目:

        部署期间发生错误:部署应用程序时出现异常 [示例]:此处没有名称为 HelloWorld1 的 Web 组件。有关详细信息,请参阅 server.log。

        【讨论】:

          【解决方案4】:

          不,你不能那样做。

          因为您在部分中定义的 servlet 名称定义了 URL 模式,它充当了用于将其与类映射的 servlet 名称的标识符

          【讨论】:

            猜你喜欢
            • 2015-03-19
            • 2012-08-22
            • 2011-11-25
            • 2013-11-24
            • 2012-09-18
            • 1970-01-01
            • 2011-09-27
            • 2011-08-25
            • 1970-01-01
            相关资源
            最近更新 更多