国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java過濾器中Filter的ChainFilter過濾鏈

瀏覽:4日期:2022-08-29 13:03:40

1、什么是過濾器?

在客戶端到服務器的過程中,當發送請求時,如果有不符合的信息將會被filter進行攔截,如果符合則會進行放行,在服務器給客戶端響應時也會進行判斷 如果有不符合的信息將會被filter進行攔截,如果符合則會進行放行。

OOP:Java面向對象編程,抽象、封裝、繼承、多態。

AOP:面向切面編程,過濾器就是一個面向切面的編程思想。

AOP是sun公司srvlet2.3版本之后推出的新功能,在2.3之前的版本沒有該功能,定義一個過濾器需要實現(implement)Filter接口,這里實現的是javax.servlet.Filter。

過濾器是一個程序,它先于與之相關的servlet或JSP頁面運行在服務器上。過濾器可附加到一個或多個servlet或JSP頁面上,并且可以檢查進入這些資源的請求信息。在這之后,過濾器可以作如下的選擇:①以常規的方式調用資源(即,調用servlet或JSP頁面)。 ②利用修改過的請求信息調用資源。③調用資源,但在發送響應到客戶機前對其進行修改。④阻止該資源調用,代之以轉到其他的資源,返回一個特定的狀態代碼或生成替換輸出。

2、過濾器的生命周期:

在項目開始啟動的時候,過濾器開始初始化,當有請求來的時候開始自動去執行doFilter方法,隨著項目的關閉過濾器開始停止。

3、過濾器有什么用?

過濾器主要的作用是過濾請求,可以通過Filter技術,web服務器管理的所有web資源:例如:JSP、Servlet、靜態圖片文件、或靜態HTML文件進行攔截,從而實現一些特殊功能,例如:實現URL級別的權限控制、過慮敏感詞匯、壓縮響應信息等一些高級功能。

4、該怎么用?

可以寫多個,從用戶訪問——》第一個過濾器——》第二個過濾器——》Servlet

過濾器的生命周期:隨著項目的啟動而創建,當訪問了地址后而調用doFilter方法,這個會多次執行,隨著項目的關閉而銷毀。

調用doFilter方法時有三個參數:

reqest(ServletRequest)——》HttpServletRequest(注意強轉:在使用HttpServletRequest這個獨有的方法時要強轉)

response(ServletResponse)——》HttpServletResponse(注意強轉:在使用HttpServletResponse這個獨有的方法時要強轉)

filterchain 鏈 可以指向下一個地址(如果有過濾器則指向下一個過濾器,沒有指向資源Servlet) 過濾、攔截、放行

chain.doFilter(req,resp);//放行

ChainFilter鏈:

它可以指向下一個資源,如果還有過濾器,則繼續進行下一次的過濾,如果沒有過濾器,則會指向資源(servlet)。

java過濾器中Filter的ChainFilter過濾鏈

filter應用場景:

(1).為所有的Servlet設置編碼

(2).設置跨域問題

(3).解決所有的防盜鏈問題

使用過濾器的時候需要配置的文件:

(1)、固定地址

(2)、通配符

(3)、指定目錄

過濾器代碼奉上:

package servlet; import javax.servlet.*;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/*** urlPattern={'/*'}獲取所有的Servlet的映射路徑,實現不同Servlet之間的交互*/@WebServlet(name = 'DemoFilter',urlPatterns = {'/*'})public class DemoFilter implements Filter{/*** 過濾器的初始化方法* @param filterConfig 可以獲取部署描述符文件(web.xml)中分配的過濾器初始化參數。* @throws ServletException*/@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println('過濾器被創建了');}/**** @param servletRequest 請求* @param servletResponse 響應* @param filterChain 鏈條,對過濾器進行阻止和放行* @throws IOException* @throws ServletException*/@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println('過濾器被執行了');servletResponse.setContentType('text/html,charset=utf-8');HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;response.addHeader('Access-Control-Allow-Origin','*');String referer = request.getHeader('referer');System.out.println(referer);filterChain.doFilter(servletRequest,servletResponse);//放行}@Overridepublic void destroy() {System.out.println('過濾器被銷毀了');}}

到此這篇關于java過濾器中Filter的ChainFilter過濾鏈的文章就介紹到這了,更多相關java過濾器Filter內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 久久a级片| 一本色道久久综合亚洲精品 | 国产激情一区二区三区四区 | 国产精品久久九九 | 一区二区三区四区视频在线观看 | 精品亚洲成a人在线观看 | 精品午夜国产在线观看不卡 | 国内精品久久久久影院不卡 | 毛片免费看看 | 日韩一区二区三区在线免费观看 | 2019天天操天天干天天透 | 一级做性色a爰片久久毛片免费 | 一级视频免费观看 | 免费一区二区三区四区五区 | 欧美真人毛片动作视频 | 欧美一区二区三区免费不卡 | 精品国产自在现线看久久 | 久草在线视频免费资源观看 | 99视频精品免费99在线 | 一区二区三区国模大胆 | 国产成人精品视频播放 | 综合亚洲精品一区二区三区 | 国产精品亚洲第一区柳州莫青 | 久久93精品国产91久久综合 | 日本乱理伦片在线观看网址 | 日本特级黄毛片毛片视频 | 男女性高爱潮免费的国产 | 99视频一区 | 精品国产高清不卡毛片 | 日本午夜vr影院新入口 | 国产人成在线视频 | 国内精品视频成人一区二区 | 欧美操操操 | 韩国美女豪爽一级毛片 | 偷窥女厕国产在线视频 | 国产一区在线观看免费 | 色吊丝在线观看国产 | 欧美精品人爱a欧美精品 | 国产人妖xxxx做受视频 | 亚洲深夜福利视频 | 综合在线视频精品专区 |