URL rewriting is very common with Apache Web Server (see mod_rewrite's rewriting guide) but has not been possible in most java web application servers. The main things it is used for are:
* URL Tidyness / URL Abstraction - keep URLs tidy irrespective of the underlying technology or framework (JSP, Servlet, Struts etc).
* Browser Detection - Allows you to rewrite URLs based on request HTTP headers (such as user-agent or charset).
* Date based rewriting - Allows you to forward or redirect to other URL's based on the date/time (good for planned outages).
* Moved content - enable a graceful move of content or even a change in CMS.
* Tiny/Friendly URL's (i.e. blah.com/latest can be redirected to blah.com/download/ver1.2.46.2/setup.exe)
* A Servlet mapping engine (see Method Invocation)
UrlRewriteFilter uses an xml file, called urlrewrite.xml (it goes into the WEB-INF directory), for configuration. Most parameters can be Perl5 style Regular Expressions or Wildcard Expressions. This makes it very powerful indeed.