使用字符编码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; @Override
public void init(FilterConfig config) throws ServletException { characterEncoding = config.getInitParameter("characterEncoding"); enabled = "true".equalsIgnoreCase(characterEncoding.trim())
|| "1".equalsIgnoreCase(characterEncoding.trim());
} @Override
public 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);
} @Override
public 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验证编码器

 <%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
body, input, textarea {
font-size: 12px;
}
textarea {
width: 400px;
height: 50px;
}
</style>
</head>
<body>
<pre>
<b>您输入了</b>:
${ param.text }
</pre>
<form action="${ param.request.requestURL }" method="post"><textarea
name="text">${ param.text }</textarea> <br />
<input type="submit"></form> </body>
</html>

最新文章

  1. html页面的CSS、DIV命名规则
  2. sql语句注意事项
  3. Leetcode: Range Addition
  4. BZOJ1216[HNOI2003]操作系统 [模拟 优选队列]
  5. springMvc源码学习之:spring源码总结
  6. 解决stackoverflow打开慢不能注册登录
  7. Azure开发者任务之七:在Azure托管服务中托管WCF服务角色
  8. Python 的命令行参数处理 optparse-&gt;argparse
  9. 使用windows远程桌面连接Windows Azure中的Ubuntu虚拟机
  10. token验证-微信公众平台开发3(asp.net)
  11. callback调用测试
  12. 暑假集训(1)第八弹 -----简单迷宫(Poj3984)
  13. Debug of bash , perl and python
  14. Java并发编程实战 之 对象的共享
  15. elementUi源码解析(1)--项目结构篇
  16. XVII Open Cup named after E.V. Pankratiev. Eastern GP, Division 1
  17. [Oracle]如何查看 10046 trace 中的 tim= ... 的具体时刻
  18. Surrounded Regions - LeetCode
  19. EF CodeFirst学习笔记001--主键约定
  20. Servlet发送Http请求

热门文章

  1. 以程序的方式操纵NTFS的文件权限
  2. Android4: Write Storage权限问题
  3. 读配置文件 properties
  4. JavaEE Tutorials (17) - Java消息服务示例
  5. Unix/Linux环境C编程入门教程(1) Solaris 11 64bit环境搭建
  6. 深入理解java虚拟机---读后笔记(垃圾回收)
  7. JavaSE思维导图(三)
  8. linux查看与开启ssh
  9. 简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息
  10. Java 遍历文件下jpg图片并解析图片