import java.io.CharArrayWriter;import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpServletResponseWrapper;
public class Ct extends HttpServletResponseWrapper {
private CharArrayWriter output; // 重写tostring方法 public String toString() { return output.toString(); } public Ct(HttpServletResponse response) { super(response); this.output=new CharArrayWriter(); } public PrintWriter getWriter(){ return new PrintWriter(output); } }
//过滤器import java.io.IOException;import java.io.PrintWriter;
import javax.servlet.Filter;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.HttpServletResponse;
public class HtmlFilter extends HttpServlet implements Filter{
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //设置响应编码 response.setCharacterEncoding("UTF-8"); PrintWriter out=response.getWriter(); Ct ct=new Ct((HttpServletResponse)response); //执行下一步 chain.doFilter(request, ct); String resStr=ct.toString().trim(); String newStr=""; if(resStr.contains("杂种儿")){ newStr=resStr.replaceAll("杂种儿", "***"); } out.print(newStr); }
public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub }
}
//xml配置
index.
jsp
ecodeing
HtmlFilter
ecodeing
*.jsp
//jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
<html> My JSP 'index.jsp' starting page
你家吗 杂种儿