Christian Mallwitz wrote:
> Hi,
>
> I had a look at the Tomcat 4.0 document "Comparing RequestInterceptor and
> Valve Technology". From what I understand Valves are an improvement.
>
> But: How do Valves compare to ServletFilter?
>
The similarities are not accidental :-). In other words, I was on the servlet
expert group for JSR-053 that ended up with the filters API, and was able to
track things from both points of view.
Basically, Valves and Filters are useful for the same types of needs. The key
differences:
* Valves are inside the "container", and are therefore
specific to Tomcat 4.0. Filters are inside the "application"
and are therefore portable to any 2.3 servlet container.
* Valves have direct access to the container's internal
representation of requests and responses, so they can
modify these objects without having to wrap them. In
filters, you have to use request and response wrappers
to indirectly modify their behavior.
* Valves have direct access to the other internal components
of Tomcat, so they can theoretically do anything (pretty much
the same principle as what a device driver can do when you
add it to an operating system). Filters have access to the
servlet context in which they are running.
>
> Thanks
> Christian
> --
> Christian Mallwitz INTERSHOP Communications Germany
> Senior Software Engineer phone: +49 3641 894 334
Craig McClanahan