过滤器实例——字符编码Filter
字符编码过滤器是一种快速解决Tomcat服务器中request和response乱码问题的解决方案。一般程序中要解决request、resopnse传中文参数乱码问题时一般通过在取参数前对request进行setCharacterEncoding("UTF-8")编码设置,这种方法需要在每个要使用的页面中都进行编码设置,用起来十分麻烦。字符编码过滤器通过在每个页面访问前执行Filter进行自动编码设置,只需要编写一个Filter页面并将Filter在web.xml中配置到需要的页面(本文设置到全部页面)即可。
首先创建CharacterEncodingFilter类,继承自javax.servlet.Filter。
package filter;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;public class CharacterEncodingFilter implements Filter {private String characterEncoding;private boolean enabled;@Overridepublic void init(FilterConfig arg0) throws ServletException { //web程序启动时初始化Filter,通过FilterConfig对象从web.xml文件获取初始化参数值characterEncoding=arg0.getInitParameter("characterEncoding");enabled="true".equalsIgnoreCase(arg0.getInitParameter("enabled".trim()));}@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {//当初始化的参数为启用状态时,对request对象和response对象进行编码设置if(enabled||characterEncoding!=null){arg0.setCharacterEncoding(characterEncoding);arg1.setCharacterEncoding(characterEncoding);}arg2.doFilter(arg0, arg1);}@Overridepublic void destroy() { //web程序关闭时,销毁Filter时将资源对象置为空characterEncoding=null;} }
然后在web.xml中进行Filter配置即可。
<filter><filter-name>characterEncodingFilter</filter-name><filter-class>filter.CharacterEncodingFilter</filter-class><init-param><param-name>characterEncoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>enabled</param-name><param-value>true</param-value></init-param> </filter> <filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern>//所有页面访问前都要进行过滤 </filter-mapping>
接下来就可以在使用request和response中直接传递和获取中文参数,不必每次使用之前都进行配置了。
转载于:https://www.cnblogs.com/2017Crown/p/7157766.html
过滤器实例——字符编码Filter相关推荐
- Filter 字符编码Filter 一
使用字符编码Filter package com.helloweenvsfei.filter;import java.io.IOException;import javax.servlet.Filte ...
- servlet过滤器 实例_Java Servlet过滤器示例教程
servlet过滤器 实例 Java Servlet Filter is used to intercept the client request and do some pre-processing ...
- java 字符过滤器_Java Web---登录验证和字符编码过滤器
什么是过滤器? 在Java Web中,过滤器即Filter.Servlet API中提供了一个Filter接口(javax.servlet.Filter).开发web应用时,假设编写的Java类实现了 ...
- Spring/SpringBoot 过滤器修改、获取http 请求request中的参数 和 response返回值,比如修改请求体和响应体的字符编码
通过自定义filter,RequestWrapper,ResponseWrapper 处理请求和响应数据,比如修改请求体和响应体的字符编码 1.request 和 response 中的数据都是 存在 ...
- 字符编码ASCII、Unicode 、UTF-8 及实例汉字与Unicode码的相互转化
字符编码ASCII.Unicode .UTF-8 及实例汉字与Unicode码的相互转化 ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值.每一个二进制位(bit)有0和1两种状态, ...
- 利用过滤器处理字符,解决中文乱码问题
1.创建字符编码过滤器对象,名称为CharactorFilter类.该类实现了javax.servlet.Filter,并在都Filter()方法中对请求中的字符编码格式进行设置.代码如下: pack ...
- 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
- unix系统编码 java_JAVA字符编码系列三:Java应用中的编码问题
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
- SSH中设置字符编码防止乱码
1.在web.xml中加入一个过滤器和过滤范围的配置 <filter> <filter-name>encoding</filter-name> <filter ...
最新文章
- 分布式存储Ceph 快速安装手册
- python读文件代码-简单了解Python读取大文件代码实例
- BZOJ 3504: [Cqoi2014]危桥 [最大流]
- VS2010生成静态库(.lib)
- 通过Web Services上传和下载图片文件
- allegro标注尺寸设置_标注新升级 | SOLIDWORKS 2020新功能揭秘
- (解决MATLAB的使用问题)避免每次双击.m文件都会自动打开一个matlab程序
- 1.数据结构 --- 绪论
- 木马群起攻击Word文档 360补丁保护办公安全
- html中怎么让图片做背景透明背景图片,透明背景图片怎么做?
- 华为证书有效期是多久?证书要到期了怎么办?
- 【C语言】算法学习·哈希算法全解
- 拔丝芋头的Java学习日记---Day8
- python高级变量类型
- html怎么混合颜色,CSS3 多色混合背景
- 机器学习分类模型评价指标之混淆矩阵
- office常用的快捷键
- word2vec——训练自己的word2vec模型
- 机器学习之特征向量维度与样本空间
- MySQL数据库卸载+MySQL常用的图形化管理工具介绍
热门文章
- 汇编: 描述内存长度
- 02-CSS基础与进阶-day10_2018-09-14-20-38-10
- 手动安装K8s第六节:node节点部署-kubelet
- 我们来谈谈那些智能家居里的语音对话设备
- 微信JSSDK javascript 开发 代码片段,仅供参考
- java中关于try、catch、finally中的细节分析
- Cisco DHCP and NAT config
- android sqlite SQLiteDatabase 操作大全 不看后悔!必收藏!看后精通SQLITE (第二部分)...
- 一种以动态库的方式使用资源表的方案
- Prebuilt binaries of PCL (point cloud library) for Linux