Java 单例Servlet过滤器
给我一个错误: 类org.apache.catalina.core.DefaultInstanceManager无法访问 带有修饰符的com.example.singleton.URLFilter类成员 “私人”Java 单例Servlet过滤器,java,tomcat,servlets,singleton,servlet-filters,Java,Tomcat,Servlets,Singleton,Servlet Filters,给我一个错误: 类org.apache.catalina.core.DefaultInstanceManager无法访问 带有修饰符的com.example.singleton.URLFilter类成员 “私人” 如何防止创建多个servlet筛选器实例?如果使用web.xml或注释配置筛选器,则需要为容器提供一个公共的无参数构造函数来实例化它(servlet规范3.1第6.2节): 应用程序开发人员通过实现 Filter接口,并提供一个公共构造函数 论据 第6.2.1节还规定: 在部署描述符中
如何防止创建多个servlet筛选器实例?如果使用web.xml或注释配置筛选器,则需要为容器提供一个公共的无参数构造函数来实例化它(servlet规范3.1第6.2节): 应用程序开发人员通过实现 Filter接口,并提供一个公共构造函数 论据 第6.2.1节还规定: 在部署描述符中,每个声明只包含一个实例 按容器的每个JVM实例化
如果需要更好地控制过滤器实例化,则需要使用过滤器的编程注册(请参阅中的第4.4.2节)。为什么需要将其设置为单例?过滤器的生命周期应由容器处理。请参阅中的第4.4.2节
public class URLFilter implements Filter {
private URLFilter() {
//New instances are not permitted
}
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
}
}