I'm writing a project for academic purposes which among other irrelevant stuff, includes writing a filter which monitors servlet/jsp response times.
The thing is that the filter should work on every deployed web application in the server and not only over a specific one, I just couldn't find any information regarding applying "global" filters.
Is it even possible?
NOTE: It's important to mention that i'm using Apache Tomcat 7 as the server of choice.
Thanks!
Mikey
You could provide the filter in Tomcat's common classpath and edit Tomcat's own /conf/web.xml
to add the filter, but this does not run on non-existing webapp contexts (i.e. it does not cover all possible requests) and it is overrideable in all deployed webapps. The more robust solution depends on the servlet container used. In case of Tomcat, you need the Valve component.
Kickoff example:
import org.apache.catalina.valves.ValveBase;
public class MyValve extends ValveBase {
@Override
public void invoke(Request request, Response response) throws IOException, ServletException {
// ...
getNext().invoke(request, response);
}
}
register it as follows in server.xml
:
<Valve className="com.example.MyValve" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With