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: [email protected]
For additional commands, e-mail: [email protected]