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);
        }
  • 相关阅读:
    hdu 2196(树上点分治)
    hdu 4807(网络流 + 贪心)
    hdu4101
    hdu4216
    hdu 4219, 树形概率DP
    hdu 4127 A*搜索
    hdu 4126
    hdu 5296,15年多校1-7
    poj3436 ACM Computer Factory
    Fence
  • 原文地址:https://www.cnblogs.com/tangyanbo/p/4283454.html
Copyright © 2011-2022 走看看