KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > info > magnolia > cms > filters > ContentTypeFilter


1 /**
2  *
3  * Magnolia and its source-code is licensed under the LGPL.
4  * You may copy, adapt, and redistribute this file for commercial or non-commercial use.
5  * When copying, adapting, or redistributing this document in keeping with the guidelines above,
6  * you are required to provide proper attribution to obinary.
7  * If you reproduce or distribute the document without making any substantive modifications to its content,
8  * please use the following attribution line:
9  *
10  * Copyright 1993-2006 obinary Ltd. (http://www.obinary.com) All rights reserved.
11  *
12  */

13 package info.magnolia.cms.filters;
14
15 import info.magnolia.cms.beans.config.MIMEMapping;
16
17 import java.io.IOException JavaDoc;
18 import java.io.UnsupportedEncodingException JavaDoc;
19
20 import javax.servlet.Filter JavaDoc;
21 import javax.servlet.FilterChain JavaDoc;
22 import javax.servlet.FilterConfig JavaDoc;
23 import javax.servlet.ServletException JavaDoc;
24 import javax.servlet.ServletRequest JavaDoc;
25 import javax.servlet.ServletResponse JavaDoc;
26 import javax.servlet.http.HttpServletRequest JavaDoc;
27
28 import org.apache.commons.lang.StringUtils;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32
33 /**
34  * @author Sameer Charles
35  * @author Fabrizio Giustina
36  * @version $Id: ContentTypeFilter.java 6341 2006-09-12 09:18:27Z philipp $
37  */

38 public class ContentTypeFilter implements Filter JavaDoc {
39
40     /**
41      * Logger.
42      */

43     private static Logger log = LoggerFactory.getLogger(ContentTypeFilter.class);
44
45     /**
46      * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
47      */

48     public void init(FilterConfig JavaDoc filterConfig) throws ServletException JavaDoc {
49         // unused
50
}
51
52     /**
53      * @see javax.servlet.Filter#destroy()
54      */

55     public void destroy() {
56         // unused
57
}
58
59     /**
60      * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse,
61      * javax.servlet.FilterChain)
62      */

63     public void doFilter(ServletRequest JavaDoc req, ServletResponse JavaDoc resp, FilterChain JavaDoc filterChain) throws IOException JavaDoc,
64         ServletException JavaDoc {
65         this.setContentType(req, resp);
66         filterChain.doFilter(req, resp);
67     }
68
69     private void setContentType(ServletRequest JavaDoc req, ServletResponse JavaDoc resp) {
70         resp.setContentType(MIMEMapping.getMIMEType((HttpServletRequest JavaDoc) req));
71         String JavaDoc characterEncoding = MIMEMapping.getContentEncoding((HttpServletRequest JavaDoc) req);
72
73         if (StringUtils.isEmpty(characterEncoding)) {
74             characterEncoding = "UTF-8"; //$NON-NLS-1$
75
}
76
77         resp.setCharacterEncoding(characterEncoding);
78
79         try {
80             req.setCharacterEncoding(characterEncoding);
81         }
82         catch (IllegalStateException JavaDoc e) {
83             log.debug("can't set character encoding for the request", e); //$NON-NLS-1$
84
}
85         catch (UnsupportedEncodingException JavaDoc e) {
86             log.error("can't set character encoding for the request", e); //$NON-NLS-1$
87
}
88     }
89
90 }
Popular Tags