zoukankan      html  css  js  c++  java
  • 更改Request Parameters中的值

    1. 定义ParameterRequestWrapper 继承HttpServletRequestWrapper

    public class ParameterRequestWrapper extends HttpServletRequestWrapper {
    
        private Map<String,String[]> params;
    
        public ParameterRequestWrapper(HttpServletRequest request, Map<String,String[]> newParams) {
            super(request);
            this.params = newParams;
        }
    
        @Override
        public String getParameter(String name) {
            Object v = params.get(name);
            if (v == null) {
                return null;
            } else if (v instanceof String[]) {
                String[] strArr = (String[]) v;
                if (strArr.length > 0) {
                    return strArr[0];
                } else {
                    return null;
                }
            } else if (v instanceof String) {
                return (String) v;
            } else {
                return v.toString();
            }
        }
    
        @Override
        public Map getParameterMap() {
            return params;
        }
    
        @Override
        public Enumeration getParameterNames() {
            return new Vector(params.keySet()).elements();
        }
    
        @Override
        public String[] getParameterValues(String name) {
            Object v = params.get(name);
            if (v == null) {
                return null;
            } else if (v instanceof String[]) {
                return (String[]) v;
            } else if (v instanceof String) {
                return new String[] { (String) v };
            } else {
                return new String[] { v.toString() };
            }
        }
    
    }

    2. 在filter 中编写如下代码:

    public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {
            HttpServletRequest httpRequest = (HttpServletRequest) request;
            Map<String, String[]> parametersMap = DataFormat
                    .formatRequestParameters(httpRequest);
            ParameterRequestWrapper requestWrapper = new ParameterRequestWrapper(
                    httpRequest, parametersMap);
            chain.doFilter(requestWrapper, response);
        }
  • 相关阅读:
    检查宿舍卫生
    代码优化中 主窗口 问题 解决
    授权 存储
    升级Xcode7&iOS9后,出现NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -980X)
    控制器里面添加控制器
    版本新特性
    ios图片适配问题
    启动图片调整
    luogu_1896【题解】状压DP
    luogu_2602【题解】数位DP 数字计数
  • 原文地址:https://www.cnblogs.com/tangyanbo/p/4283454.html
Copyright © 2011-2022 走看看