`

统一字符集过滤器较标准写法

阅读更多
java 代码
  1. package org.langsin.computer.util;   
  2.   
  3. import java.io.IOException;   
  4.   
  5. import javax.servlet.Filter;   
  6. import javax.servlet.FilterChain;   
  7. import javax.servlet.FilterConfig;   
  8. import javax.servlet.ServletException;   
  9. import javax.servlet.ServletRequest;   
  10. import javax.servlet.ServletResponse;   
  11.   
  12. public class EncodingFilter implements Filter {   
  13.   
  14.    protected String encoding;   
  15.    protected boolean ignore;   
  16.    protected FilterConfig filterConfig;   
  17.  public void destroy() {   
  18.   // TODO Auto-generated method stub   
  19.   
  20.  }   
  21.   
  22.  public void doFilter(ServletRequest request, ServletResponse response,   
  23.    FilterChain chain) throws IOException, ServletException {   
  24.   if(ignore||request.getCharacterEncoding()==null){   
  25.    //如果ignore为真或者request.getCharacterEncoding()为null则执行   
  26.    String encoding=this.selectEncoding(request);   
  27.    if(encoding!=null){   
  28.     request.setCharacterEncoding(encoding);   
  29.    }   
  30.   }   
  31.   chain.doFilter(request, response);   
  32.     
  33.   
  34.  }   
  35.   
  36.  public void init(FilterConfig filterConfig) throws ServletException {   
  37.   this.filterConfig=filterConfig;   
  38.   this.encoding=filterConfig.getInitParameter("encoding");   
  39.   String value=filterConfig.getInitParameter("ignore");   
  40.   //用于配置文件中过滤器忽视大小写的操作   
  41.   if(value==null){   
  42.    this.ignore=true;   
  43.       
  44.   }else if(value.equalsIgnoreCase("true")){   
  45.    this.ignore=true;   
  46.   }else if(value.equalsIgnoreCase("yes")){   
  47.    this.ignore=true;   
  48.   }else{   
  49.    this.ignore=false;   
  50.   }   
  51.  }   
  52.  public String selectEncoding(ServletRequest request){   
  53.   return this.encoding;   
  54.  }   
  55.   
  56. }   
  57.   

 

然后在web.xml中进行配置

xml 代码
  1. <filter>  
  2.   <filter-name>encoding</filter-name>  
  3.   <filter-class>org.langsin.computer.util.EncodingFilter</filter-class>  
  4.   <init-param>  
  5.     <param-name>encoding</param-name>  
  6.     <param-value>UTF-8</param-value>  
  7.   </init-param>  
  8. </filter>  
  9. <filter-mapping>  
  10.   <filter-name>encoding</filter-name>  
  11.   <url-pattern>/*</url-pattern>  
  12. </filter-mapping>  
分享到:
评论

相关推荐

    sql 书写规范

    3. 系统可能选择基于规则的优化器,所以将结果集返回数据量小的表作为驱动表(from 后边最后一个表)。 4. 大量的排序操作影响系统性能,所以尽量减少 order by 和 group by 排序操作。 5. 索引的使用,避免对索引列...

    pdf文档格式入门教程

    PDF支持多种字符集,尽管推荐使用ASCII字符,但它可以处理任何8位字符。字符串和流通常建议采用ASCII表示,但也可以使用十六进制编码。PDF定义了三种字符集类别:regular、delimiter和white-space。此外,PDF定义了...

    国际语言环境指南(SUN)

    增强了键盘支持并改进了 mp 打印过滤器的几项功能。 Solaris 国际化体系结构简化了世界范围内的应用程序和语言服务的开发、部署和管理。 一个多语种产品能对 39 种不同语言和 162 种语言环境提供支持。另外,还支持...

    C# 命名规范、代码书写格式(含图表)

    在C#编程中,遵循一套良好的命名规范和代码书写格式是非常重要的,这有助于提高代码的可读性,降低维护成本,以及保持团队间的统一风格。本文将详细阐述C#中的命名规范、代码格式以及相关图表所示的规则。 一、命名...

    JavaEE新开发规范文档

    - 每个页面都应包含必要的meta信息,如字符集、关键词等。 **7. JSP的上的注释** - 每个JSP页面的`&lt;body&gt;`标签上都必须加入该JSP的名称注释,便于后期维护。 **8. CSS统一管理** - 所有CSS样式应集中管理,以确保...

    java源码 java ee基础入门实例 2018127

    例如,过滤器可以用来实现权限验证、字符编码转换、日志记录等功能。通过实现javax.servlet.Filter接口并配置在web.xml中,即可定义和注册过滤器。 5. **JDBC实例**: JDBC(Java Database Connectivity)是Java...

    解决JSP开发中Web程序显示中文三种方法

    第一种方法是在每个JSP页面中设置页面编码,而第二种方法是全局设置过滤器,对所有请求统一处理编码。选择哪种方法取决于项目的需求和规模,一般来说,大型项目或对编码有严格要求的项目更倾向于使用过滤器来确保...

    富文本编辑器,前端开发使用

    这需要考虑字符集(如UTF-8)、语言切换、右到左书写模式等。 "utf8-jsp"这个文件名可能是与字符编码和Java服务器页面(JSP)有关。在前端开发中,UTF-8是常见的字符编码格式,用于正确显示多种语言的字符。而JSP是...

    Oracle实验集

    这部分内容包括了如何书写简单的查询语句、如何对列的显示顺序进行控制、如何在列上使用表达式以及使用WHERE子句进行数据过滤等。在学习SQL基础时,理解如何查询表的所有行与列、如何对查询结果进行排序以及如何使用...

    tibetan-document-processing-with-solr:更新处理器和相关工具,用于操作包含藏文的 SOLR 文档

    藏文是一种复杂的语言,具有自己的字符集和书写规则,这给索引和搜索带来了挑战。项目描述中提到的“更新处理器”是指Solr中的一个组件,它在文档被添加到索引之前或之后执行某些处理任务。这些任务可能包括数据清洗...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    10-25 4 内容过滤器 可见度过滤器及练习讲解 10-26 1 课程回顾 10-26 2 属性过滤选择器 10-26 3 子元素选择器 表单对象属性选择器 10-26 4 jquery对象集合遍历的四种形式及练习题讲解 jquery的dom操作 10-27 1课程...

    Shell+Regex 复习笔记

    ` (匹配零次或一次前一个字符),`[]` (字符集),`^` (行首),`$` (行尾)。 2. **正则表达式在 Shell 中的应用**: - 在 Shell 脚本中,正则表达式通常用于文件名过滤、日志分析等场景。 - 例如,`sed 's/jpg/png/...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    10-25 4 内容过滤器 可见度过滤器及练习讲解 10-26 1 课程回顾 10-26 2 属性过滤选择器 10-26 3 子元素选择器 表单对象属性选择器 10-26 4 jquery对象集合遍历的四种形式及练习题讲解 jquery的dom操作 10-27 1课程...

    关于jQuery参考实例2.0 用jQuery选择元素

    在使用这些方法时,应注意选择器字符串的简洁性,因为复杂的选择器不仅书写繁琐,而且会影响性能。选择器字符串越长,jQuery处理这些字符串所需的时间就越长。 为了提高性能,开发者应该尽量简化选择器的编写,避免...

    mysql之Linux安装,重点是索引的优化笔记

    - 修改字符集通常需要编辑`my.cnf`文件中的相关设置。 - 例如: ```ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` **3. 二进制日志** - 配置文件中开启二进制日志...

    集ACCESS与SQL数据类

    而单纯的SQL执行,则需开发者另行过滤危险字符,比如' 符使用Replace("'","[SocutDot]")替换为特定字符后再插入数据库,在读取时再替换为' 符。 5,查询比较频繁的话,应尽量避免使用Socut.Reader阅读器。它的优点是...

    HDPHP框架 Beta 2013.05

    1. **控制器文件命名规范**:控制器文件通常以`Controller`结尾,并遵循驼峰式命名法。 2. **控制器文件路径**:位于应用目录下的`Controller`子目录中。 3. **Empty控制器**:用于处理不存在的控制器或方法时的默认...

Global site tag (gtag.js) - Google Analytics