filter的用法filter過濾器

1.過濾器的概念html

Java中的Filter 並非一個標準的Servlet ,它不能處理用戶請求,也不能對客戶端生成響應。 主要用於對HttpServletRequest 進行預處理,也能夠對HttpServletResponse 進行後處理,是個典型的處理鏈。java

優勢:過濾鏈的好處是,執行過程當中任什麼時候候均可以打斷,只要不執行chain.doFilter()就不會再執行後面的過濾器和請求的內容。而在實際使用時,就要特別注意過濾鏈的執行順序問題編碼

2.過濾器的做用描述spa

  • 在HttpServletRequest 到達Servlet 以前,攔截客戶的HttpServletRequest 。 
  •   根據須要檢查HttpServletRequest ,也能夠修改HttpServletRequest 頭和數據。 
  •   在HttpServletResponse 到達客戶端以前,攔截HttpServletResponse 。 
  • 根據須要檢查HttpServletResponse ,能夠修改HttpServletResponse 頭和數據。

3.過濾器的執行流程3d

package test01;

import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class Filter implements javax.servlet.Filter {

    public Filter() {
        
    }

    
    public void destroy() {

    }


    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        System.out.println("通過了過濾器1");
        
        //設置編碼
        request.setCharacterEncoding("UTF-8");
        
        response.setContentType("tesx/html");
        
        response.setCharacterEncoding("UTF-8");
        
        //過濾器鏈的容器
        //把當前請求傳給下一個過濾器
        chain.doFilter(request, response);
    }

    public void init(FilterConfig fConfig) throws ServletException {
    
    }

}

相關文章
相關標籤/搜索