`
守望者
  • 浏览: 54569 次
  • 来自: ...
社区版块
存档分类
最新评论

字符编码过滤器的一般写法

    博客分类:
  • ssh
阅读更多
今天研究别人的代码的时候突然发现spring的org.springframework.web.filter包下居然有个CharacterEncodingFilter.java,汗.....以前都没注意呢!不过那个看起来有点麻烦,所以下面的这个过滤器比较简单实用
java 代码
  1. public class CharacterEncodingFilter implements Filter {   
  2.     private String edcoding=null;   
  3.     private FilterConfig filterConfig=null;   
  4.     private boolean ignore=true;   
  5.   
  6.     public void destroy() {   
  7.          edcoding=null;   
  8.          filterConfig=null;   
  9.     }   
  10.   
  11.     public void doFilter(ServletRequest request, ServletResponse response,   
  12.             FilterChain filterChain) throws IOException, ServletException {   
  13.         if(ignore==true||request.getCharacterEncoding()==null){   
  14.             String encoding=setCharacterEncoding(request);   
  15.               if(encoding!=null){   
  16.                 request.setCharacterEncoding(encoding);   
  17.                    
  18.                 }   
  19.         }   
  20.           filterChain.doFilter(request, response);   
  21.     }   
  22.   
  23.     public void init(FilterConfig filterConfig) throws ServletException {   
  24.         this.filterConfig=filterConfig;   
  25.         this.edcoding=filterConfig.getInitParameter("encoding");   
  26.         String value=filterConfig.getInitParameter("ignore");   
  27.         if(value==null){   
  28.             this.ignore=true;   
  29.         }else if(value.equalsIgnoreCase("true")){   
  30.             this.ignore=true;   
  31.                
  32.         }else{   
  33.             this.ignore=false;   
  34.         }   
  35.            
  36.   
  37.     }   
  38.     public String setCharacterEncoding(ServletRequest request){   
  39.         return this.edcoding;   
  40.     }   
  41. }   

web.xml中加以下代码

xml 代码
  1. <filter>  
  2.         <filter-name>CharacterEncodingFilter</filter-name>  
  3.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>  
  11.         <url-pattern>/*</url-pattern>  
  12.     </filter-mapping>  
分享到:
评论
2 楼 守望者 2007-09-10  
tomcat也有?没注意到过!~看看!

1 楼 dwangel 2007-09-09  
tomcat 也有……

相关推荐

    jsp中过滤器选择过滤器的写法详解.docx

    总结起来,JSP中的过滤器是一个强大的工具,可以用来实现诸如用户认证、URL重写、字符编码转换等任务。理解如何创建和配置过滤器是每个Java Web开发者必备的技能。通过上述的`LoginCheckFilter`示例,我们可以看到...

    SQL注入技巧2-常用技巧总结(攻击向量)

    - **使用多字符编码**:将单个字符分解为多个字符进行编码,以绕过过滤器。 - 示例:`'andsubstr(data,1,1)='a'`,通过将字符串中的每个字符分别编码,可以绕过一些过滤机制。 6. **SQL关键字绕过**:利用SQL...

    Java安全与质量编码规范

    - **防止跨站脚本**:使用适当的过滤器或编码机制对输出数据进行编码。 - **防止HTTP响应折断**:确保HTTP响应头不被恶意修改。 - **避免开放式跳转**:对URL重定向进行验证,防止重定向到恶意站点。 4. **配置...

    JAVA 面试题

    1. **String编码UTF-8和GBK的区别:** UTF-8是一种针对Unicode的可变长度字符编码,支持全球所有语言字符,它使用1-4个字节来表示一个字符。GBK则是中国国家标准的编码,主要针对简体中文,使用1-2个字节表示一个...

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

    在JSP开发中,解决中文显示问题主要涉及字符编码的设定。第一种方法是在每个JSP页面中设置页面编码,而第二种方法是全局设置过滤器,对所有请求统一处理编码。选择哪种方法取决于项目的需求和规模,一般来说,大型...

    14句跨站代码.txt

    使用Unicode编码绕过某些基于字符的过滤器。例如,将`e`编码为`\u0065`,`x`编码为`\u0078`等,从而使原本的`expression`变为`\u0065\u0078pression`,以此来逃避检测。 ### 三、防御措施 为了防止XSS攻击,开发者...

    详细叙述web.xml

    - XML文件以XML头开始,声明XML版本和字符编码。例如:`&lt;?xml version="1.0" encoding="UTF-8"?&gt;` - DOCTYPE声明紧接着XML头,指定了servlet规范的版本和DTD,如:`&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems...

    web.xml详解

    6. **filter-mapping**:命名过滤器后,使用该元素将其与一个或多个servlet或JSP页面关联起来。 7. **listener**:指出事件监听程序类,这是servlet API 2.3版引入的新特性。 8. **servlet**:命名servlet或JSP页面...

    分享SpringMVC归纳

    - 对于POST请求,可以通过在`web.xml`中配置字符编码过滤器来解决。 ```xml &lt;filter-name&gt;encodingFilter &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter &lt;param-name&gt;encoding ...

    自学JQuery的代码总结

    使用过滤器选取特定输入元素 在处理复杂的表单时,可能需要筛选出特定类型的输入元素。 ```javascript var elements = $('#someid input[type=sometype][value=somevalue]').get(); ``` 这里使用了多个属性选择器...

    java面试题目

    外部样式表定义元素宽度为100px,正确写法是(B)** - **选项B**: `width: 100px;` - 正确答案。CSS样式定义中,属性和值之间应该使用冒号分隔,单位前不需要加引号。 #### 多选题解析 **1. 关于编码规范描述...

    2008海康威视笔试试题

    视频编码器的三个主要压缩环节包括帧内预测、帧间预测和熵编码。通过这些环节实现高效的视频数据压缩。 #### 5. 哈夫曼编码 根据给定的概率分布构建哈夫曼树,并为每个字符分配唯一编码。 #### 6. 有序数列排序 ...

    2021-2022计算机二级等级考试试题及答案No.3972.docx

    - **知识点解析**:ASCII码是美国标准信息交换代码,用来表示字符的数字编码。已知`Asc("A") = 65`,由于ASCII码是连续的,所以`Asc("D")`应该等于65加上D与A之间的差值(3),因此正确答案是68(A项)。 #### ...

    Java8应用封装,手写ORM,LOG,framework

    - **方法引用和构造器引用**:进一步简化了Lambda表达式的写法,可以直接引用已有方法或构造器。 - **日期与时间API**:用`java.time`包取代了旧的`java.util.Date`和`Calendar`,提供了更加强大和易用的时间日期...

    IIS服务器SSI(rewrite重写)插件的帮助资料

    ISAPI过滤器 ? ISAPI 扩展 2.2安装程序 在运行安装包之前请先阅读系统要求部分。下载并安装某个版本的ISAPI_Rewrite.msi,依照安装向导的说明操作。安装过程是自动的,并有自我描述。ISAPI_Rewrite在自动安装过程中...

    siebel相关资料

    正确配置`Find`参数,如搜索字段、过滤条件和排序规则,可以显著提高数据查找的效率和准确性。 #### 导出IO功能的配置(验证规则中的导出) 导出输入输出(I/O)功能是Siebel应用中用于数据导出的配置。它涉及验证...

    Java学习笔记-个人整理的

    {1.4.4}转义字符}{25}{subsection.1.4.4} {1.4.5}Boolean 布尔值}{25}{subsection.1.4.5} {1.5}基本类型变量的初始值}{26}{section.1.5} {1.6}数据类型转换}{26}{section.1.6} {1.7}方法}{26}{section.1.7} {...

    HDPHP框架 Beta 2013.05

    12. **引号**:建议在字符串中使用单引号而非双引号,除非需要用到变量。 13. **数据库规范**:制定了数据库设计和操作的规范,如字段结构、SQL语句编写、表结构优化等。 #### 六、目录结构 HDPHP框架的目录结构...

    精易模块[源码] V5.15

    1、修正“编码_ansi到usc2”当末尾出现10或13字符时出错的BUG,感谢易友【@rmcs】反馈。 2、改名“文件_搜索1”改为“文件_搜索_深度”并修正备注及深度问题,感谢易友【@小爬虫】反馈。 3、改善“时间_取现行时间戳...

Global site tag (gtag.js) - Google Analytics