play.libs.MimeTypes.getContentType() - java examples

Here are the examples of the java api play.libs.MimeTypes.getContentType() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

8 Examples 7

18 View Complete Implementation : RenderTemplate.java
Copyright Apache License 2.0
Author : eBay
public void apply(Request request, Response response) {
    try {
        final String contentType = MimeTypes.getContentType(name, "text/plain");
        response.out.write(content.getBytes(getEncoding()));
        setContentTypeIfNotSet(response, contentType);
    } catch (Exception e) {
        throw new UnexpectedException(e);
    }
}

16 View Complete Implementation : RenderBinary.java
Copyright Apache License 2.0
Author : eBay
@Override
public void apply(Request request, Response response) {
    try {
        if (name != null) {
            setContentTypeIfNotSet(response, MimeTypes.getContentType(name));
        }
        if (contentType != null) {
            response.contentType = contentType;
        }
        String dispositionType;
        if (inline) {
            dispositionType = INLINE_DISPOSITION_TYPE;
        } else {
            dispositionType = ATTACHMENT_DISPOSITION_TYPE;
        }
        if (!response.headers.containsKey("Content-Disposition")) {
            if (name == null) {
                response.setHeader("Content-Disposition", dispositionType);
            } else {
                if (canAsciiEncode(name)) {
                    String contentDisposition = "%s; filename=\"%s\"";
                    response.setHeader("Content-Disposition", String.format(contentDisposition, dispositionType, name));
                } else {
                    final String encoding = getEncoding();
                    String contentDisposition = "%1$s; filename*=" + encoding + "''%2$s; filename=\"%2$s\"";
                    response.setHeader("Content-Disposition", String.format(contentDisposition, dispositionType, encoder.encode(name, encoding)));
                }
            }
        }
        if (file != null) {
            if (!file.exists()) {
                throw new UnexpectedException("Your file does not exists (" + file + ")");
            }
            if (!file.canRead()) {
                throw new UnexpectedException("Can't read your file (" + file + ")");
            }
            if (!file.isFile()) {
                throw new UnexpectedException("Your file is not a real file (" + file + ")");
            }
            response.direct = file;
        } else {
            if (response.getHeader("Content-Length") != null) {
                response.direct = is;
            } else {
                if (length != 0) {
                    response.setHeader("Content-Length", length + "");
                    response.direct = is;
                } else {
                    byte[] buffer = new byte[8092];
                    int count = 0;
                    while ((count = is.read(buffer)) > 0) {
                        response.out.write(buffer, 0, count);
                    }
                    is.close();
                }
            }
        }
    } catch (Exception e) {
        throw new UnexpectedException(e);
    }
}

15 View Complete Implementation : ServletWrapper.java
Copyright Apache License 2.0
Author : eBay
public void serve404(HttpServletRequest servletRequest, HttpServletResponse servletResponse, NotFound e) {
    Logger.warn("404 -> %s %s (%s)", servletRequest.getMethod(), servletRequest.getRequestURI(), e.getMessage());
    servletResponse.setStatus(404);
    servletResponse.setContentType("text/html");
    Map<String, Object> binding = new HashMap<String, Object>();
    binding.put("result", e);
    binding.put("session", Scope.Session.current());
    binding.put("request", Http.Request.current());
    binding.put("flash", Scope.Flash.current());
    binding.put("params", Scope.Params.current());
    binding.put("play", new Play());
    try {
        binding.put("errors", Validation.errors());
    } catch (Exception ex) {
    // 
    }
    String format = Request.current().format;
    servletResponse.setStatus(404);
    // Do we have an ajax request? If we have then we want to display some text even if it is html that is requested
    if ("XMLHttpRequest".equals(servletRequest.getHeader("X-Requested-With")) && (format == null || format.equals("html"))) {
        format = "txt";
    }
    if (format == null) {
        format = "txt";
    }
    servletResponse.setContentType(MimeTypes.getContentType("404." + format, "text/plain"));
    String errorHtml = TemplateLoader.load("errors/404." + format).render(binding);
    try {
        servletResponse.getOutputStream().write(errorHtml.getBytes(Response.current().encoding));
    } catch (Exception fex) {
        Logger.error(fex, "(encoding ?)");
    }
}

