Filter 字符过滤器
2010-11-02 11:11
197 查看
/** * 中文过滤器 */ public class SetCharacterEncodingFilter implements Filter { // ----------------------------------------------------- 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; /** * Should a character encoding specified by the client be ignored? */ protected boolean ignore = true; // --------------------------------------------------------- Public Methods /** * Take this filter out of service. */ 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. * * @param request The servlet request we are processing * @param result The servlet response we are creating * @param chain The filter chain we are processing * * @exception IOException if an input/output error occurs * @exception ServletException if a servlet error occurs */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // Conditionally select and set the character encoding to be used if (ignore || (request.getCharacterEncoding() == null)) { String encoding = selectEncoding(request); if (encoding != null) request.setCharacterEncoding(encoding); } // Pass control on to the next filter chain.doFilter(request, response); } /** * Place this filter into service. * * @param filterConfig The filter configuration object */ public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); String value = filterConfig.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 /** * Select an appropriate character encoding to be used, based on the * characteristics of the current request and/or filter initialization * parameters. If no character encoding should be set, return * <code>null</code>. * <p> * The default implementation unconditionally returns the value configured * by the <strong>encoding</strong> initialization parameter for this * filter. * * @param request The servlet request we are processing */ protected String selectEncoding(ServletRequest request) { return (this.encoding); } }
相关文章推荐
- 配置web.xml中Filter的(字符)过滤器
- jsp filter字符过滤器
- CharGzipFilter字符压缩过滤器(装饰模式)
- Solr中的概念:分析器(analyzer)、字符过滤器(character filter)、分词器(Tokenizer)、词元过滤器(Token Filter)、 词干化(Stemming)
- Servlet- Filter-实例-非法字符过滤器
- java字符编码过滤器EncodingFilter
- 在SpringMVC中使用过滤器(Filter)过滤容易引发XSS的危险字符
- 我在项目中用了spring的CharacterEncodingFilter这个字符过滤器 但是后台还是乱码?
- 在SpringMVC中使用过滤器(Filter)过滤容易引发XSS的危险字符
- Filter案例(字符过滤器)
- Filter(过滤器)之字符替换和编码设置
- Filter 过滤器
- Servlet Filter(过滤器)
- Servlet Filter(过滤器) --->张国亮总结心得第二季
- 过滤器----张国亮总结第三季之Filter常见应用
- 过滤器(filter)、拦截器(interceptor)、监听(listener)
- BIF--filter() 过滤器 和 map()映射
- 关于web.xml中同一个过滤器filter映射多个路径
- java filter过滤器的功能简要介绍
- Filter(过滤器)常见应用(一)