我有一个实现MyFilter
的课程javax.servlet.Filter
。 Tomcat基于web.xml
配置创建了一个这样的实例。过滤器收集有关所有请求的统计信息(自应用程序启动以来)并将其存储在成员变量中。
我希望在网页上显示这些统计信息。如何获取由Tomcat创建的MyFilter
实例?
答案 0 :(得分:1)
每个过滤器都可以访问FilterConfig对象 获取其初始化参数,引用 它可以使用的ServletContext。
为什么不在ServletContext属性中存储所需的数据?您可以按如下方式存储过滤器:
@Override
public void init( final FilterConfig config ) throws ServletException
{
// Store our instance in the servlet context for usage by servlets.
final ServletContext context = config.getServletContext();
context.setAttribute( "MyFilter", this );
}
然后在具有相同上下文的servlet中:
Filter filter = (Filter)getServletContext().getAttribute( "MyFilter" );