(JavaWeb)Filter過濾器

Filter過濾器

Filter:過濾器,用來過濾網站的數據。

  • 自動登錄
  • 統一設置編碼格式
  • 訪問權限控制
  • 敏感字符過濾等

過濾器實際上就是對web資源進行攔截,做一些處理後再交給下一個過濾器或servlet處理
通常都是用來攔截request進行處理的,也可以對返回的response進行攔截處理。
在這裏插入圖片描述
Filter開發步驟:

  1. 導包

  2. 編寫過濾器

    1. 導包不要錯
      在這裏插入圖片描述
    2. 實現Filter接口,重寫對應的方法即可
public class CharacterEncodingFilter implements Filter {
    //初始化:web服務器啓動,就以及初始化了,隨時等待過濾對象出現!
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("CharacterEncodingFilter初始化");
    }
    //Chain : 鏈
    /*
    1. 過濾中的所有代碼,在過濾特定請求的時候都會執行
    2. 必須要讓過濾器繼續同行
        chain.doFilter(request,response);
     */
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=utf-8");
        filterChain.doFilter(servletRequest,servletResponse);//讓我們的請求繼續走,如果不寫,程序到這裏就被攔截停止!
    }
    //銷燬:web服務器關閉的時候,過濾會銷燬
    public void destroy() {
        System.out.println("CharacterEncodingFilter銷燬");
    }
}

  1. 在web.xml中配置 Filter
<filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>com.zh.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <!--只要是 /servlet的任何請求,會經過這個過濾器-->
        <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>

寫個servlet顯示中文字符
在這裏插入圖片描述
沒有經過過濾器訪問時
在這裏插入圖片描述
通過過濾器後
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章