今天研究别人的代码的时候突然发现spring的org.springframework.web.filter包下居然有个CharacterEncodingFilter.java,汗.....以前都没注意呢!不过那个看起来有点麻烦,所以下面的这个过滤器比较简单实用
java 代码
- public class CharacterEncodingFilter implements Filter {
- private String edcoding=null;
- private FilterConfig filterConfig=null;
- private boolean ignore=true;
-
- public void destroy() {
- edcoding=null;
- filterConfig=null;
- }
-
- public void doFilter(ServletRequest request, ServletResponse response,
- FilterChain filterChain) throws IOException, ServletException {
- if(ignore==true||request.getCharacterEncoding()==null){
- String encoding=setCharacterEncoding(request);
- if(encoding!=null){
- request.setCharacterEncoding(encoding);
-
- }
- }
- filterChain.doFilter(request, response);
- }
-
- public void init(FilterConfig filterConfig) throws ServletException {
- this.filterConfig=filterConfig;
- this.edcoding=filterConfig.getInitParameter("encoding");
- String value=filterConfig.getInitParameter("ignore");
- if(value==null){
- this.ignore=true;
- }else if(value.equalsIgnoreCase("true")){
- this.ignore=true;
-
- }else{
- this.ignore=false;
- }
-
-
- }
- public String setCharacterEncoding(ServletRequest request){
- return this.edcoding;
- }
- }
web.xml中加以下代码
xml 代码
- <filter>
- <filter-name>CharacterEncodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>CharacterEncodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
分享到:
- 2007-09-07 23:09
- 浏览 2965
- 评论(2)
- 论坛回复 / 浏览 (1 / 7619)
- 查看更多
相关推荐
总结起来,JSP中的过滤器是一个强大的工具,可以用来实现诸如用户认证、URL重写、字符编码转换等任务。理解如何创建和配置过滤器是每个Java Web开发者必备的技能。通过上述的`LoginCheckFilter`示例,我们可以看到...
- **使用多字符编码**:将单个字符分解为多个字符进行编码,以绕过过滤器。 - 示例:`'andsubstr(data,1,1)='a'`,通过将字符串中的每个字符分别编码,可以绕过一些过滤机制。 6. **SQL关键字绕过**:利用SQL...
- **防止跨站脚本**:使用适当的过滤器或编码机制对输出数据进行编码。 - **防止HTTP响应折断**:确保HTTP响应头不被恶意修改。 - **避免开放式跳转**:对URL重定向进行验证,防止重定向到恶意站点。 4. **配置...
1. **String编码UTF-8和GBK的区别:** UTF-8是一种针对Unicode的可变长度字符编码,支持全球所有语言字符,它使用1-4个字节来表示一个字符。GBK则是中国国家标准的编码,主要针对简体中文,使用1-2个字节表示一个...
在JSP开发中,解决中文显示问题主要涉及字符编码的设定。第一种方法是在每个JSP页面中设置页面编码,而第二种方法是全局设置过滤器,对所有请求统一处理编码。选择哪种方法取决于项目的需求和规模,一般来说,大型...
使用Unicode编码绕过某些基于字符的过滤器。例如,将`e`编码为`\u0065`,`x`编码为`\u0078`等,从而使原本的`expression`变为`\u0065\u0078pression`,以此来逃避检测。 ### 三、防御措施 为了防止XSS攻击,开发者...
- XML文件以XML头开始,声明XML版本和字符编码。例如:`<?xml version="1.0" encoding="UTF-8"?>` - DOCTYPE声明紧接着XML头,指定了servlet规范的版本和DTD,如:`<!DOCTYPE web-app PUBLIC "-//Sun Microsystems...
6. **filter-mapping**:命名过滤器后,使用该元素将其与一个或多个servlet或JSP页面关联起来。 7. **listener**:指出事件监听程序类,这是servlet API 2.3版引入的新特性。 8. **servlet**:命名servlet或JSP页面...
- 对于POST请求,可以通过在`web.xml`中配置字符编码过滤器来解决。 ```xml <filter-name>encodingFilter <filter-class>org.springframework.web.filter.CharacterEncodingFilter <param-name>encoding ...
使用过滤器选取特定输入元素 在处理复杂的表单时,可能需要筛选出特定类型的输入元素。 ```javascript var elements = $('#someid input[type=sometype][value=somevalue]').get(); ``` 这里使用了多个属性选择器...
外部样式表定义元素宽度为100px,正确写法是(B)** - **选项B**: `width: 100px;` - 正确答案。CSS样式定义中,属性和值之间应该使用冒号分隔,单位前不需要加引号。 #### 多选题解析 **1. 关于编码规范描述...
视频编码器的三个主要压缩环节包括帧内预测、帧间预测和熵编码。通过这些环节实现高效的视频数据压缩。 #### 5. 哈夫曼编码 根据给定的概率分布构建哈夫曼树,并为每个字符分配唯一编码。 #### 6. 有序数列排序 ...
- **知识点解析**:ASCII码是美国标准信息交换代码,用来表示字符的数字编码。已知`Asc("A") = 65`,由于ASCII码是连续的,所以`Asc("D")`应该等于65加上D与A之间的差值(3),因此正确答案是68(A项)。 #### ...
- **方法引用和构造器引用**:进一步简化了Lambda表达式的写法,可以直接引用已有方法或构造器。 - **日期与时间API**:用`java.time`包取代了旧的`java.util.Date`和`Calendar`,提供了更加强大和易用的时间日期...
ISAPI过滤器 ? ISAPI 扩展 2.2安装程序 在运行安装包之前请先阅读系统要求部分。下载并安装某个版本的ISAPI_Rewrite.msi,依照安装向导的说明操作。安装过程是自动的,并有自我描述。ISAPI_Rewrite在自动安装过程中...
正确配置`Find`参数,如搜索字段、过滤条件和排序规则,可以显著提高数据查找的效率和准确性。 #### 导出IO功能的配置(验证规则中的导出) 导出输入输出(I/O)功能是Siebel应用中用于数据导出的配置。它涉及验证...
{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} {...
12. **引号**:建议在字符串中使用单引号而非双引号,除非需要用到变量。 13. **数据库规范**:制定了数据库设计和操作的规范,如字段结构、SQL语句编写、表结构优化等。 #### 六、目录结构 HDPHP框架的目录结构...
1、修正“编码_ansi到usc2”当末尾出现10或13字符时出错的BUG,感谢易友【@rmcs】反馈。 2、改名“文件_搜索1”改为“文件_搜索_深度”并修正备注及深度问题,感谢易友【@小爬虫】反馈。 3、改善“时间_取现行时间戳...