15 View Complete Implementation : PlayGrizzlyAdapter.java
Copyright Apache License 2.0
Author : eBay
public void serve404(GrizzlyRequest request, GrizzlyResponse response, NotFound e) {
    Logger.warn("404 -> %s %s (%s)", request.getMethod(), request.getRequestURI(), e.getMessage());
    response.setStatus(404);
    response.setContentType("text/html");
    Map<String, Object> binding = new HashMap<String, Object>();
    binding.put("result", e);
    binding.put("session", Scope.Session.current());
    binding.put("request", Http.Request.current());
    binding.put("flash", Scope.Flash.current());
    binding.put("params", Scope.Params.current());
    binding.put("play", new Play());
    try {
        binding.put("errors", Validation.errors());
    } catch (Exception ex) {
    // 
    }
    String format = Request.current().format;
    response.setStatus(404);
    // Do we have an ajax request? If we have then we want to display some text even if it is html that is requested
    if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With")) && (format == null || format.equals("html"))) {
        format = "txt";
    }
    if (format == null) {
        format = "txt";
    }
    response.setContentType(MimeTypes.getContentType("404." + format, "text/plain"));
    String errorHtml = TemplateLoader.load("errors/404." + format).render(binding);
    try {
        response.getOutputStream().write(errorHtml.getBytes("utf-8"));
    } catch (Exception fex) {
        Logger.error(fex, "(utf-8 ?)");
    }
}

13 View Complete Implementation : PlayGrizzlyAdapter.java
Copyright Apache License 2.0
Author : eBay
public void serve500(Exception e, GrizzlyRequest request, GrizzlyResponse response) {
    try {
        Map<String, Object> binding = new HashMap<String, Object>();
        if (!(e instanceof PlayException)) {
            e = new play.exceptions.UnexpectedException(e);
        }
        // Flush some cookies
        try {
            Map<String, Http.Cookie> cookies = Response.current().cookies;
            for (Http.Cookie cookie : cookies.values()) {
                if (cookie.sendOnError) {
                    Cookie c = new Cookie(cookie.name, cookie.value);
                    c.setSecure(cookie.secure);
                    c.setPath(cookie.path);
                    if (cookie.domain != null) {
                        c.setDomain(cookie.domain);
                    }
                    response.addCookie(c);
                }
            }
        } catch (Exception exx) {
        // humm ?
        }
        binding.put("exception", e);
        binding.put("session", Scope.Session.current());
        binding.put("request", Http.Request.current());
        binding.put("flash", Scope.Flash.current());
        binding.put("params", Scope.Params.current());
        binding.put("play", new Play());
        try {
            binding.put("errors", Validation.errors());
        } catch (Exception ex) {
        // 
        }
        response.setStatus(500);
        String format = "html";
        if (Request.current() != null) {
            format = Request.current().format;
        }
        // Do we have an ajax request? If we have then we want to display some text even if it is html that is requested
        if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With")) && (format == null || format.equals("html"))) {
            format = "txt";
        }
        if (format == null) {
            format = "txt";
        }
        response.setContentType(MimeTypes.getContentType("500." + format, "text/plain"));
        try {
            String errorHtml = TemplateLoader.load("errors/500." + format).render(binding);
            response.getOutputStream().write(errorHtml.getBytes("utf-8"));
            Logger.error(e, "Internal Server Error (500)");
        } catch (Throwable ex) {
            Logger.error(e, "Internal Server Error (500)");
            Logger.error(ex, "Error during the 500 response generation");
            throw ex;
        }
    } catch (Throwable exxx) {
        if (exxx instanceof RuntimeException) {
            throw (RuntimeException) exxx;
        }
        throw new RuntimeException(exxx);
    }
}

12 View Complete Implementation : ServletWrapper.java
Copyright Apache License 2.0
Author : eBay
public void serve500(Exception e, HttpServletRequest request, HttpServletResponse response) {
    try {
        Map<String, Object> binding = new HashMap<String, Object>();
        if (!(e instanceof PlayException)) {
            e = new play.exceptions.UnexpectedException(e);
        }
        // Flush some cookies
        try {
            Map<String, Http.Cookie> cookies = Response.current().cookies;
            for (Http.Cookie cookie : cookies.values()) {
                if (cookie.sendOnError) {
                    Cookie c = new Cookie(cookie.name, cookie.value);
                    c.setSecure(cookie.secure);
                    c.setPath(cookie.path);
                    if (cookie.domain != null) {
                        c.setDomain(cookie.domain);
                    }
                    response.addCookie(c);
                }
            }
        } catch (Exception exx) {
        // humm ?
        }
        binding.put("exception", e);
        binding.put("session", Scope.Session.current());
        binding.put("request", Http.Request.current());
        binding.put("flash", Scope.Flash.current());
        binding.put("params", Scope.Params.current());
        binding.put("play", new Play());
        try {
            binding.put("errors", Validation.errors());
        } catch (Exception ex) {
        // 
        }
        response.setStatus(500);
        String format = "html";
        if (Request.current() != null) {
            format = Request.current().format;
        }
        // Do we have an ajax request? If we have then we want to display some text even if it is html that is requested
        if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With")) && (format == null || format.equals("html"))) {
            format = "txt";
        }
        if (format == null) {
            format = "txt";
        }
        response.setContentType(MimeTypes.getContentType("500." + format, "text/plain"));
        try {
            String errorHtml = TemplateLoader.load("errors/500." + format).render(binding);
            response.getOutputStream().write(errorHtml.getBytes(Response.current().encoding));
            Logger.error(e, "Internal Server Error (500)");
        } catch (Throwable ex) {
            Logger.error(e, "Internal Server Error (500)");
            Logger.error(ex, "Error during the 500 response generation");
            throw ex;
        }
    } catch (Throwable exxx) {
        if (exxx instanceof RuntimeException) {
            throw (RuntimeException) exxx;
        }
        throw new RuntimeException(exxx);
    }
}

