Global Java Servlet Filter, is it possible?

前端 未结 3 1639
旧巷少年郎
旧巷少年郎 2020-12-10 13:04

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 th

相关标签:
3条回答
  • 2020-12-10 13:45

    Filters are configured per-web app, but Tomcat itself may have a mechanism for timing request/response processing times.

    0 讨论(0)
  • 2020-12-10 13:49

    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" />
    
    0 讨论(0)
  • 2020-12-10 14:05

    You can config the url-pattern of your filter to process any request/response that you want. Please check http://www.caucho.com/resin-3.0/config/webapp.xtp#filter-mapping

    0 讨论(0)
提交回复
热议问题