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, "/*"); } }