@Override protected void doGet(final SlingHttpServletRequest req, final SlingHttpServletResponse resp) throws ServletException, IOException { final Resource resource = req.getResource(); resp.getOutputStream().println(resource.toString()); resp.getOutputStream().println(mySimpleService.getSimpleValue()); resp.getOutputStream().println("This content is generated by the SimpleServlet"); } }
private void stream(@Nonnull SlingHttpServletResponse response, @Nonnull InputStream inputStream, @Nonnull String contentType, String imageName) throws IOException { response.setContentType(contentType); response.setHeader("Content-Disposition", "inline; filename=" + URLEncoder.encode(imageName, CharEncoding.UTF_8)); try { IOUtils.copy(inputStream, response.getOutputStream()); } finally { IOUtils.closeQuietly(inputStream); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { Entity entity = new Entity(); entity.setName("entity-name"); try { JAXBContext context = JAXBContext.newInstance(Entity.class); response.setHeader("Content-Type", "application/xml"); context.createMarshaller().marshal(entity, response.getOutputStream()); } catch (JAXBException e) { throw new ServletException(e); } }
protected void dumpRequestAsProperties(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException { final Properties props = new Properties(); response.setContentType("text/plain"); props.put("servlet.class.name", getClass().getName()); final Resource r = request.getResource(); props.put("sling.resource.path", r == null ? "" : r.getPath()); props.put("sling.resource.type", r == null ? "" : r.getResourceType()); props.put("http.request.method", request.getMethod()); props.put("http.request.pathInfo", request.getPathInfo()); props.put("http.request.requestURI", request.getRequestURI()); props.put("http.request.requestURL", request.getRequestURL().toString()); setCustomProperties(props); props.store(response.getOutputStream(), "Data created by " + getClass().getName() + " at " + new Date()); response.getOutputStream().flush(); }
@Override protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { String fileName = request.getParameter("filename"); String content = request.getParameter("content"); if (fileName == null || fileName.length() == 0) { LOGGER.error("Parameter fileName is required"); return; } response.setContentType("application/octet-stream"); // Your content type response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8")); InputStream input = IOUtils.toInputStream(content); int read = 0; byte[] bytes = new byte[BYTES_DOWNLOAD]; OutputStream os = response.getOutputStream(); while ((read = input.read(bytes)) != -1) { os.write(bytes, 0, read); } input.close(); os.flush(); os.close(); }
@Override protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { String fileName = request.getParameter("filename"); String content = request.getParameter("content"); if (fileName == null || fileName.length() == 0) { LOGGER.error("Parameter fileName is required"); return; } response.setContentType("application/octet-stream"); // Your content type response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8")); InputStream input = IOUtils.toInputStream(content); int read = 0; byte[] bytes = new byte[BYTES_DOWNLOAD]; OutputStream os = response.getOutputStream(); while ((read = input.read(bytes)) != -1) { os.write(bytes, 0, read); } input.close(); os.flush(); os.close(); }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { log.trace("doGet"); log.debug("Requesting redirect maps from {}", request.getResource()); RedirectMapModel redirectMap = request.getResource().adaptTo(RedirectMapModel.class); response.setContentType(MediaType.PLAIN_TEXT_UTF_8.toString()); response.getOutputStream().write(redirectMap.getRedirectMap().getBytes(StandardCharsets.UTF_8)); } }
@Override public void process(DistributionPackage distributionPackage) { fetched.incrementAndGet(); InputStream inputStream = null; int bytesCopied = -1; try { inputStream = DistributionPackageUtils.createStreamWithHeader(distributionPackage); bytesCopied = IOUtils.copy(inputStream, response.getOutputStream()); } catch (IOException e) { throw new RuntimeException("cannot process package", e); } finally { IOUtils.closeQuietly(inputStream); } String packageId = distributionPackage.getId(); if (delete) { // delete the package permanently distributionPackage.delete(); } // everything ok response.setStatus(200); log.debug("exported package {} was sent (and deleted={}), bytes written {}", new Object[]{packageId, delete, bytesCopied}); }
if (statusOK) { response.setStatus(200); response.getOutputStream().print(StatusCode.OK.toString()); } else { response.getOutputStream().print(StatusCode.WARN.toString()); response.getOutputStream().flush(); } catch (IOException e) { log.warn("Cannot write to output: " + e.getMessage());
protected static final void writeEntriesToResponse(SlingHttpServletRequest request, SlingHttpServletResponse response, String message) throws IOException { log.trace("writeEntriesToResponse"); log.debug("Requesting redirect maps from {}", request.getResource()); RedirectMapModel redirectMap = request.getResource().adaptTo(RedirectMapModel.class); response.setContentType(MediaType.JSON_UTF_8.toString()); JsonObject res = new JsonObject(); res.addProperty("message", message); if (redirectMap != null) { JsonElement entries = gson.toJsonTree(redirectMap.getEntries(), new TypeToken<List<MapEntry>>() { }.getType()); res.add("entries", entries); res.add("invalidEntries", gson.toJsonTree(redirectMap.getInvalidEntries(), new TypeToken<List<MapEntry>>() { }.getType())); } else { throw new IOException("Failed to get redirect map from " + request.getResource()); } IOUtils.write(res.toString(), response.getOutputStream(), StandardCharsets.UTF_8); } }
OutputStream out = response.getOutputStream(); out.write(binaryData); out.flush();
/** * Add overrides for other SlingSafeMethodsServlet here (doGeneric, doHead, doOptions, doTrace) * */ @Override protected final void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { // Implement custom handling of GET requests boolean responseIsText = true; if (responseIsText) { // Write a standard text/html response response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); response.getWriter().write("<html><body>Text to write to response</body></html>"); } else { // Write some binary data to the response; Such as sending back an Image or PDF InputStream input = new InputStream() { @Override public int read() throws IOException { return 0; } }; response.setContentType(getServletContext().getMimeType(request.getPathInfo())); OutputStream output = response.getOutputStream(); byte[] buffer = new byte[FOUR_KB]; for (int length = 0; (length = input.read(buffer)) > 0;) { output.write(buffer, 0, length); output.flush(); } } }
int read; byte[] bytes = new byte[BYTES_DOWNLOAD]; OutputStream os = response.getOutputStream();
private void serveCacheContentIntoResponse(SlingHttpServletResponse response, CacheContent cacheContent) throws IOException { if(HttpCacheServletResponseWrapper.ResponseWriteMethod.OUTPUTSTREAM.equals(cacheContent.getWriteMethod())){ try { IOUtils.copy(cacheContent.getInputDataStream(), response.getOutputStream()); } catch(IllegalStateException ex) { // in this case, either the writer has already been obtained or the response doesn't support getOutputStream() IOUtils.copy(cacheContent.getInputDataStream(), response.getWriter(), response.getCharacterEncoding()); } }else{ IOUtils.copy(cacheContent.getInputDataStream(), response.getWriter(), response.getCharacterEncoding()); } }
/** * Given a {@link Layer}, this method will attempt to resize it proportionally given the supplied {@code resizeWidth}. If the resize * operation would result in up-scaling, then the layer is rendered without any resize operation applied. * * @param response the response * @param layer the layer * @param imageType the mime type of the image represented by the {@code layer} * @param resizeWidth the resize width * @throws IOException if the streaming of the {@link Layer} into the response's output stream cannot be performed */ private void resizeAndStreamLayer(SlingHttpServletResponse response, Layer layer, String imageType, int resizeWidth, double quality) throws IOException { int width = layer.getWidth(); int height = layer.getHeight(); int resizeHeight = calculateResizeHeight(width, height, resizeWidth); if (resizeHeight > 0) { layer.resize(resizeWidth, resizeHeight); response.setContentType(imageType); LOGGER.debug("Resizing processed (cropped and/or rotated) layer from its current width of {}px to {}px.", width, resizeWidth); layer.write(imageType, quality, response.getOutputStream()); } else { response.setContentType(imageType); LOGGER.debug("No need to resize processed (cropped and/or rotated) layer since it would lead to upscaling; rendering."); layer.write(imageType, quality, response.getOutputStream()); } }
int read; byte[] bytes = new byte[BYTES_DOWNLOAD]; OutputStream os = response.getOutputStream();
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { ManagedProcess report = request.getResource().adaptTo(ManagedProcess.class); if (report != null) { String title = report.getName(); String fileName = JcrUtil.createValidName(title) + ".xlsx"; Workbook workbook = createSpreadsheet(report); response.setContentType("application/vnd.ms-excel"); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); try (ServletOutputStream out = response.getOutputStream()) { workbook.write(out); out.flush(); } catch (Exception ex) { LOG.error("Error generating excel export for " + request.getResource().getPath(), ex); throw ex; } } else { LOG.error("Unable to process report stored at " + request.getResource().getPath()); throw new ServletException("Unable to process report stored at " + request.getResource().getPath()); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { GenericReport report = request.getResource().adaptTo(GenericReport.class); if (report != null) { String title = report.getName(); String fileName = JcrUtil.createValidName(title) + ".xlsx"; Workbook workbook = createSpreadsheet(report); response.setContentType("application/vnd.ms-excel"); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); try (ServletOutputStream out = response.getOutputStream()) { workbook.write(out); out.flush(); } catch (Exception ex) { LOG.error("Error generating excel export for "+request.getResource().getPath(), ex); throw ex; } } else { LOG.error("Unable to process report stored at "+request.getResource().getPath()); throw new ServletException("Unable to process report stored at "+request.getResource().getPath()); } }
ProgressiveJpeg.write(layer, quality, response.getOutputStream()); } else { layer.write(mimeType, quality, response.getOutputStream());
ProgressiveJPEG.write(layer, quality, response.getOutputStream()); } else { layer.write(mimeType, quality, response.getOutputStream());