基于Spring解决jsp传值乱码问题 get post
2016-07-15 17:08
411 查看
基于Spring的org.springframework.web.filter.CharacterEncodingFilter来解决乱码问题
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
public class CharacterEncodingFilter extends org.springframework.web.filter.CharacterEncodingFilter {
private String encoding;
@Override
public void setEncoding(String encoding) {
this.encoding = encoding;
super.setEncoding(encoding);
}
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
if ("GET".equals(request.getMethod())) {
super.doFilterInternal(new EncodeRequest(request), response, filterChain);
} else {
super.doFilterInternal(request, response, filterChain);
}
}
class EncodeRequest extends HttpServletRequestWrapper {
private final String[] charsets = { "iso8859-1", "gbk", "gb2312", "utf-8", "ucs" };
@Override
public String getParameter(String param) {
String value = super.getParameter(param);
return convertCharset(value);
}
private String convertCharset(String value) {
String result = value;
try {
if (value != null) {
if (value != null) {
for (String charset : charsets) {
if (value.equals(new String(value.getBytes(charset), charset))) {
value = new String(value.getBytes(charset), encoding);
}
}
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
public EncodeRequest(HttpServletRequest request) {
super(request);
}
}
}
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
public class CharacterEncodingFilter extends org.springframework.web.filter.CharacterEncodingFilter {
private String encoding;
@Override
public void setEncoding(String encoding) {
this.encoding = encoding;
super.setEncoding(encoding);
}
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
if ("GET".equals(request.getMethod())) {
super.doFilterInternal(new EncodeRequest(request), response, filterChain);
} else {
super.doFilterInternal(request, response, filterChain);
}
}
class EncodeRequest extends HttpServletRequestWrapper {
private final String[] charsets = { "iso8859-1", "gbk", "gb2312", "utf-8", "ucs" };
@Override
public String getParameter(String param) {
String value = super.getParameter(param);
return convertCharset(value);
}
private String convertCharset(String value) {
String result = value;
try {
if (value != null) {
if (value != null) {
for (String charset : charsets) {
if (value.equals(new String(value.getBytes(charset), charset))) {
value = new String(value.getBytes(charset), encoding);
}
}
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
public EncodeRequest(HttpServletRequest request) {
super(request);
}
}
}
相关文章推荐
- mysql乱码问题分析与解决方法
- php 各种应用乱码问题的解决方法
- JSP/Servlet乱码问题
- 解决javac和java命令在Mac OSX终端terminal里的乱码问题
- 理解和解决 MySQL 乱码问题
- 关于html和jsp乱码问题
- struts2 国际化 中文乱码英文不乱码问题
- 利用tomcat解决get提交中文乱码问题
- 各种乱码问题汇总
- 记一次痛苦的编码问题处理
- 解决get方法传递URL参数中文乱码问题
- 凝思操作系统下部署应用总结
- Alert()乱码问题
- php的部分乱码问题集的解决方法
- linux 乱码问题
- win7乱码问题解决方法(原创)
- Tomcat在处理GET和POST请求时产生的乱码问题
- Struts1.x系列教程(3):属性(资源)文件乱码问题的解决之道
- jsp_get请求参数是中文时乱码