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