自定义 Filter 过滤器 和 HttpServletRequestWrapper 实现 request 参数 修改/验证
2019-06-06 16:40
411 查看
实现对request中参数去空格功能:
自定义过滤器:实现Filter
@Component public class TestFilter implements Filter { public TestFilter() { } @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws Exception { HttpServletRequest req = (HttpServletRequest) request; TestrequestWrapper testRequestWrapper = new TestRequestWrapper(req); chain.doFilter(testRequestWrapper , response); } @Override public void destroy() { } }
继承HttpServletRequestWrapper
public class TestWrapper extends HttpServletRequestWrapper {
private Map<String, String[]> params = new HashMap<>(); public TestWrapper(HttpServletRequest request) { super(request); this.params.putAll(request.getParameterMap()); this.modifyValues(); } public void modifyValues() {//将parameter的值去除空格后重写回去 Set<String> set = params.keySet(); Iterator<String> iterator = set.iterator(); while (iterator .hasNext()) { String ket = iterator .next(); String[] values = params.get(key); for (int i = 0; i < values.length; i++) { values[i] = values[i].trim(); } params.put(key, values); } } @Override public Enumeration<String> getParameterNames() { return new Vector<>(params.keySet()).elements(); } @Override public String getParameter(String name) { String[] values = params.get(name); if (values == null || values.length == 0) { return null; } return values[0]; } }
}
相关文章推荐
- 继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数
- 继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数
- 继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数
- 继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数
- 继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数
- 使用HttpServletRequestWrapper在filter修改request参数
- HttpServletRequestWrapper,HttpServletResponseWrapper在过滤器Filter中的使用
- SpringBoot拦截Request修改里面参数内容(HttpServletRequestWrapper)
- HttpServletRequestWrapper 实现xss注入(2)
- 使用java的过滤器filter备忘(HttpServletResponseWrapper)
- HttpServletRequestWrapper使用技巧(自定义session和缓存InputStream)
- HttpServletRequestWrapper重新并修改http请求信息
- CAS-Client客户端研究(四)-HttpServletRequestWrapperFilter
- 继承HttpServletRequestWrapper 实现request中流的重复获取
- 自定义过滤器Filter进行JWT登陆令牌验证并设置响应头实现跨域时跨域失效
- Struts2 Filter 和 HttpServletRequestWrapper出现的问题
- HttpServletRequestWrapper采用装饰模式重新封装request,并打印request请求相关参数。
- spring mvc自定义过滤器filter实现对请求参数编解码的代码
- HttpServletRequestWrapper 实现xss注入
- 利用Filter及HttpServletResponseWrapper修改Response的内容(内容更改利用正则表达式)