用過濾器實(shí)現(xiàn)字符替換

UseFilter.java

import java.io.CharArrayWriter;
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.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

@WebFilter("/*")
public class UseFilter implements Filter{
    //private FilterConfig filterConfig;
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        //this.filterConfig = filterConfig;
    }
    
    /*
     * 獲得頁面的響應(yīng),然后對(duì)這個(gè)響應(yīng)內(nèi)容進(jìn)行處理并生成自定義的響應(yīng)
     * 把敏感字去掉并替換成“***”,再返回給客戶端
     * */
    @Override
    public void doFilter(ServletRequest req, ServletResponse resp,
            FilterChain filterChain) throws IOException, ServletException {
            resp.setCharacterEncoding("UTF-8");
            PrintWriter out = resp.getWriter();
            Cr wrapper=new Cr((HttpServletResponse)resp);
            filterChain.doFilter(req, wrapper);
            String resStr=wrapper.toString().trim();
            String newStr="";
            if(resStr.indexOf("fuck")>0){
                newStr = resStr.replace("fuck", "***");
            }
            out.println(newStr);
    }
    
    @Override
        public void destroy() {
            
        }
    
}
/*
 * 這個(gè)類文件的作用是處理對(duì)頁面響應(yīng)的內(nèi)容,用toString方法進(jìn)行重載
 * 然后將頁面中的內(nèi)容轉(zhuǎn)換成字符串。
 * */
class Cr extends HttpServletResponseWrapper{
    private CharArrayWriter output;
    public String toString(){
        return output.toString();
    }
    public Cr(HttpServletResponse response) {
        super(response);
        this.output=new CharArrayWriter();
    }
    public PrintWriter getWriter(){
        return new PrintWriter(output);
    }
    
}

index.jsp

<body>
fuck
</body>
9.PNG
10.PNG
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光劍書架上的書閱讀 4,177評(píng)論 2 8
  • JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件,本...
    91數(shù)據(jù)閱讀 3,634評(píng)論 0 13
  • 1.學(xué)習(xí)內(nèi)容 JSP技術(shù)入門和常用指令 JSP的內(nèi)置對(duì)象&標(biāo)簽介紹 EL表達(dá)式&EL的內(nèi)置對(duì)象 2.JSP技術(shù)入門...
    WendyVIV閱讀 2,324評(píng)論 1 18
  • 2008年是記憶深刻的一年。 2018年也將必然成為記憶深刻的一年。 而2018年也確實(shí)將是記憶深刻的一年。 離2...
    等心語閱讀 232評(píng)論 0 0
  • 2008年,就在一個(gè)秋天,有個(gè)小姑娘走在前面,她的短發(fā)就留在我心間! 2012年,又到一個(gè)夏天,我們沒有像別人那樣...
    甘草者閱讀 154評(píng)論 0 1

友情鏈接更多精彩內(nèi)容