Configuration File Example
Below is a simple context web.xml file that demonstrates all of the basic elements discussed in this chapter:
• definition of a servlet, a filter that processes requests for the servlet, and a listener
• initiation parameters
• error page definition
• session configuration
• URL mapping
Each of these items is described in detail in the remainder of this chapter.
<web-app>
<!-- Define and map a servlet -->
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>
servletexample.createHelloWorldExample</servlet-class>
<init-param>
<param-name>greeting</param-name>
<param-value>Hello, World!</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorldExample/*</url-pattern>
</servlet-mapping>
<!-- Define and map a filter -->
<filter>
<filter-name>simpleFilter</filter-name>
<filter-class>servletexample.createSimpleFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>simpleFilter</filter-name>
<url-pattern>/HelloWorldExample/*</url-pattern>
</filter-mapping>
<!-- Define a listener -->
<listener>
<listener-class>mylistener.createSessionListener</listener-class>
</listener>
<!-- Define an error-page for code 404, File Not Found -->
<error-page>
<error-code>404</error-code>
<location>404.html</location>
</error-page>
<!-- Define a 10 minute session timeout -->
<session-config>
<session-timeout>10</session-timeout>
</session-config>
</web-app>
A production application generally has a more elaborate configuration file. A file can contain any number of servlet, filter, and listener declarations. A file may contain one session-config element, and one error-page element for each HTTP error code.
Character Set
The web.xml file may be encoded in either UTF-8 or UTF-16. The container transcodes the file to UTF-8 before passing strings to a servlet or filter. Initialization parameter names, initialization parameter values, servlet names, and filter names are expressed as UTF-8 within a running container.