@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);
}
}