- package com.itnba.maya.filter;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Arrays;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletRequestWrapper;
- import javax.servlet.http.HttpServletResponse;
- public classFilterimplements javax.servlet.Filter {
- privateArrayList list =newArrayList<>();
- @Override
- public void destroy() {
- // TODO 自动生成的方法存根
- }
- @Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
- throws IOException, ServletException {
- HttpServletRequest req=(HttpServletRequest) request;
- HttpServletResponse res=(HttpServletResponse) response;
- HttpServletRequest mreq=new MyRequest(req);
- //向下一个链条放行,不能用原来的request;
- chain.doFilter(mreq, res);
- }
- @Override
- public voidinit(FilterConfig arg0)throws ServletException {
- //把敏感词放到集合里String val=arg0.getInitParameter("minganci");
- String[] ss = val.split(",");
- list.addAll(Arrays.asList(ss));
- }
- //内部类,自己定义request
- classMyRequestextends HttpServletRequestWrapper{
- private HttpServletRequest request;
- public MyRequest(HttpServletRequest request) {
- super(request);
- this.request=request;
- }
- @Override
- //重写getParameter
- public String getParameter(String name) {
- //获取提交内容String txt=this.request.getParameter("txt");
- //改集合里的敏感词
- for(String s:list){
- txt=txt.replaceAll(s, "***");
- }
- return txt;
- }
- }
- }
来源: http://www.bubuko.com/infodetail-1978908.html