字符编码过滤器中对特殊的路径进行特殊处理
我做在线打开的时候将word文档转换为html文件,保存在temp文件夹下,然后通过链接打开html文件实现“在线打开word”的功能,结果产生了乱码,原因是在windows系统下生成的html文件默认是“gb2312"编码的,而我们的网页使用了编码过滤器将所有请求全部改为”UTF-8“编码的了。所以我就将这个编码过滤器改进了下,先对请求路径进行判断,如果请求是来自保存html文件的"temp“文件夹就进行特殊处理编码为”gb2312“从而解决乱码。
这个过滤器对“temp”文件夹下的文件进行“GB2312”编码,对所有其他请求进行“UTF-8”编码:
- public class EncodeFilter implements Filter {
- public void destroy() {
- }
- public void doFilter(ServletRequest request, ServletResponse response,
- FilterChain china) throws IOException, ServletException {
- HttpServletRequest httprequest = (HttpServletRequest)request;
- String servletPath = httprequest.getServletPath();
- String dir = null;
- if(servletPath.indexOf("/", 1)>1)
- dir = servletPath.subSequence(servletPath.indexOf("/", 0)+1, servletPath.indexOf("/", 1)).toString();
- if(dir!=null&&"temp".equals(dir)){
- request.setCharacterEncoding("GB2312");
- response.setCharacterEncoding("GB2312");
- }else{
- request.setCharacterEncoding("UTF-8");
- response.setCharacterEncoding("UTF-8");
- }
- china.doFilter(request, response);
- }
- public void init(FilterConfig arg0) throws ServletException {
- }
- }
在web.xml文件中的配置(与tomcat版本有关)
- <filter>
- <filter-name>EncodeFileter</filter-name>
- <filter-class>com.star.util.EncodeFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>EncodeFileter</filter-name>
- <servlet-name>*</servlet-name>
- </filter-mapping>
字符编码过滤器中对特殊的路径进行特殊处理相关推荐
- java 字符过滤器_Java Web---登录验证和字符编码过滤器
什么是过滤器? 在Java Web中,过滤器即Filter.Servlet API中提供了一个Filter接口(javax.servlet.Filter).开发web应用时,假设编写的Java类实现了 ...
- spring mvc字符编码过滤器 CharacterEncodingFilter ,添加例外url
前言 spring 4.3.4.RELEASE CharacterEncodingFilter : Spring MVC 提供的字符集过滤器,用于处理项目中的乱码问题 项目比较老,大部分url使用的是 ...
- mysql jdbc字符编码_java中jdbc/sql出现编码问题
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column '???è??é"?è??' in 'field li ...
- jsp里面声明了utf-8格式,也写了字符编码过滤器,数据库编码也是utf-8,就连java.......
打开Tomcat的server.xml文件的时候发现我的配置是这样的 maxSpareThreads="75" enableLookups="false" re ...
- 过滤器实例——字符编码Filter
字符编码过滤器是一种快速解决Tomcat服务器中request和response乱码问题的解决方案.一般程序中要解决request.resopnse传中文参数乱码问题时一般通过在取参数前对reques ...
- java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**
原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...
- php 转码iconv,PHP iconv()函数转字符编码的问题(转)
在php函数库有一个函数:iconv(),iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库. 最 近在做一个小偷程序,需要用到iconv函数把抓取来过的utf-8编码的页 ...
- js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind
数组方法.字符串方法总结 大目录 小目录 一.ES5严格模式 1. 严格模式: 2. 严格模式的行为变更: 二.ES5新增的数组的方法 1. 判断是否为数组:Array.isArray(): 2. 判 ...
- 【转】刨根究底字符编码【2.0版】(2):关键术语解释
上一篇中讲道,字符编码所涉及的面非常广,向下的话,涉及到计算机的底层技术,甚至是硬件实现. 因此,这里就让我们从字符编码涉及到的最基本的术语讲起.大部分术语你可能都已经有了解了,但我们现在从字符编码的 ...
最新文章
- JavaScript函数大全
- 高颜值俄罗斯天才少女加入华为,曾获“编程界的奥林匹克”世界冠军
- latex转word_Latex与word转换及相关问题解决方法
- Mac下提示APP已损坏,打不开,请移至废纸篓
- 分布式事务Seata中的三个角色
- css基础内容之background
- AI发来贺电,您的2333号奶牛已进入恋爱时节 | 野性的呼唤
- Linux系统管理第七周作业【Linux微职位】
- 里皮正式告别国足:我尽了最大努力让球队成长
- python中文字体下载_对Python生成汉字字库文字,以及转换为文字图片的实例详解...
- 基于51单片机的四通道交通灯设计
- 在VS Code上搭建C/C++环境
- JSP常用标记——(web基础学习笔记)
- 关于计算机的职业畅想,我的职业畅想作文
- 3、Vue+ElementUI制作用户登录页面
- win10查询计算机ip和用户名和密码,Win10怎么查看ip地址_Win10查看本机ip地址-192路由网...
- EFM32芯片jlink无法连接,无法调试,解锁流程
- Linux 命令(212)—— ssh-add 命令
- 获取手机通讯录加好友
- 高级售前客户服务专员考试
热门文章
- 【免费下载】2021年9月热门报告盘点(附热门报告列表及下载链接)
- PyTorch实战福利从入门到精通之一——PyTorch框架安装
- javascript的jQuery库小结(1)
- 【选手分享】你想知道的比赛思路这里都有!速查收!
- SIM: 基于搜索的超长行为序列上的用户兴趣建模
- python post cookies_python 之post、get与cookie实战
- 安卓手机怎么root_怎么在腾讯手机管家中一键获取Root权限
- java打开的文件过多_显示打开文件数目过多的解决方法.
- ffmpeg sdk java_推荐一个强大的音视频处理的开源项目!
- 深度学习与神经网络——邱锡鹏