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