/** Initializes the caching HTTP Headers Filter. */ private void initCachingHttpHeadersFilter( ServletContext servletContext, EnumSet<DispatcherType> disps) { log.debug("Registering Caching HTTP Headers Filter"); FilterRegistration.Dynamic cachingHttpHeadersFilter = servletContext.addFilter("cachingHttpHeadersFilter", new CachingHttpHeadersFilter(env)); cachingHttpHeadersFilter.addMappingForUrlPatterns(disps, true, "/assets/*"); cachingHttpHeadersFilter.addMappingForUrlPatterns(disps, true, "/scripts/*"); cachingHttpHeadersFilter.setAsyncSupported(true); }
private void addCacheFilter(ServletContext context) { FilterRegistration.Dynamic filter = context.addFilter(CACHE_FILTER_NAME, CacheServletFilter.class); filter.setAsyncSupported(true); String[] mappings = new String[] {"/", "*.html", "*.css", "*.js", "*.ejs", "*.less", "*.hbs", "*.map"}; for (String mapping : mappings) { filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, mapping); } }
@Override public void contextInitialized(ServletContextEvent sce) { ServletContext servletContext = sce.getServletContext(); log.info("Web application configuration"); log.debug("Configuring Spring root application context"); AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.register(ApplicationConfiguration.class); rootContext.refresh(); servletContext.setAttribute( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, rootContext); log.debug("Configuring Spring Web application context"); AnnotationConfigWebApplicationContext dispatcherServletConfig = new AnnotationConfigWebApplicationContext(); dispatcherServletConfig.setParent(rootContext); dispatcherServletConfig.register(DispatcherServletConfig.class); log.debug("Registering Spring MVC Servlet"); ServletRegistration.Dynamic dispatcherServlet = servletContext.addServlet("dispatcher", new DispatcherServlet(dispatcherServletConfig)); dispatcherServlet.addMapping("/tatami/*"); dispatcherServlet.setLoadOnStartup(2); log.debug("Registering Meteor Servlet for online users"); ServletRegistration.Dynamic meteorServlet = servletContext.addServlet("atmosphereServlet", new MeteorServlet()); meteorServlet.setAsyncSupported(true); meteorServlet.addMapping("/realtime/*"); meteorServlet.setLoadOnStartup(3); meteorServlet.setInitParameter( "org.atmosphere.servlet", "fr.ippon.tatami.web.atmosphere.users.OnlineUsersServlet"); meteorServlet.setInitParameter( "org.atmosphere.cpr.broadcasterCacheClass", "org.atmosphere.cache.HeaderBroadcasterCache"); meteorServlet.setInitParameter( "org.atmosphere.cpr.broadcastFilterClasses", "org.atmosphere.client.TrackMessageSizeFilter"); meteorServlet.setInitParameter("org.atmosphere.useNative", "true"); log.debug("Registering Spring Security Filter"); FilterRegistration.Dynamic springSecurityFilter = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy()); EnumSet<DispatcherType> disps = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC); springSecurityFilter.addMappingForServletNames(disps, true, "dispatcher", "atmosphereServlet"); log.debug("Web application fully configured"); }
private void addGzipFilter(ServletContext context) { FilterRegistration.Dynamic filter = context.addFilter(GZIP_FILTER_NAME, ApplicationGzipFilter.class); filter.setInitParameter( "mimeTypes", "application/json,text/html,text/plain,text/xml,application/xhtml+xml,text/css,application/javascript,image/svg+xml"); filter.setAsyncSupported(true); String[] mappings = new String[] {"/*"}; for (String mapping : mappings) { filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, mapping); } }
@Override public void onStartup(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.setConfigLocation("com.sms.config"); // 加入logback监听器 servletContext.addListener(new LogbackConfigListener()); // 加入spring监听器 servletContext.addListener(new ContextLoaderListener(context)); EnumSet<DispatcherType> dispatcherTypes = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD); // 加入spring mvc配置 ServletRegistration.Dynamic dispatcher = servletContext.addServlet("spring-mvc", new DispatcherServlet(context)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/"); // 加入OpenEntityManagerInViewFilter FilterRegistration.Dynamic openEntityManagerInViewFilter = servletContext.addFilter( "openEntityManagerInViewFilter", OpenEntityManagerInViewFilter.class); openEntityManagerInViewFilter.addMappingForUrlPatterns(dispatcherTypes, true, "/*"); // 加入security过滤器 FilterRegistration.Dynamic securityFilterChain = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy()); securityFilterChain.addMappingForUrlPatterns(dispatcherTypes, true, "/*"); // 加入Spring编码过滤器 CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); FilterRegistration.Dynamic encodingFilter = servletContext.addFilter("characterEncodingFilter", characterEncodingFilter); encodingFilter.addMappingForUrlPatterns(dispatcherTypes, true, "/"); }
/** Initializes the static resources production Filter. */ private void initStaticResourcesProductionFilter( ServletContext servletContext, EnumSet<DispatcherType> disps) { log.debug("Registering static resources production Filter"); FilterRegistration.Dynamic staticResourcesProductionFilter = servletContext.addFilter( "staticResourcesProductionFilter", new StaticResourcesProductionFilter()); staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/"); staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/index.html"); staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/assets/*"); staticResourcesProductionFilter.addMappingForUrlPatterns(disps, true, "/scripts/*"); staticResourcesProductionFilter.setAsyncSupported(true); }
/** Initializes the GZip filter. */ private void initGzipFilter(ServletContext servletContext, EnumSet<DispatcherType> disps) { log.debug("Registering GZip Filter"); FilterRegistration.Dynamic compressingFilter = servletContext.addFilter("gzipFilter", new GZipServletFilter()); Map<String, String> parameters = new HashMap<>(); compressingFilter.setInitParameters(parameters); compressingFilter.addMappingForUrlPatterns(disps, true, "*.css"); compressingFilter.addMappingForUrlPatterns(disps, true, "*.json"); compressingFilter.addMappingForUrlPatterns(disps, true, "*.html"); compressingFilter.addMappingForUrlPatterns(disps, true, "*.js"); compressingFilter.addMappingForUrlPatterns(disps, true, "*.svg"); compressingFilter.addMappingForUrlPatterns(disps, true, "*.ttf"); compressingFilter.addMappingForUrlPatterns(disps, true, "/api/*"); compressingFilter.addMappingForUrlPatterns(disps, true, "/metrics/*"); compressingFilter.setAsyncSupported(true); }
/** Initializes Metrics. */ private void initMetrics(ServletContext servletContext, EnumSet<DispatcherType> disps) { log.debug("Initializing Metrics registries"); servletContext.setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, metricRegistry); servletContext.setAttribute(MetricsServlet.METRICS_REGISTRY, metricRegistry); log.debug("Registering Metrics Filter"); FilterRegistration.Dynamic metricsFilter = servletContext.addFilter("webappMetricsFilter", new InstrumentedFilter()); metricsFilter.addMappingForUrlPatterns(disps, true, "/*"); metricsFilter.setAsyncSupported(true); log.debug("Registering Metrics Servlet"); ServletRegistration.Dynamic metricsAdminServlet = servletContext.addServlet("metricsServlet", new MetricsServlet()); metricsAdminServlet.addMapping("/metrics/metrics/*"); metricsAdminServlet.setAsyncSupported(true); metricsAdminServlet.setLoadOnStartup(2); }
@Override public void onStartup(ServletContext sc) throws ServletException { SLF4JBridgeHandler.install(); log.debug("${artifactId} starting up..."); // Create the 'root' Spring application context AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); ctx.register(SpringConfiguration.class); ctx.scan("${package}"); ctx.refresh(); // Manages the lifecycle sc.addListener(new ContextLoaderListener(ctx)); sc.addListener(new ContextCleanupListener()); // Filters sc.addFilter("OpenEntityInViewFilter", OpenEntityManagerInViewFilter.class).addMappingForUrlPatterns(null, true, "/*"); log.debug("${package} initialized."); }
@Override public FilterRegistration.Dynamic addFilter(String s, Class<? extends Filter> aClass) { return proxy.addFilter(s, aClass); }
@Override public FilterRegistration.Dynamic addFilter(String s, Filter filter) { return proxy.addFilter(s, filter); }
@Override public FilterRegistration.Dynamic addFilter(String s, String s1) { return proxy.addFilter(s, s1); }
public Dynamic addFilter(String arg0, Class<? extends Filter> arg1) { return servletContext.addFilter(arg0, arg1); }
public Dynamic addFilter(String arg0, Filter arg1) { return servletContext.addFilter(arg0, arg1); }
private void addDebugFilter(ServletContext context) { FilterRegistration.Dynamic filter = context.addFilter(DEBUG_FILTER_NAME, RequestDebugFilter.class); filter.setAsyncSupported(true); filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*"); }