1 13 package info.magnolia.cms.filters; 14 15 import info.magnolia.cms.beans.config.MIMEMapping; 16 17 import java.io.IOException ; 18 import java.io.UnsupportedEncodingException ; 19 20 import javax.servlet.Filter ; 21 import javax.servlet.FilterChain ; 22 import javax.servlet.FilterConfig ; 23 import javax.servlet.ServletException ; 24 import javax.servlet.ServletRequest ; 25 import javax.servlet.ServletResponse ; 26 import javax.servlet.http.HttpServletRequest ; 27 28 import org.apache.commons.lang.StringUtils; 29 import org.slf4j.Logger; 30 import org.slf4j.LoggerFactory; 31 32 33 38 public class ContentTypeFilter implements Filter { 39 40 43 private static Logger log = LoggerFactory.getLogger(ContentTypeFilter.class); 44 45 48 public void init(FilterConfig filterConfig) throws ServletException { 49 } 51 52 55 public void destroy() { 56 } 58 59 63 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain) throws IOException , 64 ServletException { 65 this.setContentType(req, resp); 66 filterChain.doFilter(req, resp); 67 } 68 69 private void setContentType(ServletRequest req, ServletResponse resp) { 70 resp.setContentType(MIMEMapping.getMIMEType((HttpServletRequest ) req)); 71 String characterEncoding = MIMEMapping.getContentEncoding((HttpServletRequest ) req); 72 73 if (StringUtils.isEmpty(characterEncoding)) { 74 characterEncoding = "UTF-8"; } 76 77 resp.setCharacterEncoding(characterEncoding); 78 79 try { 80 req.setCharacterEncoding(characterEncoding); 81 } 82 catch (IllegalStateException e) { 83 log.debug("can't set character encoding for the request", e); } 85 catch (UnsupportedEncodingException e) { 86 log.error("can't set character encoding for the request", e); } 88 } 89 90 } | Popular Tags |