Java Servlet3.0动态注册Filter
Servlet3.0 API允许用户在代码里面动态注册Servlet和Filter,Tomcat7默认支持3.0。
配置:
<listener> <listener-class>org.javaweb.filter.TestListener</listener-class> </listener>
TestListener内容:
package org.javaweb.filter;
import java.util.EnumSet;
import java.util.logging.Logger;
import javax.servlet.DispatcherType;
import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class TestListener implements ServletContextListener{
private Logger logger = Logger.getLogger("javaweb");
public void contextDestroyed(ServletContextEvent arg0) {
logger.info("Context Destroyed......");
}
public void contextInitialized(ServletContextEvent sce) {
ServletContext sc = sce.getServletContext();
FilterRegistration.Dynamic filter = sc.addFilter("TestFilter","org.javaweb.test.filter.TestFilter");
EnumSet<DispatcherType> disps = EnumSet.of(DispatcherType.REQUEST,DispatcherType.FORWARD);
filter.addMappingForUrlPatterns(disps, true, "/*");
}
}