1 3 package jodd.servlet.filter; 4 5 import java.io.IOException ; 6 7 import javax.servlet.Filter ; 8 import javax.servlet.FilterChain ; 9 import javax.servlet.FilterConfig ; 10 import javax.servlet.ServletException ; 11 import javax.servlet.ServletRequest ; 12 import javax.servlet.ServletResponse ; 13 14 15 41 42 public class CharacterEncodingFilter implements Filter { 43 44 48 protected String encoding = null; 49 50 54 protected FilterConfig filterConfig = null; 55 56 59 protected boolean ignore = true; 60 61 62 65 public void destroy() { 66 this.encoding = null; 67 this.filterConfig = null; 68 } 69 70 71 84 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException , ServletException { 85 86 if (ignore || (request.getCharacterEncoding() == null)) { 88 String encodingStr = selectEncoding(request); 89 if (encodingStr != null) { 90 request.setCharacterEncoding(encodingStr); 91 response.setCharacterEncoding(encodingStr); 92 } 93 } 94 chain.doFilter(request, response); 95 } 96 97 102 public void init(FilterConfig filterConfig) throws ServletException { 103 104 this.filterConfig = filterConfig; 105 this.encoding = filterConfig.getInitParameter("encoding"); 106 String value = filterConfig.getInitParameter("ignore"); 107 if (value == null) { 108 this.ignore = true; 109 } else { 110 this.ignore = value.equalsIgnoreCase("true"); 111 } 112 } 113 114 126 protected String selectEncoding(ServletRequest request) { 127 return(this.encoding); 128 } 129 } 130 131 | Popular Tags |