}
resp.setDateHeader(HttpHeaders.LAST_MODIFIED, asset.getLastModifiedTime());
resp.setHeader(HttpHeaders.ETAG, asset.getETag());
MediaType mediaType = DEFAULT_MEDIA_TYPE;
Buffer mimeType = mimeTypes.getMimeByExtension(req.getRequestURI());
if (mimeType != null) {
try {
mediaType = MediaType.parse(mimeType.toString());
if (defaultCharset != null && mediaType.is(MediaType.ANY_TEXT_TYPE)) {
mediaType = mediaType.withCharset(defaultCharset);
}
} catch (IllegalArgumentException ignore) {}
}
resp.setContentType(mediaType.type() + "/" + mediaType.subtype());
if (mediaType.charset().isPresent()) {
resp.setCharacterEncoding(mediaType.charset().get().toString());
}
final ServletOutputStream output = resp.getOutputStream();
try {
output.write(asset.getResource());