【问题标题】:Explanation for servlet and servlet-mapping in web.xmlweb.xml 中 servlet 和 servlet-mapping 的说明
【发布时间】:2012-08-22 15:35:11
【问题描述】:
<servlet>
    <servlet-name>PerformReg</servlet-name>
    <servlet-class>com.PerformRegistartion</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>PerformReg</servlet-name>
    <url-pattern>/PerformReg</url-pattern>
</servlet-mapping>

根据我的说法,上面的代码用于将servlet-class 与其url-pattern 映射。
但是我有一个疑问,为什么他们(Java 专家)会这样做(为什么他们制作了 servletservlet-mapping 两个单独的标签)。
他们本可以做如下所述的事情:

<servlet>
    <servlet-class>com.PerformRegistartion</servlet-class>
    <url-pattern>/PerformReg</url-pattern>
</servlet>

这可能会使它更简单。前面提到的代码中servlet-name有什么需要?

请帮我解开疑惑。

提前谢谢你。

【问题讨论】:

  • 这个问题应该显示出一些研究成果。在提出类似问题之前,请尝试使用 google 或其他可以提供帮助的答案
  • @Sajith 我的问题与您建议的链接不同。我想问“为什么我们需要 servlet-name?”在第二个代码块中,我编写了服务于 servlet-class 和 url-pattern 之间映射的代码。
  • 你的问题可能会得到回答here
  • 使用 servlet 名称,您可以将单个 Servlet 映射到多个 url 模式,它允许将过滤器映射到特定的 Servlet。见这里:stackoverflow.com/questions/8198312/…

标签: java eclipse jsp servlets web.xml


【解决方案1】:

web.xml 中,我们首先使用提供唯一名称的&lt; servlet &gt; 元素配置servlet,即在&lt; servlet-name &gt; 标记中,并将servlet 的类名写入&lt; servlet-class &gt; 标记中。

其次,我们使用&lt; servlet-mapping &gt; 元素将此servlet 映射到URL 或URL 模式。 &lt; servlet-name &gt; 元素用于指定 servlet 的名称,当传入的 URL 与指定为 &lt; url-pattern &gt; 元素的值的模式匹配时,应调用该名称。

【讨论】:

    【解决方案2】:

    名称始终是类的唯一标识。这里 serlvelt-class 可能会出现两次,但是我们所说的 servlet 应该是唯一的。这将由 servlet 名称标识。如果您在 struts1 或 struts2 或 spring 中看到名称,则会在 spring id 中有名称。但无论是姓名还是身份证,都应该是强制性的。

    在 servlet 中,servlet 类也仅由 servlet 名称触发,而不是由 servlet 类触发。因为一个类将执行许多不同的操作。每个动作都应该通过名称来识别。

    【讨论】:

    • 以后,不要在您的帖子中包含指向您网站的无关链接。这样做会将您的帖子和帐户标记为垃圾邮件。我正在为你删除这篇文章中的链接。
    【解决方案3】:

    在 web.xml 中,您使用 servlet-name 作为 servlet 的唯一引用。 此名称标识 servlet,并可与过滤器等一起使用。 这不仅仅是将 servlet 映射到特定 URL 的问题。

    您可以将其视为别名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-25
      • 2014-05-24
      • 2012-09-18
      • 2014-05-27
      • 2011-03-16
      • 2016-07-05
      • 2015-03-01
      • 1970-01-01
      相关资源
      最近更新 更多