Servlet过滤器和线程?

Joh*_*ohn 0 java servlets weblogic weblogic-10.x servlet-filters

我正在Weblogic 10.3.3上构建一个Web服务,我正在使用servlet过滤器将请求记录到数据库.我不希望过滤器减慢对Web服务的调用.所以我实际上有2个问题.

1)过滤器,或者我可以使过滤器在单独的线程上进行日志记录吗?如果是这样的话?

2)有没有办法可以动态打开或关闭过滤器而无需重新部署代码.

谢谢

duf*_*ymo 5

  1. 过滤器由分配给您的请求的线程执行.如果您愿意,可以创建FutureTask来进行日志记录,但是Filter中没有任何内置功能可以让您执行此类操作.如果您使用的是Log4J,则可以通过该方式登录队列并卸载应用程序.
  2. 过滤器在web.xml中添加,因此您无法将其关闭或以此方式关闭.如果内部有一个JMX bean可以完成工作,也许您可​​以使用JMX控制台关闭和打开它的功能.

你可能会对这里的过早优化感到内疚.如果你记录或过滤东西将是一个问题,我会等到我有证据证明它之前我开始重新设计修复它.