org.springframework.web.servlet.mvc

## Class HttpRequestHandlerAdapter

- java.lang.Object
- - org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter

- All Implemented Interfaces:
    HandlerAdapter

      public class HttpRequestHandlerAdapter
      extends Object
      implements HandlerAdapter

  Adapter to use the plain `HttpRequestHandler` interface with the generic `DispatcherServlet`. Supports handlers that implement the `LastModified` interface.

  This is an SPI class, not used directly by application code.

  Since:
    2.0
  Author:
    Juergen Hoeller
  See Also:
    `DispatcherServlet`, `HttpRequestHandler`, `LastModified`, `SimpleControllerHandlerAdapter`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HttpRequestHandlerAdapter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `long` | `getLastModified(HttpServletRequest request, Object handler)` Same contract as for HttpServlet's `getLastModified` method.
    `ModelAndView` | `handle(HttpServletRequest request, HttpServletResponse response, Object handler)` Use the given handler to handle this request.
    `boolean` | `supports(Object handler)` Given a handler instance, return whether or not this HandlerAdapter can support it.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### HttpRequestHandlerAdapter

          public HttpRequestHandlerAdapter()

  - ### Method Detail

    - #### supports

          public boolean supports(Object handler)

      Description copied from interface: `HandlerAdapter`
      Given a handler instance, return whether or not this HandlerAdapter can support it. Typical HandlerAdapters will base the decision on the handler type. HandlerAdapters will usually only support one handler type each.

      A typical implementation:

      `return (handler instanceof MyHandler);`

      Specified by:
        `supports` in interface `HandlerAdapter`
      Parameters:
        `handler` - handler object to check
      Returns:
        whether or not this object can use the given handler

    - #### handle

          public ModelAndView handle(HttpServletRequest request,
                            HttpServletResponse response,
                            Object handler)
                              throws Exception

      Description copied from interface: `HandlerAdapter`
      Use the given handler to handle this request. The workflow that is required may vary widely.
      Specified by:
        `handle` in interface `HandlerAdapter`
      Parameters:
        `request` - current HTTP request
        `response` - current HTTP response
        `handler` - handler to use. This object must have previously been passed to the `supports` method of this interface, which must have returned `true`.
      Returns:
        ModelAndView object with the name of the view and the required model data, or `null` if the request has been handled directly
      Throws:
        `Exception` - in case of errors

    - #### getLastModified

          public long getLastModified(HttpServletRequest request,
                             Object handler)

      Description copied from interface: `HandlerAdapter`
      Same contract as for HttpServlet's `getLastModified` method. Can simply return -1 if there's no support in the handler class.
      Specified by:
        `getLastModified` in interface `HandlerAdapter`
      Parameters:
        `request` - current HTTP request
        `handler` - handler to use
      Returns:
        the lastModified value for the given handler
      See Also:
        `HttpServlet.getLastModified(javax.servlet.http.HttpServletRequest)`, `LastModified.getLastModified(javax.servlet.http.HttpServletRequest)`