成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

JavaWeb過濾器Filter怎么使用

這篇文章主要介紹“JavaWeb過濾器Filter怎么使用”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“JavaWeb過濾器Filter怎么使用”文章能幫助大家解決問題。

上思ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

Filter簡介

過濾器是處在客戶端和服務(wù)器資源之間的一到過濾網(wǎng),我們可以根據(jù)具體的需求來對請求頭和數(shù)據(jù)就行預(yù)處理,也可以對響應(yīng)頭和和數(shù)據(jù)進(jìn)行后處理。例如Jsp, Servlet, 靜態(tài)圖片文件或靜態(tài)html文件等進(jìn)行攔截,從而實(shí)現(xiàn)一些特殊的功能。例如實(shí)現(xiàn)URL級別的權(quán)限訪問控制、過濾敏感詞匯、壓縮響應(yīng)信息等一些高級功能。

Filter的工作原理

服務(wù)器的servlet容器接收到客戶端發(fā)送的請求后,服務(wù)器的servlet容器根據(jù)web.xml配置文件中配置的Filter攔截客戶端發(fā)送request,檢查客戶端request,如果不滿足過濾要求,F(xiàn)ilter攔截對應(yīng)request;如果滿足過濾要求,則在Filter中調(diào)用doFilter方法,執(zhí)行request并對request進(jìn)行處理并產(chǎn)生response,服務(wù)器將response發(fā)送給客戶端之前,F(xiàn)ilter會攔截response是否滿足過濾要求,如果不滿足,F(xiàn)ilter會攔截response;如果滿足過濾要求,則將response響應(yīng)給客戶端。

Filter的生命周期

1.初始化(init):filter的創(chuàng)建和銷毀都是有服務(wù)器負(fù)責(zé)的。服務(wù)器啟動的時候,web服務(wù)器創(chuàng)建Filter的實(shí)例對象,并調(diào)用其init方法,完成對象的初始化功能。filter對象只會創(chuàng)建一次,init方法也只會執(zhí)行一次。

2.運(yùn)行(doFilter):攔截到請求時,執(zhí)行doFilter方法??梢詧?zhí)行多次。

3.銷毀(destroy):服務(wù)器關(guān)閉時,web服務(wù)器銷毀Filter的實(shí)例對象。

JavaWeb過濾器Filter怎么使用

Filter的使用

1.過濾器的快速入門

(1)定義一個類,實(shí)現(xiàn)接口Filter,并復(fù)寫Filter接口doFilter方法

package com.wedu.demo.servlet;import javax.servlet.*;import java.io.IOException;/**
 * 過濾器快速入門
 */public class FilterDemo implements Filter { public void init(FilterConfig config) throws ServletException { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { System.out.println("doFilter方法執(zhí)行……"); chain.doFilter(req, resp); } public void destroy() { }
}

(2)配置攔截路徑

以web.xml配置

   filter com.wedu.demo.servlet.FilterDemo   filter /*    hello 
com.wedu.demo.servlet.HelloServlet   hello /hello

使用注解的方式配置攔截路徑

JavaWeb過濾器Filter怎么使用

2.過濾器的配置詳解

(1)配置攔截路徑具體資源路徑:只有訪問指定的資源時,過濾器才會被執(zhí)行,如:/index.jsp

攔截目錄:訪問目錄下的所有資源時,過濾器都會被執(zhí)行,如:/user/*

后綴名攔截:訪問所有指定后綴名的資源時,過濾器就會被執(zhí)行,如:*.jsp

攔截所有資源:訪問所有資源時,過濾器都會被執(zhí)行,如:/*

(2)攔截方式的配置過濾器的四種攔截方式:REQUEST(默認(rèn)的)、FORWARD、INCLUDE、ERROR。REQUEST:直接訪問目標(biāo)資源時執(zhí)行過濾器 。包括:在地址欄中直接訪問、表單提交、超鏈接、重定向,只要在地址欄中可以看到目標(biāo)資源的路徑,就是REQUEST;

FORWARD:轉(zhuǎn)發(fā)訪問執(zhí)行過濾器。包括:RequestDispatcher#forward()方法、標(biāo)簽都是轉(zhuǎn)發(fā)訪問;

INCLUDE:包含訪問執(zhí)行過濾器。包括:RequestDispatcher#include()方法、標(biāo)簽都是包含訪問;

ERROR:當(dāng)目標(biāo)資源在web.xml中配置為中時,并且真的出現(xiàn)異常,轉(zhuǎn)發(fā)到目標(biāo)資源時,會執(zhí)行過濾器;

使用web.xml方式配置:

filter com.wedu.demo.servlet.FilterDemo
 filter /*  FORWARD REQUEST

使用注解的方式配置:

package com.wedu.demo.servlet;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import java.io.IOException;/**
 * 過濾器的攔截方式配置
 */@WebFilter(value = "/*",dispatcherTypes = {DispatcherType.FORWARD,DispatcherType.REQUEST})public class FilterDemo implements Filter { public void init(FilterConfig config) throws ServletException { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { System.out.println("FilterDemo……"); chain.doFilter(req, resp); } public void destroy() { }
}

(3)多個過濾器的配置方式

web.xml配置

 filter1 com.wedu.demo.servlet.FilterDemo
 filter1 /*
 filter2 com.wedu.demo.servlet.FilterDemo
 filter2 /*

注意:執(zhí)行順序根據(jù)定義,誰定義在上面誰先先執(zhí)行。

注解方式配置

在定義的每個過濾器上面加上對應(yīng)的注解即可。

注意:執(zhí)行的順序按照類名的字符串比較規(guī)則比較,值小的先執(zhí)行。

關(guān)于“JavaWeb過濾器Filter怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。

文章標(biāo)題:JavaWeb過濾器Filter怎么使用
網(wǎng)站鏈接:http://jinyejixie.com/article2/poesic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、域名注冊、網(wǎng)站營銷、用戶體驗(yàn)、品牌網(wǎng)站建設(shè)企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
武邑县| 丽江市| 含山县| 蕲春县| 延边| 德惠市| 民丰县| 甘泉县| 峡江县| 邵阳市| 鄯善县| 乾安县| 宾川县| 隆德县| 鄄城县| 偃师市| 贵港市| 伊宁县| 夏河县| 东阿县| 沂水县| 金寨县| 武陟县| 仪征市| 西林县| 商河县| 香港| 田林县| 抚远县| 孝感市| 梨树县| 青海省| 江永县| 铁岭县| 科尔| 老河口市| 九龙城区| 石阡县| 巴林右旗| 中西区| 启东市|