Author: markt Date: Thu Jul 21 13:20:40 2011 New Revision: 1149166 URL: http://svn.apache.org/viewvc?rev=1149166&view=rev Log: Promote the Set Character Encoding filter to the filters package so it is more widely available.
Added: tomcat/trunk/java/org/apache/catalina/filters/SetCharacterEncodingFilter.java - copied, changed from r1148925, tomcat/trunk/webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java Removed: tomcat/trunk/webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java Modified: tomcat/trunk/webapps/docs/changelog.xml tomcat/trunk/webapps/docs/config/filter.xml tomcat/trunk/webapps/examples/WEB-INF/web.xml Copied: tomcat/trunk/java/org/apache/catalina/filters/SetCharacterEncodingFilter.java (from r1148925, tomcat/trunk/webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java) URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/filters/SetCharacterEncodingFilter.java?p2=tomcat/trunk/java/org/apache/catalina/filters/SetCharacterEncodingFilter.java&p1=tomcat/trunk/webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java&r1=1148925&r2=1149166&rev=1149166&view=diff ============================================================================== --- tomcat/trunk/webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java (original) +++ tomcat/trunk/java/org/apache/catalina/filters/SetCharacterEncodingFilter.java Thu Jul 21 13:20:40 2011 @@ -14,19 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -package filters; - +package org.apache.catalina.filters; import java.io.IOException; -import javax.servlet.Filter; import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; + /** * <p>Example filter that sets the character encoding to be used in parsing the @@ -43,7 +42,7 @@ import javax.servlet.ServletResponse; * <code>selectEncoding()</code> method is set. If set to "false, * <code>selectEncoding()</code> is called <strong>only</strong> if the * client has not already specified an encoding. By default, this - * parameter is set to "true".</li> + * parameter is set to "false".</li> * </ul> * * <p>Although this filter can be used unchanged, it is also easy to @@ -52,53 +51,37 @@ import javax.servlet.ServletResponse; * the incoming request (such as the values of the <code>Accept-Language</code> * and <code>User-Agent</code> headers, or a value stashed in the current * user's session.</p> - * - * @author Craig McClanahan - * @version $Id$ */ -public class SetCharacterEncodingFilter implements Filter { +public class SetCharacterEncodingFilter extends FilterBase { + private static final Log log = + LogFactory.getLog(SetCharacterEncodingFilter.class); - // ----------------------------------------------------- Instance Variables + // ----------------------------------------------------- Instance Variables /** * The default character encoding to set for requests that pass through * this filter. */ - protected String encoding = null; - - - /** - * The filter configuration object we are associated with. If this value - * is null, this filter instance is not currently configured. - */ - protected FilterConfig filterConfig = null; + private String encoding = null; + public void setEncoding(String encoding) { this.encoding = encoding; } + public String getEncoding() { return encoding; } /** * Should a character encoding specified by the client be ignored? */ - protected boolean ignore = true; + private boolean ignore = false; + public void setIgnore(boolean ignore) { this.ignore = ignore; } + public boolean isIgnore() { return ignore; } // --------------------------------------------------------- Public Methods /** - * Take this filter out of service. - */ - @Override - public void destroy() { - - this.encoding = null; - this.filterConfig = null; - - } - - - /** * Select and set (if specified) the character encoding to be used to * interpret request parameters for this request. * @@ -123,36 +106,17 @@ public class SetCharacterEncodingFilter // Pass control on to the next filter chain.doFilter(request, response); - } - /** - * Place this filter into service. - * - * @param fConfig The filter configuration object - */ - @Override - public void init(FilterConfig fConfig) throws ServletException { - - this.filterConfig = fConfig; - this.encoding = fConfig.getInitParameter("encoding"); - String value = fConfig.getInitParameter("ignore"); - if (value == null) - this.ignore = true; - else if (value.equalsIgnoreCase("true")) - this.ignore = true; - else if (value.equalsIgnoreCase("yes")) - this.ignore = true; - else - this.ignore = false; + // ------------------------------------------------------ Protected Methods + @Override + protected Log getLogger() { + return log; } - // ------------------------------------------------------ Protected Methods - - /** * Select an appropriate character encoding to be used, based on the * characteristics of the current request and/or filter initialization @@ -166,10 +130,6 @@ public class SetCharacterEncodingFilter * @param request The servlet request we are processing */ protected String selectEncoding(ServletRequest request) { - - return (this.encoding); - + return this.encoding; } - - } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1149166&r1=1149165&r2=1149166&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Thu Jul 21 13:20:40 2011 @@ -70,6 +70,11 @@ <bug>51518</bug>: Correct error in web.xml parsing rules for the <others/> tag when using absolute ordering. (markt) </fix> + <add> + Move the SetCharacaterEncoding filter from the examples web application + to the <code>org.apache.catalina.filters</code> package so it is + available for all web applications. (markt) + </add> </changelog> </subsection> <subsection name="Coyote"> Modified: tomcat/trunk/webapps/docs/config/filter.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/filter.xml?rev=1149166&r1=1149165&r2=1149166&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/config/filter.xml (original) +++ tomcat/trunk/webapps/docs/config/filter.xml Thu Jul 21 13:20:40 2011 @@ -1100,6 +1100,51 @@ org.apache.catalina.filters.RequestDumpe </section> +<section name="Set Character Encoding Filter"> + + <subsection name="Introduction"> + + <p>User agents don't always include character encoding information in + requests. Depending on the how the request is processed, a default of either + ISO-8859-1 or the platform default encoding may be used. This is not always + desirable. This filter provides options for setting that encoding or forcing + it to a particular value.</p> + + </subsection> + + <subsection name="Filter Class Name"> + + <p>The filter class name for the Set Character Encoding Filter is + <strong><code>org.apache.catalina.filters.SetCharacterEncodingFilter</code> + </strong>.</p> + + </subsection> + + <subsection name="Initialisation parameters"> + + <p>The Set Character Encoding Filter supports the following initialization + parameters:</p> + + <attributes> + + <attribute name="encoding" required="false"> + <p>Name of the character encoding which should be set.</p> + </attribute> + + <attribute name="ignore" required="false"> + <p>Determines if any character encoding specified by the user agent is + ignored. If this attribute is <code>true</code>, any value provided by + the user agent is ignored. If <code>false</code>, the encoding is only + set if the user agent did not specify an encoding.</p> + </attribute> + + </attributes> + + </subsection> + +</section> + + <section name="WebDAV Fix Filter"> <subsection name="Introduction"> Modified: tomcat/trunk/webapps/examples/WEB-INF/web.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/web.xml?rev=1149166&r1=1149165&r2=1149166&view=diff ============================================================================== --- tomcat/trunk/webapps/examples/WEB-INF/web.xml (original) +++ tomcat/trunk/webapps/examples/WEB-INF/web.xml Thu Jul 21 13:20:40 2011 @@ -46,11 +46,15 @@ <!-- Example filter to set character encoding on each request --> <filter> <filter-name>Set Character Encoding</filter-name> - <filter-class>filters.SetCharacterEncodingFilter</filter-class> + <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>EUC_JP</param-value> </init-param> + <init-param> + <param-name>ignore</param-name> + <param-value>true</param-value> + </init-param> </filter> <filter> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org