Sample answer: "Tomcat takes the connection on a worker thread and runs the filter chain, like security. Then the DispatcherServlet, the front controller, asks HandlerMappings for the matching controller method. A HandlerAdapter resolves arguments, runs message converters for @RequestBody, and calls the method. The return value is written by a message converter, and exceptions go to HandlerExceptionResolvers like @ControllerAdvice."
What the docs say: HandlerMapping maps a request to a handler; HandlerAdapter "shield[s] the DispatcherServlet" from how the handler is invoked; HandlerExceptionResolver resolves exceptions. During processing, the WebApplicationContext is bound to the request, "an appropriate handler is searched for", and the execution chain runs. The Tomcat worker thread and filter chain step is not confirmed in the docs cited here.