/** * {@inheritDoc} */ @Override public void load(final String path, final HttpServletRequestImpl request, final HttpServletResponseImpl response) throws IOException { ServletContextImpl servletContext = servletContextHelper.getResolvedContext(servletContexts, path); Objects.requireNonNull(servletContext); ServletMapping servletMapping = servletContextHelper.getResolvedServletMapping(servletContext, path); request.setServletContext(servletContext); Servlet servlet = getServlet(servletMapping, new ServletConfigImpl(servletContext)); response.setStatus(HttpServletResponse.STATUS_OK); try { FilterChainImpl filterChain = getFilterChain(path, servletContext, servlet); filterChain.doFilter(request, response); terminate(request, response); } catch (ServletException | FilterInitializationException e) { throw new UnexpectedSituationException(e); } }