The servlet-filterlistener
quickstart demonstrates how to use Servlet filters and listeners in an application.
The servlet-filterlistener
quickstart demonstrates how to use Servlet filters and listeners in {productNameFull}.
This example contains the following classes:
-
FilterExampleServlet
: A simple servlet that prints a form that contains an input field and a Send button. -
VowelRemoverFilter
: A servlet filter that removes the vowels from the text entered in the form. -
ParameterDumpingRequestListener
: A simple servlet request listener that creates a map of the original HTTP request parameter values before the filter is applied.
The application will be running at the following URL http://localhost:8080/{artifactId}/.
You are presented with a form containing an input field and a Send button. To test the quickstart:
-
Enter some text in the field, for example:
This is only a test!
-
Click Send.
-
The servlet filter intercepts and removes the vowels from the text entered in the form and displays:
You Typed: Ths s nly tst!
-
The server console displays the following log messages.
The following messages appear in the log when you access the application URL. This is because the ParameterDumpingRequestListener, which is a ServletRequestListener, and the VowelRemoverFilter both map to the application context and print logs for every request. Note that the VowelRemoveFilter contains logic to handle empty input field arguments.
INFO [io.undertow.servlet] (default task-46) ParameterDumpingRequestListener: request has been initialized. It has 0 parameters: INFO [io.undertow.servlet] (default task-46) VowelRemoverFilter initialized INFO [io.undertow.servlet] (default task-46) VowelRemoverFilter invoking filter chain... INFO [io.undertow.servlet] (default task-46) VowelRemoverFilter done filtering request INFO [io.undertow.servlet] (default task-46) ParameterDumpingRequestListener: request has been destroyed INFO [io.undertow.servlet] (default task-48) ParameterDumpingRequestListener: request has been initialized. It has 0 parameters: INFO [io.undertow.servlet] (default task-48) VowelRemoverFilter invoking filter chain... INFO [io.undertow.servlet] (default task-48) VowelRemoverFilter done filtering request INFO [io.undertow.servlet] (default task-48) ParameterDumpingRequestListener: request has been destroyed
The following messages appear in the log when you type "This is only a test!" in the input field and click
Send
.INFO [io.undertow.servlet] (default task-50) ParameterDumpingRequestListener: request has been initialized. It has 1 parameters: INFO [io.undertow.servlet] (default task-50) userInput=This is only a test! INFO [io.undertow.servlet] (default task-50) VowelRemoverFilter invoking filter chain... INFO [io.undertow.servlet] (default task-50) VowelRemoverFilter done filtering request INFO [io.undertow.servlet] (default task-50) ParameterDumpingRequestListener: request has been destroyed