anchor.diff:  [[mvc-servlet-special-bean-types]]
   === Special Bean Types In the WebApplicationContext
   
  -The `DispatcherServlet` uses special beans to process requests and render the
  -appropriate views. These beans are part of Spring MVC. You can choose which special
  -beans to use by simply configuring one or more of them in the `WebApplicationContext`.
  -However, you don't need to do that initially since Spring MVC maintains a list of
  -default beans to use if you don't configure any. More on that in the next section. First
  -see the table below listing the special bean types the `DispatcherServlet` relies on.
  +The `DispatcherServlet` delegates to special beans to process requests and render the
  +appropriate responses. By "special beans" we mean Spring-managed Object instances that
  +implement specific framework contracts listed in the table further below in this section.
  +Spring MVC provides built-in implementations of these contracts so all you
  +need to do is configure them in your Spring configuration. It is however possible to
  +customize, extend, or completely replace those built-in implementations.
  +
  +The table below lists special bean types the `DispatcherServlet` depends on
  +and delegates to.
   
   [[mvc-webappctx-special-beans-tbl]]
   .Special bean types in the WebApplicationContext
  
positive.code:   information about multipart handling.
  * An appropriate handler is searched for. If a handler is found, the execution chain
    associated with the handler (preprocessors, postprocessors, and controllers) is
    executed in order to prepare a model or rendering.
  * If a model is returned, the view is rendered. If no model is returned, (may be due to
    a preprocessor or postprocessor intercepting the request, perhaps for security
    reasons), no view is rendered, because the request could already have been fulfilled.
  
  Handler exception resolvers that are declared in the `WebApplicationContext` pick up
  exceptions that are thrown during processing of the request. Using these exception
  resolvers allows you to define custom behaviors to address exceptions.
  
  The Spring `DispatcherServlet` also supports the return of the
  __last-modification-date__, as specified by the Servlet API. The process of determining
  
negative.code: 
  
  [[mvc-servlet-config]]
  === `DispatcherServlet` Configuration
  There are more than one ways to actually configure the `DispatcherServlet` with the special
  bean types listed in the previous section.
  
  If there are no beans of a given type in the `WebApplicationContext` by default the
  `DispatcherServlet` will refer to a list of default implementations to use in the file
  https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/resources/org/springframework/web/servlet/DispatcherServlet.properties[DispatcherServlet.properties].
  
  Applications can explicitly declare the special beans to use to take over the defaults.
  However for most applications the MVC Java config or the MVC XML namespace are the
  best starting point. Each creates the necessary Spring configuration for the
  `DispatcherServlet` and also provide a higher-level API to configure Spring MVC without
  having to understand all the details. See <<mvc-config>> for more details.
  
  [NOTE]
  ====
  Spring Boot uses the MVC Java config to configure Spring MVC and provides many
  extra options and conveniences on top.
  ====
  
  
  
  [[mvc-servlet-sequence]]
  === DispatcherServlet Processing Sequence
  The `DispatcherServlet` processes requests as follows:
  
  * The `WebApplicationContext` is searched for and bound in the request as an attribute
    that the controller and other elements in the process can use. It is bound by default
  