字符替换过滤器
在java.servlet.http包中,包含了一個名為HttpServletResponseWrapper的類,該類的對象表示一個自定義的響應對象,實現了HttpServletResponse接口,其構造方法通過傳入的HttpServletResponse類型的參數,將響應轉換為自定義的響應,構造方法的語法結構:
public HttpServletResponseWrapper(HttpServletResponse response)
創建Cr.java類文件,處理對頁面響應的內容,用toString()方法進行重載,將頁面中的內容轉換為自定義的響應
創建過濾器CtFilter.java,在doFilter()方法中獲取頁面的響應,對響應進行處理
import javax.servlet.*; import javax.servlet.http.*; import java.io.*;public class CtFilter extends HttpServlet implements Filter {public void init(FilterConfig filterConfig) throws ServletException {}public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws ServletException,IOException {response.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();Cr wrapper = new Cr((HttpServletResponse)response);filterChain.doFilter(request, wrapper);String resStr = wrapper.toString().trim();String newStr = "";if (resStr.indexOf("混蛋") > 0) {newStr = resStr.replace("混蛋","好人");}out.println(newStr);} }web.xml文件配置過濾器
<welcome-file-list><welcome-file>index2.jsp</welcome-file></welcome-file-list> <filter><filter-name>cr</filter-name><filter-class>com.cn.zj.ServletFilter.CtFilter</filter-class> </filter> <filter-mapping><filter-name>cr</filter-name><url-pattern>/*</url-pattern> </filter-mapping>index2.jsp頁面
<%@ page contentType="text/html; charset=gb2312" language="java"import="java.sql.*" errorPage=""%> <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>使用過濾器對響應頁面中敏感字符過濾</title><style type="text/css"> <!-- body --> </style> </head> <body><div> 網絡編程詞典您的建議有那些:</div><table height="100" width="300" cellpadding="2" cellspacing="2" border="2" bordercolor="lightblue"><Tr align="center"><td><div style="size: 6ex;">增學習內容豐富度,混蛋,技術與技術的實用性網絡瀏覽響應時間,以后周全的客服安排</div></td></Tr></table> </body> </html>總結
- 上一篇: 防盗链过滤器
- 下一篇: 验证用户身份Filter过滤器