code: @Override
      public void doFilter(ServletRequest servReq, ServletResponse servRes, FilterChain chain) throws IOException, ServletException {
          final HttpServletRequest httpReq = (HttpServletRequest) servReq;
          final HttpServletResponse httpRes = (HttpServletResponse) servRes;
          final String requestPath = extractActionRequestPath(httpReq);
          handleForced404NotFoundRouting(httpReq, requestPath);
          if (!isRoutingTarget(httpReq, requestPath)) { // e.g. foo.jsp, foo.do, foo.js, foo.css
              chain.doFilter(httpReq, httpRes);
              return;
          }
          // no extension here (may be LastaFlute URL)
          final ActionPathResolver resolver = getRequestManager().getActionPathResolver();
          try {
              final String contextPath = extractContextPath(httpReq);
              final ActionFoundPathHandler handler = createActionFoundPathHandler(httpReq, httpRes, contextPath); // (#to_action)
              if (resolver.handleActionPath(requestPath, handler)) { // #to_action
                  return;
              }
          } catch (Exception e) {
              if (e instanceof IOException) {
                  throw (IOException) e;
              } else if (e instanceof ServletException) {
                  throw (ServletException) e;
              } else if (e instanceof RuntimeException) {
                  throw (RuntimeException) e;
              } else { // no way, just in case
                  throw new IllegalStateException("*No way", e);
              }
          }
          // no routing here
          showExpectedRouting(requestPath, resolver); // for developer
          handleNoRoutingRequest(httpReq, requestPath); // 404 if it needs
          chain.doFilter(servReq, servRes); // to next filter outside LastaFlute
      }
docs: ======