<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC 
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <!-- Order matters in web.xml! For the elements
       used in this example, this order is required:
          filter
          filter-mapping
          servlet
          servlet-mapping
          welcome-file-list
  -->
  
  <!-- Register the name "Reporter" for ReportFilter. -->
  <filter>
    <filter-name>Reporter</filter-name>
    <filter-class>
      moreservlets.filters.ReportFilter
    </filter-class>
  </filter>
  
  <!-- Register the name "Logger" for LogFilter. -->
  <filter>
    <filter-name>Logger</filter-name>
    <filter-class>
      moreservlets.filters.LogFilter
    </filter-class>
  </filter>
  
  <!-- Register the name "LateAccessFilter" for 
       moreservlets.filter.LateAccessFilter. 
       Supply two initialization parameters: 
       startTime and endTime.
  -->
  <filter>
    <filter-name>LateAccessFilter</filter-name>
    <filter-class>
      moreservlets.filters.LateAccessFilter
    </filter-class>
    <init-param>
      <param-name>startTime</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>endTime</param-name>
      <param-value>10</param-value>
    </init-param>
  </filter>
  
  <!-- Register the name "BannedAccessFilter" for 
       moreservlets.filter.BannedAccessFilter. 
       Supply an initialization parameter: 
       bannedSites.
  -->
  <filter>
    <filter-name>BannedAccessFilter</filter-name>
    <filter-class>
      moreservlets.filters.BannedAccessFilter
    </filter-class>
    <init-param>
      <param-name>bannedSites</param-name>
      <param-value>
        www.competingsite.com
        www.bettersite.com
        www.moreservlets.com
      </param-value>
    </init-param>
  </filter>
  
  <!-- Register the name "ReplaceSiteNameFilter" for 
       moreservlets.filters.ReplaceSiteNameFilter. 
  -->
  <filter>
    <filter-name>ReplaceSiteNameFilter</filter-name>
    <filter-class>
      moreservlets.filters.ReplaceSiteNameFilter
    </filter-class>
  </filter>
  
  <!-- Register the name "CompressionFilter" for 
       moreservlets.filters.CompressionFilter. 
  -->
  <filter>
    <filter-name>CompressionFilter</filter-name>
    <filter-class>
      moreservlets.filters.CompressionFilter
    </filter-class>
  </filter>
  
  <!-- Apply the Reporter filter to home page. -->
  <filter-mapping>
    <filter-name>Reporter</filter-name>
    <url-pattern>/index.jsp</url-pattern>
  </filter-mapping>
    
  <!-- Also apply the Reporter filter to the servlet named 
      "TodaysSpecial". 
  -->
  <filter-mapping>
    <filter-name>Reporter</filter-name>
    <servlet-name>TodaysSpecial</servlet-name>
  </filter-mapping>
  
  <!-- Apply the Logger filter to all servlets and 
       JSP pages. 
  --> 
  <filter-mapping>
    <filter-name>Logger</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <!-- Apply LateAccessFilter to the home page. --> 
  <filter-mapping>
    <filter-name>LateAccessFilter</filter-name>
    <url-pattern>/index.jsp</url-pattern>
  </filter-mapping>
  
  <!-- Apply BannedAccessFilter to the servlet named 
      "TodaysSpecial". 
  -->
  <filter-mapping>
    <filter-name>BannedAccessFilter</filter-name>
    <servlet-name>TodaysSpecial</servlet-name>
  </filter-mapping>
  
  <!-- Apply ReplaceSiteNameFilter to page2.jsp page
       in the plugSite directory 
  -->
  <filter-mapping>
    <filter-name>ReplaceSiteNameFilter</filter-name>
    <url-pattern>/plugSite/page2.jsp</url-pattern>
  </filter-mapping>
  
  <!-- Apply CompressionFilter to the servlet named 
      "LongServlet". 
  -->
  <filter-mapping>
    <filter-name>CompressionFilter</filter-name>
    <servlet-name>LongServlet</servlet-name>
  </filter-mapping>
  
  <!-- Give a name to the Today's Special servlet so that filters 
       can be applied to it.
  -->
  <servlet>
    <servlet-name>TodaysSpecial</servlet-name>
    <servlet-class>
      moreservlets.TodaysSpecialServlet
    </servlet-class>
  </servlet>
  
  <!-- Give a name to the servlet that redirects users 
       to the home page. 
  -->
  <servlet>
    <servlet-name>Redirector</servlet-name>
    <servlet-class>moreservlets.RedirectorServlet</servlet-class>
  </servlet>
  
  <!-- Give a name to the servlet that generates long 
       (but very exciting!) output. 
  -->
  <servlet>
    <servlet-name>LongServlet</servlet-name>
    <servlet-class>moreservlets.LongServlet</servlet-class>
  </servlet>
  
  <!-- Make /TodaysSpecial invoke the servlet
       named TodaysSpecial (i.e., moreservlets.TodaysSpecial). 
  -->
  <servlet-mapping>
    <servlet-name>TodaysSpecial</servlet-name>
    <url-pattern>/TodaysSpecial</url-pattern> 
  </servlet-mapping>
  
  <!-- Make /LongServlet invoke the servlet
       named LongServlet (i.e., moreservlets.LongServlet).
  -->
  <servlet-mapping>
    <servlet-name>LongServlet</servlet-name>
    <url-pattern>/LongServlet</url-pattern> 
  </servlet-mapping>
  
  <!-- Turn off invoker. Send requests to index.jsp. -->
  <servlet-mapping>
    <servlet-name>Redirector</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
  </servlet-mapping>
  
  <!-- If URL gives a directory but no filename, try index.jsp
       first and index.html second. If neither is found,
       the result is server specific (e.g., a directory 
       listing).  Order of elements in web.xml matters. 
       welcome-file-list needs to come after servlet but
       before error-page.
  -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

</web-app>
