使用Filter过滤器解决字符编码问题
来源:互联网 发布:网络安全法试题及答案 编辑:程序博客网 时间:2024/06/03 12:30
Java中的字符编码,默认为:ISO-8859-1(西方编码)。这种编码方式为单字节码,只支持英文、俄文、葡萄牙文等乱七八糟文,不支持中文。因此,我们需要对JSP页面或者Servlet中进行字符编码集的处理,国际编码(UTF-8)。
- 在JSP页面中把最上方标签中的字符编码ISO-8859-1改为UTF-8即可。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- 在Servlet中我们最常用的是设置下方代码进行解决乱码问题:
request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");
或者是:
request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");
然而,上面这两种是我们最常用的方式,但是在大型项目中,我们写这么多解决字符编码集的代码,是不是所谓“重复性的垃圾代码”?所以,我们最好的解决方法是在项目中写一个处理字符编码的过滤器。(Filter)
下面是字符编码Filter的设置方法:
package com.aaa.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;/** * @Discription 字符编码过滤器 * @author *** * @company *** * @date 2017-11-18 **/public class CharsetEncodingFilter implements Filter { private static String encoding; // 定义变量接收初始化的值public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {// 设置字符编码链锁request.setCharacterEncoding(encoding);response.setCharacterEncoding(encoding);chain.doFilter(request, response);}// 初始化public void init(FilterConfig config) throws ServletException {// 接收web.xml配置文件中的初始参数encoding = config.getInitParameter("CharsetEncoding");}}
下面为web.xml配置文件中的代码:(跟servlet中的配置文件格式相似)
<filter> <filter-name>charsetEncodingFilter</filter-name> <filter-class>com.aaa.filter.CharsetEncodingFilter</filter-class> <init-param> <param-name>CharsetEncoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>charsetEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
filter-mapping中的filter-name必须和上面filter中的filter-name相同。url-pattern为过滤的范围,此处写 /* 代表过滤所有的请求。
使用过滤器来自动过滤我们项目中的每一个参数编码,我们就不用麻烦的为每一个参数进行转码了,一个过滤器解决了所有乱码问题。
阅读全文
0 0
- 使用Filter过滤器解决字符编码问题
- 使用filter过滤器解决编码问题
- 使用过滤器解决字符编码问题
- Filter字符编码过滤器
- Filter字符编码过滤器
- filter过滤器解决全局编码问题
- java中用过滤器解决字符编码问题
- 字符编码过滤器 Servlet Filter
- Filter过滤器(字符编码)
- 通过Filter解决字符编码问题
- JSP字符编码过滤器,解决字符编码问题
- 使用过滤器(Filter)解决乱码问题
- tomcat8 编写字符编码Filter过滤器无效问题
- ---Filter ( 四 ) filter字符编码过滤器
- 使用过滤器Filter解决JSP+Servlet页面编码乱码
- 使用Filter实现编码过滤器
- servlet简单使用filter解决编码问题
- Filter过滤器,统一网站字符编码
- HDOJ2088 Box of Bricks
- java(Web)中相对路径,绝对路径问题总结
- 二叉树镜像
- iptables配置详解
- 计算机专业及软件开发推荐书籍
- 使用Filter过滤器解决字符编码问题
- malloclab 实验详解(动态分配器如何设计)
- perl简单语句的修饰符
- C语言概念总结
- Kaggle Dogs vs. Cats Redux: Kernels Edition (猫狗大战)by Pytorch
- python2中的input和raw_input
- mysql中如何查看表结构
- linux C 编译错误 error: ‘EOWNERDEAD’ undeclared (first use in this function)
- tomcat启动java.lang.UnsatisfiedLinkError: D:\apache-tomcat-7.0.64-windows-x64\apache-tomcat-7.0.64\bin