Given a request targeted (via the handler id) to the specific handler, process the request. The handler is responsible for processing the request, sending back either a bytestream (via {@link Response#getOutputStream(String)}) or an error response (via {@link Response#sendError(int,String)}). It is the handler's responsibility to allow for client-side caching (possibly sending an {@link HttpServletResponse#SC_NOT_MODIFIED} response).
The handler should return true if it provided a response. If the handler returns false, this indicates that the extra path did not identify a known asset (virtual or otherwise) and the AssetDispatcher service should send a {@link HttpServletResponse#SC_NOT_FOUND} response.
Starting in Tapestry 5.4, the handler is informed by the {@link org.apache.tapestry5.services.AssetRequestDispatcher}whether or not the content should be compressed (this is determined based on information in the URL).
@param request incoming asset request
@param response used to send a response to client
@param extraPath additional path to identify the specific asset
@return true if request was handled (and response sent), false if asset not found