最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java過濾器中Filter的ChainFilter過濾鏈

 更新時(shí)間:2020年07月13日 16:55:08   作者:IT_laobai  
這篇文章主要介紹了java過濾器中Filter的ChainFilter過濾鏈,發(fā)送請(qǐng)求時(shí),如果有不符合的信息將會(huì)被filter進(jìn)行攔截,如果符合則會(huì)進(jìn)行放行。如果感興趣可以來學(xué)習(xí)一下

1、什么是過濾器?

在客戶端到服務(wù)器的過程中,當(dāng)發(fā)送請(qǐng)求時(shí),如果有不符合的信息將會(huì)被filter進(jìn)行攔截,如果符合則會(huì)進(jìn)行放行,在服務(wù)器給客戶端響應(yīng)時(shí)也會(huì)進(jìn)行判斷 如果有不符合的信息將會(huì)被filter進(jìn)行攔截,如果符合則會(huì)進(jìn)行放行。

OOP:Java面向?qū)ο缶幊?,抽象、封裝、繼承、多態(tài)。

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

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

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

2、過濾器的生命周期:

在項(xiàng)目開始啟動(dòng)的時(shí)候,過濾器開始初始化,當(dāng)有請(qǐng)求來的時(shí)候開始自動(dòng)去執(zhí)行doFilter方法,隨著項(xiàng)目的關(guān)閉過濾器開始停止。

3、過濾器有什么用?

過濾器主要的作用是過濾請(qǐng)求,可以通過Filter技術(shù),web服務(wù)器管理的所有web資源:例如:JSP、Servlet、靜態(tài)圖片文件、或靜態(tài)HTML文件進(jìn)行攔截,從而實(shí)現(xiàn)一些特殊功能,例如:實(shí)現(xiàn)URL級(jí)別的權(quán)限控制、過慮敏感詞匯、壓縮響應(yīng)信息等一些高級(jí)功能。

4、該怎么用?

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

過濾器的生命周期:隨著項(xiàng)目的啟動(dòng)而創(chuàng)建,當(dāng)訪問了地址后而調(diào)用doFilter方法,這個(gè)會(huì)多次執(zhí)行,隨著項(xiàng)目的關(guān)閉而銷毀。

調(diào)用doFilter方法時(shí)有三個(gè)參數(shù):

reqest(ServletRequest)——》HttpServletRequest(注意強(qiáng)轉(zhuǎn):在使用HttpServletRequest這個(gè)獨(dú)有的方法時(shí)要強(qiáng)轉(zhuǎn))

response(ServletResponse)——》HttpServletResponse(注意強(qiáng)轉(zhuǎn):在使用HttpServletResponse這個(gè)獨(dú)有的方法時(shí)要強(qiáng)轉(zhuǎn))

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

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

ChainFilter鏈:

它可以指向下一個(gè)資源,如果還有過濾器,則繼續(xù)進(jìn)行下一次的過濾,如果沒有過濾器,則會(huì)指向資源(servlet)。

filter應(yīng)用場(chǎng)景:

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

(2).設(shè)置跨域問題

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

使用過濾器的時(shí)候需要配置的文件:

(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的映射路徑,實(shí)現(xiàn)不同Servlet之間的交互
*/
@WebServlet(name = "DemoFilter",urlPatterns = {"/*"})
public class DemoFilter implements Filter{
/**
* 過濾器的初始化方法
* @param filterConfig 可以獲取部署描述符文件(web.xml)中分配的過濾器初始化參數(shù)。
* @throws ServletException
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("過濾器被創(chuàng)建了");
}/**
*
* @param servletRequest 請(qǐng)求
* @param servletResponse 響應(yīng)
* @param filterChain 鏈條,對(duì)過濾器進(jìn)行阻止和放行
* @throws IOException
* @throws ServletException
*/
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("過濾器被執(zhí)行了");
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);//放行
}@Override
public void destroy() {
System.out.println("過濾器被銷毀了");
}
}