11 View Complete Implementation : ServletWrapper.java
Copyright Apache License 2.0
Author : eBay
public void serveStatic(HttpServletResponse servletResponse, HttpServletRequest servletRequest, RenderStatic renderStatic) throws IOException {
    VirtualFile file = Play.getVirtualFile(renderStatic.file);
    if (file == null || file.isDirectory() || !file.exists()) {
        serve404(servletRequest, servletResponse, new NotFound("The file " + renderStatic.file + " does not exist"));
    } else {
        servletResponse.setContentType(MimeTypes.getContentType(file.getName()));
        boolean raw = Play.pluginCollection.serveStatic(file, Request.current(), Response.current());
        if (raw) {
            copyResponse(Request.current(), Response.current(), servletRequest, servletResponse);
        } else {
            if (Play.mode == Play.Mode.DEV) {
                servletResponse.setHeader("Cache-Control", "no-cache");
                servletResponse.setHeader("Content-Length", String.valueOf(file.length()));
                if (!servletRequest.getMethod().equals("HEAD")) {
                    copyStream(servletResponse, file.inputstream());
                } else {
                    copyStream(servletResponse, new ByteArrayInputStream(new byte[0]));
                }
            } else {
                long last = file.lastModified();
                String etag = "\"" + last + "-" + file.hashCode() + "\"";
                if (!isModified(etag, last, servletRequest)) {
                    servletResponse.setHeader("Etag", etag);
                    servletResponse.setStatus(304);
                } else {
                    servletResponse.setHeader("Last-Modified", Utils.getHttpDateFormatter().format(new Date(last)));
                    servletResponse.setHeader("Cache-Control", "max-age=" + Play.configuration.getProperty("http.cacheControl", "3600"));
                    servletResponse.setHeader("Etag", etag);
                    copyStream(servletResponse, file.inputstream());
                }
            }
        }
    }
}

11 View Complete Implementation : PlayGrizzlyAdapter.java
Copyright Apache License 2.0
Author : eBay
public void serveStatic(GrizzlyRequest grizzlyRequest, GrizzlyResponse grizzlyResponse, RenderStatic renderStatic) {
    VirtualFile file = Play.getVirtualFile(renderStatic.file);
    if (file == null || file.isDirectory() || !file.exists()) {
        serve404(grizzlyRequest, grizzlyResponse, new NotFound("The file " + renderStatic.file + " does not exist"));
    } else {
        grizzlyResponse.setContentType(MimeTypes.getContentType(file.getName()));
        boolean raw = false;
        for (PlayPlugin plugin : Play.plugins) {
            if (plugin.serveStatic(file, Request.current(), Response.current())) {
                raw = true;
                break;
            }
        }
        try {
            if (raw) {
                copyResponse(Request.current(), Response.current(), grizzlyRequest, grizzlyResponse);
            } else {
                if (Play.mode == Play.Mode.DEV) {
                    grizzlyResponse.setHeader("Cache-Control", "no-cache");
                    grizzlyResponse.setHeader("Content-Length", String.valueOf(file.length()));
                    if (!grizzlyRequest.getMethod().equals("HEAD")) {
                        copyStream(grizzlyResponse, file.inputstream());
                    } else {
                        copyStream(grizzlyResponse, new ByteArrayInputStream(new byte[0]));
                    }
                } else {
                    long last = file.lastModified();
                    String etag = "\"" + last + "-" + file.hashCode() + "\"";
                    if (!isModified(etag, last, grizzlyRequest)) {
                        grizzlyResponse.setHeader("Etag", etag);
                        grizzlyResponse.setStatus(304);
                    } else {
                        grizzlyResponse.setHeader("Last-Modified", Utils.getHttpDateFormatter().format(new Date(last)));
                        grizzlyResponse.setHeader("Cache-Control", "max-age=" + Play.configuration.getProperty("http.cacheControl", "3600"));
                        grizzlyResponse.setHeader("Etag", etag);
                        copyStream(grizzlyResponse, file.inputstream());
                    }
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}