Filter过滤词汇(增强返回)
1.首先Filter使用注解设置拦截路径,将工程下的所有资源请求都拦下来
2.登录Servlet,在URL上传送数据,并在Servlet上的Post或是Get上
对传送来的参数获取,可使用request.getParameterMap(),
getParameter()...方法获取到URL上传递过来的参数,
之后就是对request使用获取参数的特定方法,
在Filter过滤器中作 返回值 增强屏蔽
3.在Filter init(),使用filterConfig获取servletContext,
再获取敏感文件的真实路径,并读取出来。
4.在Filter中使用代理模式,doFilter中 动态代理 参数为request,
因为在Servlet中使用request.getParamter...来
获取URL上的参数传递,
5.注意:ServletRequest也有getParamter..
不用强转为HttpServletRequest,在动态代理的invoke中,
使用method.getName()判断被执行的函数名称
6.如果判断为正是Servlet上Request所执行的获取参数的方法,
那么就先method.invoke(真实对象,args),获取其返回值,
再对该返回值判断是否包含contains步骤3中的敏感词汇,并替换掉,
也就是获取返回值->增强返回值。
7.如果判断为不是Servlet上Request所执行的获取参数的方法,
那么就先method.invoke(真实对象,args),获取其返回值,
直接返回出method.invoke(真实对象,args)
8.在最后,不管判断有没成功,都要放行,
注意:chain.doFilter(代理Reques