Hiya all,

I'm looking at writing a Filter class which does request rewriting similar
to mod_rewrite in a apache for Tomcat (preferably written so that it will
work with any servlets 2.4 compliant server).

I'm having a little trouble with regards how filters actually work.

The following all happen inside filters (tomcat 5.5, latest stable release):

1) Wrapping the HttpServletRequest with one which modifies
request.getRequestURI(), request.getPathInfo() request.getServletPath() does
not seem to work, as at this point tomcat seems to have already decided what
server will proces the request.

2) using request.getRequestDispatcher(<path>).forward(request,response)
seems to work, however, this does not cause the Filter to be reapplied as I
would have expected if called at this stage in the request parsing process.

3) When declaring a filter in a web.xml for an application with a
url-mapping of /* seems to break hideously if there is also a default
servlet also declared in the web.xml (the application specific web.xml, not
the server web.xml) [I can and will probably will have to provide further
info on this] seems to break rather horribly causing tomcat to server up
unprocessed jsp pages, and fail to do directory indexes, even though without
the filter mapping it works correctly.

-Antony Riley

Reply via email to