/** * {@inheritDoc} */ @Override public Map getParameterMap() { String method = getMethod().toUpperCase(); if (method.equals(METHOD_POST) || method.equals(METHOD_PUT)) { return postParameters; } return getParameters; }
/** * {@inheritDoc} */ @Override public void load(final String path, final HttpServletRequestImpl request, final HttpServletResponseImpl response) throws IOException { File file = getFile(path); // A server MUST ignore a Range header field received with a request method other than GET. boolean isGetRequest = request.getMethod().equals(HttpServletRequest.METHOD_GET); boolean isPartialRequest = isGetRequest && request.getHeaders().containsHeader(Headers.HEADER_RANGE); if (isPartialRequest) { loadPartialContent(request, response, file); } else { loadCompleteContent(request, response, file); } }
private void loadCompleteContent(final HttpServletRequestImpl request, final HttpServletResponseImpl response, final File file) throws IOException { response.setContentType(mimeTypeMapping.getMimeTypeByExtension(FileUtilities.getExtension(file.getName()))); response.setStatus(HttpServletResponse.STATUS_OK); response.setContentLength(file.length()); response.getHeaders().setHeader(Headers.HEADER_ACCEPT_RANGES, "bytes"); response.flushHeaders(); if (!request.getMethod().equals(HttpServletRequest.METHOD_HEAD)) { InputStream fileInputStream = new FileInputStream(file); try { response.serveStream(fileInputStream); } finally { IOUtilities.closeSilently(fileInputStream); } } response.flush(); }
request.getMethod(), request.getRequestURI() });