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);
        }
  • 相关阅读:
    【原创】C# 文件操作详解(三)Directory类
    【原创】C# 文件操作详解(一)File类
    【原创】VS使用技巧——工欲善其事必先利其器
    【原创】C# 文件操作详解(四)DirectoryInfo类
    strpos用法
    调试跳转动态打印
    解决DIV超出样式长度自动换行
    PHP时间戳常用转换在(大、小月问题)
    懒人JS
    PHP 快速排序 与二维数组排序
  • 原文地址:https://www.cnblogs.com/tangyanbo/p/4283454.html
Copyright © 2011-2022 走看看