Interface HttpRequestHandler
- All Known Implementing Classes:
DefaultServletHttpRequestHandler
,HessianServiceExporter
,HttpInvokerServiceExporter
,ResourceHttpRequestHandler
,SockJsHttpRequestHandler
,WebSocketHttpRequestHandler
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface HttpRequestHandler
Plain handler interface for components that process HTTP requests, analogous to a Servlet. Only declaresServletException
andIOException
, to allow for usage within anyHttpServlet
. This interface is essentially the direct equivalent of an HttpServlet, reduced to a central handle method.The easiest way to expose an HttpRequestHandler bean in Spring style is to define it in Spring's root web application context and define an
HttpRequestHandlerServlet
inweb.xml
, pointing to the target HttpRequestHandler bean through itsservlet-name
which needs to match the target bean name.Supported as a handler type within Spring's
DispatcherServlet
, being able to interact with the dispatcher's advanced mapping and interception facilities. This is the recommended way of exposing an HttpRequestHandler, while keeping the handler implementations free of direct dependencies on a DispatcherServlet environment.Typically implemented to generate binary responses directly, with no separate view resource involved. This differentiates it from a
Controller
within Spring's Web MVC framework. The lack of aModelAndView
return value gives a clearer signature to callers other than the DispatcherServlet, indicating that there will never be a view to render.As of Spring 2.0, Spring's HTTP-based remote exporters, such as
HttpInvokerServiceExporter
andHessianServiceExporter
, implement this interface rather than the more extensive Controller interface, for minimal dependencies on Spring-specific web infrastructure.Note that HttpRequestHandlers may optionally implement the
LastModified
interface, just like Controllers can, provided that they run within Spring's DispatcherServlet. However, this is usually not necessary, since HttpRequestHandlers typically only support POST requests to begin with. Alternatively, a handler may implement the "If-Modified-Since" HTTP header processing manually within itshandle
method.- Since:
- 2.0
- Author:
- Juergen Hoeller
- See Also:
HttpRequestHandlerServlet
,DispatcherServlet
,ModelAndView
,Controller
,LastModified
,HttpRequestHandlerAdapter
,HttpInvokerServiceExporter
,HessianServiceExporter
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
handleRequest(HttpServletRequest request, HttpServletResponse response)
Process the given request, generating a response.
Method Detail
handleRequest
void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
Process the given request, generating a response.- Parameters:
request
- current HTTP requestresponse
- current HTTP response- Throws:
ServletException
- in case of general errorsIOException
- in case of I/O errors