输入 结果 前端代码 <form action="CommentDemo" method="post"> <textarea rows="15" cols="50" name="comment"></textarea> <input type="submit" value="发布"> </form>
@WebFilter("/comm") public class Filter5 implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { // 转成Http的req和resp 进行操作 HttpServletRequest req = (HttpServletRequest) servletRequest; HttpServletResponse resp = (HttpServletResponse) servletResponse; req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); // 接收前台表单提交 String comment = req.getParameter("comment"); // 获取到KeyWord.properties InputStream res = this.getClass().getClassLoader().getResourceAsStream("KeyWord.properties"); Properties p = new Properties(); p.load(res); // 获取值 Collection<Object> values = p.values(); // 获取每次的值 for (Object value : values) { String tem = (String)value; System.out.println(tem); // 查询字符串里面是否包含有 KeyWord.properties里的关键词 if (comment.contains(tem)){ // star就是星号的数量 String star = ""; System.out.println(star); for (int i = 0; i < tem.length(); i++) { star += "*"; } // replace替换 comment = comment.replace(tem,star); System.out.println(comment); } } // 带值 req.setAttribute("comment",comment); // 执行 filterChain.doFilter(req,resp); } @Override public void destroy() { } }
properties文件
Servlet层
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String comment =(String)req.getAttribute("comment"); resp.getWriter().print(comment); }