到此這篇關(guān)于java過濾器中Filter的ChainFilter過濾鏈的文章就介紹到這了,更多相關(guān)java過濾器Filter內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java集合進(jìn)行排序的方式總結(jié)

    java集合進(jìn)行排序的方式總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于java集合進(jìn)行排序的兩種方式總結(jié),有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-08-08
  • springboot使用alibaba的druid數(shù)據(jù)庫連接池錯(cuò)誤的問題及解決

    springboot使用alibaba的druid數(shù)據(jù)庫連接池錯(cuò)誤的問題及解決

    這篇文章主要介紹了springboot使用alibaba的druid數(shù)據(jù)庫連接池錯(cuò)誤的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 淺談SpringSecurity注解與AOP切面執(zhí)行順序

    淺談SpringSecurity注解與AOP切面執(zhí)行順序

    這篇文章主要介紹了淺談SpringSecurity注解與AOP切面執(zhí)行順序,引入Spring Security后,在Controller的方法中會(huì)出現(xiàn)Spring Security的方法注解與AOP同時(shí)存在的問題,這是就會(huì)設(shè)計(jì)順序問題,需要的朋友可以參考下
    2023-10-10
  • java web中圖片驗(yàn)證碼功能的簡(jiǎn)單實(shí)現(xiàn)方法

    java web中圖片驗(yàn)證碼功能的簡(jiǎn)單實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猨ava web 驗(yàn)證碼的簡(jiǎn)單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • Java對(duì)象類型的判斷詳解

    Java對(duì)象類型的判斷詳解

    這篇文章主要介紹了Java對(duì)象類型的判斷,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java使用非覆蓋的方法實(shí)現(xiàn)替換PDF中的文本

    Java使用非覆蓋的方法實(shí)現(xiàn)替換PDF中的文本

    這篇文章主要為大家詳細(xì)介紹了Java如何使用非覆蓋的方法實(shí)現(xiàn)替換PDF中的文本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • Spring配置shiro時(shí)自定義Realm中屬性無法使用注解注入的解決辦法

    Spring配置shiro時(shí)自定義Realm中屬性無法使用注解注入的解決辦法

    今天小編就為大家分享一篇關(guān)于Spring配置shiro時(shí)自定義Realm中屬性無法使用注解注入的解決辦法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • JAVA如何刪除文件或者文件夾

    JAVA如何刪除文件或者文件夾

    文章介紹了Java中刪除文件和空文件夾的四種基本方法,包括File類的delete()、deleteOnExit()方法,以及Files類的delete(Path path)和deleteIfExists(Path path)方法,文章還講述了如何使用Files類的walkFileTree方法和FileVisitor接口來刪除整個(gè)目錄或目錄中的部分文件
    2025-01-01
  • Maven打包jar包沒有主屬性問題解決方案

    Maven打包jar包沒有主屬性問題解決方案

    這篇文章主要介紹了Maven打包jar包沒有主屬性問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 全面解析Spring Security 過濾器鏈的機(jī)制和特性

    全面解析Spring Security 過濾器鏈的機(jī)制和特性

    這篇文章主要介紹了Spring Security 過濾器鏈的機(jī)制和特性,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

长宁区| 日土县| 宿迁市| 平南县| 东乡族自治县| 特克斯县| 镇原县| 革吉县| 大石桥市| 剑川县| 孙吴县| 册亨县| 登封市| 桃园市| 石门县| 石屏县| 苍南县| 黄龙县| 策勒县| 历史| 乌兰浩特市| 丰原市| 阜康市| 西城区| 阿克陶县| 义乌市| 公安县| 会东县| 安阳市| 怀宁县| 建平县| SHOW| 南乐县| 鄂托克旗| 苗栗市| 施甸县| 九龙县| 塔河县| 台南市| 科尔| 晋州市|