点滴记录,是前进的脚步 2018-12-11 08:28 采纳率: 16.7%
浏览 340
已结题

过滤器相关疑问请教大神指点

继承HttpServletRequestWrapper类后重写了getParameter ,getHeader ,getParameterValues方法,过滤器执行时这几个方法是被谁调用的呢?
具体代码如下:

public class NewXssFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {

}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    chain.doFilter(new NewXssHttpServletRequestWraper(
            (HttpServletRequest)request), response);//对request和response进行过滤
}

@Override
public void destroy() {

}

}

继承HttpServletRequestWrapper类的代码:

public class NewXssHttpServletRequestWraper extends HttpServletRequestWrapper {

 //构造函数
public NewXssHttpServletRequestWraper(HttpServletRequest request) {
    super(request);
}

 //重写getParameter
@Override
public String getParameter(String name) {
    if(name.equals("packageToken")){
        return checkToken(name);
    }else{
        return clearXss(super.getParameter(name));
    }

}

//重写getHeader
@Override
public String getHeader(String name) {
    return clearXss(super.getHeader(name));
}
//重写getParameterValues
@Override
public String[] getParameterValues(String name) {
    String[] values = super.getParameterValues(name);
    if (values == null) {
        return null;
    }
    String[] newValues = new String[values.length];

    for (int i = 0; i < values.length; i++) {
        newValues[i] = clearXss(values[i]);
    }

    return newValues;
}

    略。。。。

}

  • 写回答

2条回答 默认 最新

  • L星火燎原 2018-12-11 08:38
    关注

    DEBUG应该会吧??

    评论

报告相同问题?