一、自定义的类(注意其中的属性,web.xml中的配置就是根据这个类的)
import org.springframework.web.filter.OncePerRequestFilter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
/**
* Filter - 编码格式转换
*/
public class EncodingConvertFilter extends OncePerRequestFilter {
/** 原编码格式:与web.xml文件中对应设置 */
private String fromEncoding = "ISO-8859-1";
/** 目标编码格式 :与web.xml文件中对应设置*/
private String toEncoding = "UTF-8";
@SuppressWarnings("unchecked")
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
if (request.getMethod().equalsIgnoreCase("GET")) {
for (Iterator<String[]> iterator = request.getParameterMap().values().iterator(); iterator.hasNext();) {
String[] parames = iterator.next();
for (int i = 0; i < parames.length; i++) {
try {
parames[i] = new String(parames[i].getBytes(fromEncoding), toEncoding);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
}
filterChain.doFilter(request, response);
}
/**
* 获取原编码格式
* @return 原编码格式
*/
public String getFromEncoding() {
return fromEncoding;
}
/**
* 设置原编码格式
* @param fromEncoding
* 原编码格式
*/
public void setFromEncoding(String fromEncoding) {
this.fromEncoding = fromEncoding;
}
/**
* 获取目标编码格式
* @return 目标编码格式
*/
public String getToEncoding() {
return toEncoding;
}
/**
* 设置目标编码格式
* @param toEncoding
* 目标编码格式
*/
public void setToEncoding(String toEncoding) {
this.toEncoding = toEncoding;
}
}
二、web.xml
<!--springmvc自定的过滤post-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!-- 其中encoding用来设置编码格式,forceEncoding用来设置是否理会 request.getCharacterEncoding()方法,设置为true则强制覆盖之前的编码格式 -->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!--自定义过滤get请求,如果tomcat中server.xml文件中配置了URIEncoding="UTF-8",可以不需要-->
<filter>
<filter-name>encodingConvertFilter</filter-name>
<filter-class>home.xxx.filter.EncodingConvertFilter</filter-class>
<init-param>
<param-name>fromEncoding</param-name>
<param-value>ISO-8859-1</param-value>
</init-param>
<init-param>
<param-name>toEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>

160912、工具类:spring+springmvc自定义编码转换的更多相关文章

  1. 工具类CTools实现字符编码转换和获取当前路径

    class CTools { public: CTools(void); public: ~CTools(void); public: static std::string UNICODE_to_UT ...

  2. Java文件编码自动转换工具类(只改变编码,不会改变文件内容)

    本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. public class Cha ...

  3. 工具类:将其他编码类型转换成UTF-8或者其他类型的工具类

    将其他编码类型转换成UTF-8或者其他类型的工具类 public static String changeUTF(String str) { String newStr = null; try { n ...

  4. Java 中待总结工具类学习(自定义注解,读取配置,字面List)

    1.使用 MessageFormat 格式化文本 int planet = 7; String event = "a disturbance in the Force"; Stri ...

  5. (工具类)MD5算法|时间格式转换|字符串转数字

    package vote.utils; import java.security.MessageDigest; import java.text.SimpleDateFormat; import ja ...

  6. java 二进制数字符串转换工具类

    java 二进制数字符串转换工具类 将二进制转换成八进制 将二进制转换成十进制 将二进制转换成十六进制 将十进制转换成二进制 package com.iteye.injavawetrust.ad; i ...

  7. spring工具类获取bean

    import org.springframework.web.context.ContextLoader; import org.springframework.web.context.WebAppl ...

  8. 项目经验分享——Java常用工具类集合 转

    http://blog.csdn.net/xyw591238/article/details/51678525 写在前面     本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数 ...

  9. commons-lang3工具类学习(三)

    六.ObjectUtils Object工具类 allNotNull(Object... values) 检查所有元素是否为空,返回一个boolean 如果有一个元素为空返回false,所有元素不为空 ...

随机推荐

  1. Ext中解析字符串

    Ext.encode()将json转为json字符串Ext.decode()将json字符串转为json

  2. 多台CentOS服务器时间同步(NTP时间同步)(转)

    1.用ntpdate从时间服务器更新时间 如果你的linux系统根本没有ntpdate这个命令 yum install ntp 安装完了之后,你不要做什么配置,也不需要,直接测试一下 [root@lo ...

  3. tomecat 配置修改 及启动配置

    a.如果tomcat是以bat方式启动的,则如下设置: 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALIN ...

  4. 利用Axis2默认口令安全漏洞可入侵WebService网站

    利用Axis2默认口令安全漏洞可入侵WebService网站 近期,在乌云上关注了几则利用Axis2默认口令进行渗透测试的案例,大家的渗透思路基本一致,利用的技术工具也大致相同,我在总结这几则案例的基 ...

  5. iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)

    // // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...

  6. java.net.BindException: Address already in use: JVM_Bind

    是端口占用,如果修改端口后仍提示这样的错误,可能是eclipse自动关闭或正在运行服务非正常中断导致端口没有关闭,这时你再启动,还是提示java.net.BindException: Address  ...

  7. scp noneed passwd

    经常在不同linux机器之间互相scp拷文件,每次总是要输入密码才可行. 通过ssh-keygen生成公钥,在两台机器之间互相建立信任通道即可. 假设本地机器client,远程机器为server. 1 ...

  8. Java Thread线程控制

    一.线程和进程 进程是处于运行中的程序,具有一定的独立能力,进程是系统进行资源分配和调度的一个独立单位. 进程特征: A.独立性:进程是系统中独立存在的实体,可以拥有自己独立的资源,每个进程都拥有自己 ...

  9. IDEA文件编码修改

    上图标注 1 所示,IDE 的编码默认是 UTF-8,Project Encoding 虽然默认是 GBK,但是一般我都建议修改为 UTF-8.上图标注 2 所示,IntelliJ IDEA 可以对 ...

  10. CommonJS规范

    CommonJS是一种规范,NodeJS是这种规范的实现.CommonJS是一 个不断发展的规范,计划将要包括如下部分: Modules Binary strings and buffers Char ...