小编use*_*898的帖子

使用 HTTPServletRequestWrapper 包装请求参数

我有一个可以验证/授权 REST 调用的过滤器。该过滤器需要访问请求参数,因此我为此编写了一个自定义 HTTPServletRequestWrapper。

import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

public class WrapperRequest extends HttpServletRequestWrapper {
    private Map<String, String[]> requestParams = null;

    public WrapperRequest(final ServletRequest request) {
        super((HttpServletRequest) request);

    }

    @Override
    public String getParameter(final String name) {
        if (getParameterMap().get(name) != null) {
            return getParameterMap().get(name)[0];
        } else {
            getParameterMap().get(name)[0] = super.getParameter(name);
            requestParams.put(name, getParameterMap().get(name));
            return requestParams.get(name)[0];
        }

    }

    @Override
    public Map<String, String[]> getParameterMap() {
        if (requestParams == null) {
            requestParams = new HashMap<String, String[]>(); …
Run Code Online (Sandbox Code Playgroud)

java servlets wrapper servlet-filters tomcat7

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

servlet-filters ×1

servlets ×1

tomcat7 ×1

wrapper ×1