使用字符编码Filter

package com.helloweenvsfei.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 config) throws ServletException {characterEncoding = config.getInitParameter("characterEncoding");enabled = "true".equalsIgnoreCase(characterEncoding.trim())|| "1".equalsIgnoreCase(characterEncoding.trim());}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {if (enabled || characterEncoding != null) {request.setCharacterEncoding(characterEncoding);response.setCharacterEncoding(characterEncoding);}chain.doFilter(request, response);}@Overridepublic void destroy() {characterEncoding = null;}
}

web.xml 配置如下

<filter><filter-name>characterEncodingFilter</filter-name><filter-class>com.helloweenvsfei.filter.CharacterEncodingFilter</filter-class><init-param><!-- 编码方式 --><param-name>characterEncoding</param-name><param-value>UTF-8</param-value></init-param><init-param><!-- 是否使用编码 --><param-name>enable</param-name><param-value>true</param-value></init-param>
</filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

注意:页面编码方式必须一致。另外如果使用GET表单提交。需要修改Tomcat /conf/server.xml 里的URIEncoding 修改代码如下

 <Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"  URIEncoding = "UTF-8"/>

基本所有的javaWeb程序都用该Filter。

附:characteEncoding.jsp验证编码器

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 6 <title>Insert title here</title>
 7 <style>
 8 body, input, textarea {
 9     font-size: 12px;
10 }
11 textarea {
12     width: 400px;
13     height: 50px;
14 }
15 </style>
16 </head>
17 <body>
18 <pre>
19 <b>您输入了</b>:
20 ${ param.text }
21 </pre>
22 <form action="${ param.request.requestURL }" method="post"><textarea
23     name="text">${ param.text }</textarea> <br />
24 <input type="submit"></form>
25
26 </body>
27 </html>

转载于:https://www.cnblogs.com/zhaideyou/p/5914859.html

Filter 字符编码Filter 一相关推荐

  1. 过滤器实例——字符编码Filter

    字符编码过滤器是一种快速解决Tomcat服务器中request和response乱码问题的解决方案.一般程序中要解决request.resopnse传中文参数乱码问题时一般通过在取参数前对reques ...

  2. java_servlet字符过滤器filter

    字符过滤filter package com.oralce.action; import java.io.IOException; import javax.servlet.Filter; impor ...

  3. [转载]Java web应用中的常见字符编码问题的解决方法

    以下是 Java web应用的常见编码问题 1. html页面的编码 在web应用中,通常浏览器会根据http header: Content-type的值来决定用什么encoding, 比如遇到Co ...

  4. java中文字符怎么保证出现正确_JAVA中文字符编码问题详解

    JAVA中文字符编码问题详解 JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后,经过极为辛苦的调试和搜索资 ...

  5. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  6. js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind

    数组方法.字符串方法总结 大目录 小目录 一.ES5严格模式 1. 严格模式: 2. 严格模式的行为变更: 二.ES5新增的数组的方法 1. 判断是否为数组:Array.isArray(): 2. 判 ...

  7. java 字符过滤器_Java Web---登录验证和字符编码过滤器

    什么是过滤器? 在Java Web中,过滤器即Filter.Servlet API中提供了一个Filter接口(javax.servlet.Filter).开发web应用时,假设编写的Java类实现了 ...

  8. unix系统编码 java_JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  9. 天池-街景字符编码识别2-数据读取与数据扩增

    本此使用[定长字符识别]思路来构建模型 赛题地址 零基础入门CV赛事- 街景字符编码识别 关于更详细的数据预处理可=可以参考我的另一篇博文: 卷积神经网络性能优化(提高准确率) 2 数据读取与数据扩增 ...

最新文章

  1. 职场中不可深交的五种人
  2. JavaScript 中对象的属性类型
  3. web服务之Tomcat
  4. 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap[转]
  5. 【渝粤教育】广东开放大学 综合英语1 形成性考核 (36)
  6. 使用RichTextBox控件实现系统剪切板功能
  7. mac下配置eclipse的maven环境
  8. 【华为大咖分享】7.大型云平台的DevOps实践(后附PPT下载地址)
  9. FIFO队列 ADT接口 链表实现
  10. 网站扫描服务器全部开放端口,服务器开放端口扫描
  11. 系统架构设计笔记(19)—— 网络存储技术
  12. 软件项目管理考试指南—By XJTUSE【YJQ】
  13. 谈提高健身效果的营养品系列之一: 乳清蛋白, 肌酸, 支链氨基酸
  14. 批量启用AD中账户的Exchange邮箱
  15. RFC 文档(1001-1500)
  16. oracle fnd file.log,oracle D_FILE.PUTamp;FND_FILE.PUT_LINE
  17. 【51Nod1679】连通率
  18. 自动驾驶--定位技术
  19. Activiti 学习笔记七:连线(SequenceFlow)
  20. NE555方波发生器

热门文章

  1. 关于“WireX Botnet”事件Android样本分析报告
  2. 服务器和操作系统怎么看,服务器和操作系统怎么看
  3. JZOJ 4726. 【NOIP2016提高A组模拟8.22】种花
  4. android拍照识别人脸,Android 人脸识别拍照demo
  5. flex 文字竖排_flex button字竖排展示
  6. java 初始化一个实体对象_Java 对象初始化
  7. android表情输入键盘,GitHub - UKfire/Emotion: 帮你的Android应用快速集成表情键盘
  8. c malloc 头文件_C语言提高篇_malloc,realloc和calloc的区别
  9. python 字符串 f_Python字符串格式化f-string多种功能实现
  10. 利用Matlab求解线性规划问题