/** * {@inheritDoc} */ @Override public void sendRedirect(final String location) { this.setStatus(HttpServletResponse.STATUS_MOVED_PERMANENTLY); headers.setHeader(Headers.HEADER_LOCATION, location); }
private void sendRedirectToDirectorySlashedPath(final HttpServletResponseImpl response, final String originalPath) throws IOException { response.setStatus(HttpServletResponse.STATUS_MOVED_PERMANENTLY); response.getHeaders().setHeader(Headers.HEADER_LOCATION, originalPath + "/"); response.flush(); }
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(); }
response.setStatus(HttpServletResponse.STATUS_PARTIAL_CONTENT); response.getHeaders().setHeader(Headers.HEADER_CONTENT_RANGE, "bytes " + getRanges(ranges) + "/" + file.length());
/** * {@inheritDoc} */ @Override public void load(final String path, final HttpServletRequestImpl request, final HttpServletResponseImpl response) throws IOException { ServletContextImpl servletContext = servletContextHelper.getResolvedContext(servletContexts, path); Objects.requireNonNull(servletContext); ServletMapping servletMapping = servletContextHelper.getResolvedServletMapping(servletContext, path); request.setServletContext(servletContext); Servlet servlet = getServlet(servletMapping, new ServletConfigImpl(servletContext)); response.setStatus(HttpServletResponse.STATUS_OK); try { FilterChainImpl filterChain = getFilterChain(path, servletContext, servlet); filterChain.doFilter(request, response); terminate(request, response); } catch (ServletException | FilterInitializationException e) { throw new UnexpectedSituationException(e); } }
/** * {@inheritDoc} */ @Override public void load(final String path, final HttpServletRequestImpl request, final HttpServletResponseImpl response) { String assetPath = getAssetPath(path); InputStream inputStream = null; try { inputStream = getInputStream(assetPath); response.setStatus(HttpServletResponse.STATUS_OK); // This must be done in a separate try catch block as some assets do not have a FD try (AssetFileDescriptor afd = assetManager.openFd(assetPath)) { response.setContentLength(afd.getLength()); } catch (IOException e) { // There is no asset description or we can't read the length of the asset } // TODO Set mime type //response.setContentType(JLWSConfig.MimeTypeMapping.getMimeTypeByExtension(fileExt)); response.flushHeaders(); response.serveStream(inputStream); } catch (IOException e) { throw new UnexpectedSituationException(e); } finally { IOUtilities.closeSilently(inputStream); } }