java web压缩过滤器_Java Web过滤器Filter(五)
Filter概述
Filter意為濾鏡或者過濾器,用于在Servlet之外對request或者response進行修改。Filter提出濾鏡鏈的概念,一個FilterChain包括多外Filter。客戶端請求request在抵達Servlet之前會經過FilterChain里的所有Filter,服務器響應response在從Servlet抵達客戶端瀏覽器之前會經過FilterChain里的所有Filter。Filter處理過程如下:
Filter像是客戶端瀏覽器與服務器端之間的一層濾網。
Filter接口
一個Filter必須實現javax.servlet.Filter接口。
public class MyFilter implements Filter {
public void init(FilterConfig config) throws ServletException{}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOExcepton, ServletException{
System.out.println(“request被處理之前…”);
chain.doFilter(request, response);
System.out.println(“request被處理之后,response抵達客戶端瀏覽器之前……”)
}
public void destroy() {}
}
注:chain.doFilter(request, response)將request遞交給FilterChain中的下一個Filter,如果所有Filter都走完了則交給Servlet。
Filter配置
配置到達servlet的方式,有4種取值:REQUEST、FORWORD、INCLUDE、ERROR。如果沒配置默認為REQUEST。
Filter經典案例
Filter可以處理如:權限驗證、日志記錄、數據壓縮、數據加密、格式轉換、圖像處理等工作。
防盜鏈Filter(其它網端訪問本站圖片,將會顯示錯誤圖片)
字符編碼Filte(這個只處理POST提交請求的編碼)
對于GET請求還需要修改Tomcat的/conf/server.xml
添加URIEncoding=”UTF-8”
日志記錄Filter(日志可拆卸)
異常捕捉異常Filter
如果在chain.doFilter(request, response)上加上try…catch語句,就能捕捉Servlet中拋出的可預料的與不可預料的異常,然后根據不同異常進行不同異常處理。
權限驗證Filter
Java Web程序一般使用session或者cookie來記錄用戶是否登錄,以及該用戶的權限。
內容替換Filter
GZIP壓縮Filter
圖像水印Filter
緩存Filter
XSLT轉換Filter
Filter是一種很有彈性的機制,功能很強大,而且與servlet、JSP等沒有任何耦合,可自由拆卸。Filter是現在流行的AOP(Aspect Orainted Programming,面向切面編程)思想的一種體現。
喜歡 (0)or分享 (0)
總結
以上是生活随笔為你收集整理的java web压缩过滤器_Java Web过滤器Filter(五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平安银行外包转正条件
- 下一篇: 韩国活跃股票账户数达到5000万 已接近