具体内容
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 
 | import java.io.IOException;import java.io.UnsupportedEncodingException;
 import java.util.Map;
 
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
 
 
 
 
 
 public class EncodingFilter implements Filter {
 
 @Override
 public void init(FilterConfig filterConfig) throws ServletException {
 
 
 }
 
 @Override
 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
 
 HttpServletRequest request=(HttpServletRequest) req;
 HttpServletResponse response=(HttpServletResponse) resp;
 
 
 chain.doFilter(new MyRequest(request), response);
 }
 
 @Override
 public void destroy() {
 
 
 }
 
 }
 class MyRequest extends HttpServletRequestWrapper{
 private HttpServletRequest request;
 private boolean flag=true;
 
 
 public MyRequest(HttpServletRequest request) {
 super(request);
 this.request=request;
 }
 
 @Override
 public String getParameter(String name) {
 if(name==null || name.trim().length()==0){
 return null;
 }
 String[] values = getParameterValues(name);
 if(values==null || values.length==0){
 return null;
 }
 
 return values[0];
 }
 
 @Override
 
 
 
 public String[] getParameterValues(String name) {
 if(name==null || name.trim().length()==0){
 return null;
 }
 Map<String, String[]> map = getParameterMap();
 if(map==null || map.size()==0){
 return null;
 }
 
 return map.get(name);
 }
 
 @Override
 
 
 
 public Map<String,String[]> getParameterMap() {
 
 
 
 
 
 
 String method = request.getMethod();
 if("post".equalsIgnoreCase(method)){
 try {
 request.setCharacterEncoding("utf-8");
 return request.getParameterMap();
 } catch (UnsupportedEncodingException e) {
 
 e.printStackTrace();
 }
 }else if("get".equalsIgnoreCase(method)){
 Map<String,String[]> map = request.getParameterMap();
 if(flag){
 for (String key:map.keySet()) {
 String[] arr = map.get(key);
 
 for(int i=0;i<arr.length;i++){
 
 try {
 arr[i]=new String(arr[i].getBytes("iso8859-1"),"utf-8");
 } catch (UnsupportedEncodingException e) {
 e.printStackTrace();
 }
 }
 }
 flag=false;
 }
 
 
 return map;
 }
 
 return super.getParameterMap();
 }
 
 }
 
 | 
 本作品采用知识共享署名 4.0 中国大陆许可协议进行许可,欢迎转载,但转载请注明来自御前提笔小书童,并保持转载后文章内容的完整。本人保留所有版权相关权利。
 本作品采用知识共享署名 4.0 中国大陆许可协议进行许可,欢迎转载,但转载请注明来自御前提笔小书童,并保持转载后文章内容的完整。本人保留所有版权相关权利。
本文链接:https://royalscholar.cn/2017/04/26/Java通过过滤器统一编码格式/