Skip to content

Instantly share code, notes, and snippets.

@pdemanget
Last active December 20, 2015 17:58
Show Gist options
  • Save pdemanget/6172110 to your computer and use it in GitHub Desktop.
Save pdemanget/6172110 to your computer and use it in GitHub Desktop.
This is a Tomcat or JavaWeb Filter to specify encoding UTF-8 on each file we serve. This is needed to serve Javascritp file with the right encoding for example.
package jopenid.sample;
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;
/**
* Set request's character encoding to UTF-8.
*
* @author Michael Liao ([email protected])
*/
public class EncodingFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
public void destroy() {
}
}
@pdemanget
Copy link
Author

We may also add caching filters

see http://stackoverflow.com/questions/2876250/tomcat-cache-control

import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

public class CacheControlFilter implements Filter {

public void doFilter(ServletRequest request, ServletResponse response,
                     FilterChain chain) throws IOException, ServletException {

    HttpServletResponse resp = (HttpServletResponse) response;
    resp.setHeader("Expires", "Tue, 03 Jul 2001 06:00:00 GMT");
    resp.setHeader("Last-Modified", new Date().toString());
    resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0");
    resp.setHeader("Pragma", "no-cache");

    chain.doFilter(request, response);
}

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment