通过Filter解决字符编码问题
来源:互联网 发布:mac下如何隐藏文件夹 编辑:程序博客网 时间:2024/06/05 01:08
字符编码是最常用的Filter之一了,常用来解决Tomcat等服务器里request、response乱码问题。字符编码Filter是在request提交到Servlet之前对request进行制定编码方式的编码。通过CharacterEncodingFilter.java解决,web.xml进行相应的配置即可。
CharacterEncodingFilter.java代码如下:
package demo.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;//编码方式,配置在web.xml中private boolean enabled;//是否开启用该Filter,配置在web.xml中public void init(FilterConfig config)throws ServletException{//初始化时加载参数characterEncoding = config.getInitParameter("characterEncoding");//编码方式enabled = "true".equalsIgnoreCase(config.getInitParameter("enabled").trim());//启用}public void destroy() {characterEncoding = null;//销毁时清空资源}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {if(enabled || characterEncoding != null){//如果启用该Filterrequest.setCharacterEncoding(characterEncoding);//设置request编码response.setCharacterEncoding(characterEncoding);//设置response编码}}}
web.xml的配如下:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- Filter的编码应用 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>demo.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> </web-app>
PS:页面编码方式与Filter编码方式必须一致。另外,如果表单时GET方式提交的,还需修改Tomcat下的/conf/server.xml配置文件,制定URIEncoding;否则,依然会乱码。修改如下:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
- 通过Filter解决字符编码问题
- 使用Filter过滤器解决字符编码问题
- Filter解决编码问题
- Filter中对字符编码过滤解决中文乱码问题
- Filter永久解决编码问题
- 用Filter处理的字符编码问题
- servlet简单使用filter解决编码问题
- 使用filter过滤器解决编码问题
- filter过滤器解决全局编码问题
- filter 转换字符编码
- Filter字符编码过滤器
- Filter字符编码过滤器
- JSP字符编码过滤器,解决字符编码问题
- tomcat8 编写字符编码Filter过滤器无效问题
- 通过filter实现servlet和jsp的中文编码问题:
- java中用过滤器解决字符编码问题
- Oracle字符编码问题快速解决
- 一个字符编码问题的解决过程
- JavaScript实现省市县三级联动效果~~~
- 自建JavaScript函数库
- mono+c#开发扩平台程序
- 基于TCP的Socket网络编程,有图有代码
- 用Js Dom实现通过用户输入行数和列数,生成一个表格
- 通过Filter解决字符编码问题
- JavaScript 的 DOM 实现左右选择的下拉菜单效果
- 文字设计在阅读体验上的四个成败因素
- 抓android的log
- ASP.NET实现无刷新倒计时功能,团购倒计时
- 网页用 JavaScript DOM 仿作QQ的窗口抖动效果,超简单~~~
- zend studio快捷键
- 让人不能忘怀的记忆
- JavaScript实现图片的浮动效果