private void serveFile(final HttpServletResponse response, final File file) throws IOException { response.setContentLength(file.length()); ((HttpServletResponseImpl) response).flushHeaders(); InputStream inputStream = new FileInputStream(file); try { ((HttpServletResponseImpl) response).serveStream(inputStream); ((HttpServletResponseImpl) response).flush(); } finally { IOUtilities.closeSilently(inputStream); } } }
/** * {@inheritDoc} */ @Override public void service(final HttpServletRequest request, final HttpServletResponse response) throws ServletException { try { byte[] message = "<p>Writing to output stream directly, without chunking.</p>".getBytes(StandardCharsets.UTF_8); response.setContentLength(message.length); response.getOutputStream().write(message); } catch (IOException e) { throw new ServletException("Unable to write to output stream", e); } } }
/** * {@inheritDoc} */ @Override public void serve(final HttpServletResponse response) throws IOException { response.setStatus(status); response.setContentType("text/plain"); response.setContentLength(message.length()); response.getWriter().write(message); ((HttpServletResponseImpl) response).flush(); }
private void serveFile(final File file, final HttpServletResponse response) throws IOException { response.setContentType(getServletContext().getMimeType(file.getName())); response.setContentLength(file.length()); response.getHeaders().setHeader(Headers.HEADER_CONTENT_DISPOSITION, "attachment; filename=" + StringUtilities.urlEncode(file.getName())); InputStream in = null; try { OutputStream out = response.getOutputStream(); in = new FileInputStream(file); IOUtilities.copyStreams(in, out); out.flush(); } finally { IOUtilities.closeSilently(in); } } }