为什么要使用web.xml文件?

73

web.xml有什么用途,为什么要使用它?

<filter>
        <filter-name>wicket.mysticpaste</filter-name>
        <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
        <init-param>
            <param-name>applicationClassName</param-name>
            <param-value>com.mysticcoders.WicketApplication</param-value>
        </init-param>
    </filter>

 <filter-mapping>
  <filter-name>wicket.mysticpaste</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>

这个过滤器和过滤器映射器的作用是什么?


什么是web.xml文件?我能用它做哪些事情? - JoseK
请注意,web.xml 文件名应全部小写。 - Bozho
15
他没有问为什么他在使用它,而是问为什么我们作为一个社区使用web.xml文件。对于他特定的web.xml,他询问它在做什么。这个问题并没有错。 - ineedahero
6个回答

86

通常来说,这是Java Web应用程序的配置文件。它指示Servlet容器(如Tomcat)加载哪些类,设置上下文中的哪些参数,并拦截来自浏览器的请求。

在此配置文件中,您可以指定:

  • 要使用哪些Servlet(和过滤器),以及要将它们映射到哪些URL
  • 侦听器 - 在发生某些事件(如上下文启动、会话创建等)时得到通知的类
  • 配置参数(context-params)
  • 错误页面,欢迎文件
  • 安全约束

在Servlet 3.0中,许多web.xml部分都是可选的。可以通过注释(@WebServlet@WebListener)进行这些配置。


13

web.xml文件是一个基于Servlet的Java Web应用程序(大多数Java Web应用程序都是如此)的部署描述符。它声明了存在哪些Servlet以及它们处理哪些URL等信息。

你引用的部分定义了一个Servlet过滤器。Servlet过滤器可以对请求进行各种预处理。你具体的例子是一个过滤器,Wicket框架使用它作为所有请求的入口点,因为过滤器在某种程度上比Servlet更强大。


1

如果希望从浏览器访问Servlet,则必须告诉Servlet容器部署哪些Servlet以及将这些Servlet映射到哪些URL。这可以在Java Web应用程序的web.xml文件中完成。

在Servlet中使用web.xml

<servlet>
    <description></description>
    <display-name>servlet class name</display-name>
    <servlet-name>servlet class name</servlet-name>
    <servlet-class>servlet package name/servlet class name</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>servlet class name</servlet-name>
    <url-pattern>/servlet class name</url-pattern>
</servlet-mapping>

通常使用web.xml进行servlet映射。


这并没有真正回答问题中的“为什么”和“什么”。 - Eric J.

1

它表示所有请求都要通过WicketFilter进行处理


此外,如果您使用WicketApplication进行应用程序级别的设置,例如URL模式和适用于整个应用程序的设置。

这就是你真正需要的,http://wicket.apache.org/learn/examples/helloworld.html


0

这是Java Web应用程序的默认配置;它是必需的。

WicketFilter

适用于发送到此 Web 应用程序的每个 HTTP 请求。


我偶然发现了这篇文章。更正:以前是必需的,现在不再需要了。 - Witold Kaczurba
1
九年后。 - duffymo

0

Web.xml 被称为部署描述符文件,它是一个 XML 文件,包含有关 Web 应用程序配置的信息,包括 Servlet 的配置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接