文章字数:101,阅读全文大约需要1分钟
HttpServletRequestWrapper
使用了装饰模式可以增强request
包装
1
| request=new RequestWrapper((HttpServletRequest)request);
|
实现
1 2 3 4 5 6 7 8 9 10 11 12 13
| class RequestWrapper extends HttpServletRequestWrapper{ @Override public String getParameter(String name) { return filter(super.getRequest().getParameter("name")); } private String filter(String value){ return value; } }
|
使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| @WebFilter(filterName = "xssFilter", urlPatterns = { "/*" }) public class XSSFilterimplements Filter {
@Override public void init(FilterConfig filterConfig) throws ServletException {}
@Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); chain.doFilter(new RequestWrapper((HttpServletRequest)request), response); }
@Override public void destroy() {} }
|