002——Filter解决乱码问题
来源:互联网 发布:淘宝领的话费券在哪 编辑:程序博客网 时间:2024/06/04 18:11
字符编码Filter是最常用的Filter之一,常用来解决Tomcat等服务器里request,response乱码的问题。字符编码Filter是在request提交到Servlet之前对request进行制定编码方式的编码,代码如下:
package com.java.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 {//编码方式,配置在web.xml中private String characterEncoding;//是否启用该Filter,配置在web.xml中private boolean enabled;public void destroy() {//销毁时清空资源characterEncoding = null;}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {//如果启用该filterif(enabled || characterEncoding != null) {//设置request编码request.setCharacterEncoding(characterEncoding);//设置response编码response.setCharacterEncoding(characterEncoding);}chain.doFilter(request, response);}/** * 初始化时加载参数 */public void init(FilterConfig config) throws ServletException {//编码方式characterEncoding = config.getInitParameter("characterEncoding");//启用enabled = "true".equalsIgnoreCase(config.getInitParameter("enabled").trim());}}
characterEncoding表示编码方式,enabled表示是否启用编码,分别从初始化参数中取得。web.xml中的配置代码如下:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name></display-name> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>com.java.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> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
注意:页面编码方式与Filter编码方式必须一致。另外,如果表单时get方式提交的,还需要修改Tomcat的/conf/server.xml配置文件,指定、URIEncoding(默认为ISO-8859-1);
否则,依然会乱码。修改如下:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>
0 0
- 002——Filter解决乱码问题
- 过滤器 Filter 解决乱码问题
- 使用Filter解决乱码问题
- Filter解决中文乱码问题
- 菜鸟学Java(二)——Filter解决中文乱码问题
- springmvc post方式提交form时乱码问题——filter方式解决
- 过滤器Filter的案例3——解决全站的请求数据乱码问题
- 过滤器filter-解决乱码的问题
- Tomcat中文乱码问题filter解决
- 利用过滤器filter解决乱码问题
- Filter全局解决中文乱码问题
- 使用filter解决jsp乱码问题
- Filter 解决全站中文乱码问题
- javaWeb利用Filter解决中文乱码问题
- Filter拦截器解决中文乱码问题
- 使用Filter解决中文乱码问题
- 使用过滤器(Filter)解决乱码问题
- Servlet容器Filter的使用(Filter解决乱码问题实例)
- 程序员文件名的规范
- 推荐算法:基于图的算法:基于路相似度_续
- Regional 2015 - Asia EC Final - C Suffixes and Palindromes
- osgi + felix example1编写
- C programming-------exit() 函数
- 002——Filter解决乱码问题
- Reorder List
- can I read/write the routing table in C without using system() command?
- HDU 4825 Xor Sum
- Jquery+html+css实现广告条
- Android 自定义属性写法
- 【SpringMVC学习07】SpringMVC中的统一异常处理
- VR开发的24个技巧
- 移动开发--优秀博客收集(持续更新)