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

Servlet和Filter之間的區(qū)別與聯(lián)系

 更新時(shí)間:2016年05月04日 11:23:37   作者:桑梓子  
這篇文章主要介紹了Servlet和Filter之間的區(qū)別與聯(lián)系的相關(guān)資料,需要的朋友可以參考下

filter是一個(gè)可以復(fù)用的代碼片段,可以用來(lái)轉(zhuǎn)換HTTP請(qǐng)求、響應(yīng)和頭信息。Filter不像Servlet,它不能產(chǎn)生一個(gè)請(qǐng)求或者響應(yīng),它只是修改對(duì)某一資源的請(qǐng)求,或者修改從某一的響應(yīng)。

最近使用插裝的時(shí)候,改用cookie對(duì)計(jì)算機(jī)進(jìn)行識(shí)別,加入了過(guò)濾,仔細(xì)研究了一下servlet和filter,區(qū)別主要是:

過(guò)濾器的生命周期一般都要經(jīng)過(guò)下面三個(gè)階段:

servlet的特點(diǎn)是:

初始化

當(dāng)容器第一次加載該過(guò)濾器時(shí),init() 方法將被調(diào)用。該類(lèi)在這個(gè)方法中包含了一個(gè)指向 Filter Config 對(duì)象的引用。我們的過(guò)濾器實(shí)際上并不需要這樣做,因?yàn)槠渲袥](méi)有使用初始化信息,這里只是出于演示的目的。

過(guò)濾

過(guò)濾器的大多數(shù)時(shí)間都消耗在這里。doFilter方法被容器調(diào)用, 同時(shí)傳入分別指向這個(gè)請(qǐng)求/響應(yīng)鏈中的 Servlet Request、Servlet Response 和 Filter Chain 對(duì)象的引用。然后過(guò)濾器就有機(jī)會(huì)處理請(qǐng)求,將處理任務(wù)傳遞給鏈中的下一個(gè)資源(通過(guò)調(diào)用 Filter Chain 對(duì)象引用上的 doFilter方法),之后在處理控制權(quán)返回該過(guò)濾器時(shí)處理響應(yīng)。

析構(gòu)

容器緊跟在垃圾收集之前調(diào)用 destroy()方法,以便能夠執(zhí)行任何必需的清理代碼。

關(guān)于chain.doFilter(request,response)他的作用是將請(qǐng)求轉(zhuǎn)發(fā)給過(guò)濾器鏈上下一個(gè)對(duì)象。這里的下一個(gè)指的是下一個(gè)filter,如果沒(méi)有filter那就是你請(qǐng)求的資源。 一般filter都是一個(gè)鏈,web.xml 里面配置了幾個(gè)就有幾個(gè)。一個(gè)一個(gè)的連在一起

request -> filter1 -> filter2 ->filter3 -> .... -> request resource.

filter是鏈?zhǔn)讲僮?,那么在處理單個(gè)filter時(shí)必須最后跳轉(zhuǎn)到servlet對(duì)請(qǐng)求進(jìn)行響應(yīng)。

如果走chain的話(huà),通過(guò)chain.doFilter(request,response)這個(gè)方法會(huì)立即跳轉(zhuǎn)到被攔截的servlet并且執(zhí)行完還要再返回filter.chain相當(dāng)于一扇門(mén),從這扇門(mén)出去再?gòu)倪@扇門(mén)回來(lái).調(diào)用filter的方法就是在web.xml中配置,需要配置一個(gè)與你需要攔截的servlet相同的url-pattern.

<!-- 配置一個(gè)過(guò)濾器 --> 
<filter> 
<filter-name>suibianxie</filter-name> 
<filter-class>com.etoak.filter.MyEncoding</filter-class> 
<!-- 配置一個(gè)私有參數(shù) --> <init-param> <param-name>mycode</param-name> <param-value>gbk</param-value> </init-param> </filter> 
<!-- 攔截的先后順序和mapping的順序有關(guān) --> <filter-mapping> <filter-name>suibianxie</filter-name> 
<!-- 注意這里和要攔截的servlet的url-pattern必須一致,等于是過(guò)濾器 搶在servlet之前攔截住了 --> 
<url-pattern>/servlet/Test</url-pattern> </filter-mapping> 
<!-- 配置第二個(gè)過(guò)濾器 --> 
<filter> 
<filter-name>suibianxie2</filter-name> 
<filter-class>com.etoak.filter.Naming</filter-class> 
</filter>
<filter-mapping> 
<filter-name>suibianxie2</filter-name> 
<url-pattern>/servlet/Test</url-pattern> 
</filter-mapping> 
<servlet> 
<servlet-name>Test</servlet-name> 
<servlet-class>com.etoak.servlet.Test</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Test</servlet-name> 
<url-pattern>/servlet/Test</url-pattern> 
</servlet-mapping>

以上所述是小編給大家介紹的Servlet和Filter之間的區(qū)別與聯(lián)系,希望對(duì)大家有所幫助!

相關(guān)文章

  • mybatis-plus QueryWrapper自定義查詢(xún)條件的實(shí)現(xiàn)

    mybatis-plus QueryWrapper自定義查詢(xún)條件的實(shí)現(xiàn)

    這篇文章主要介紹了mybatis-plus QueryWrapper自定義查詢(xún)條件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • maven setting多倉(cāng)庫(kù)配置方式

    maven setting多倉(cāng)庫(kù)配置方式

    這篇文章主要介紹了maven setting多倉(cāng)庫(kù)配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • SpringCloud邁向云原生的步驟

    SpringCloud邁向云原生的步驟

    這篇文章主要介紹了SpringCloud怎么邁向云原生,通過(guò)本文我們來(lái)梳理一下Spring?Cloud的前世今生,以及未來(lái)云原生發(fā)展的趨勢(shì),可以給這些RPC框架的演進(jìn)帶來(lái)一些啟發(fā),感興趣的朋友跟隨小編一起看看吧
    2022-10-10
  • 全網(wǎng)最全SpringBoot集成swagger的詳細(xì)教程

    全網(wǎng)最全SpringBoot集成swagger的詳細(xì)教程

    swagger是當(dāng)下比較流行的實(shí)時(shí)接口文文檔生成工具,swagger分為swagger2?和swagger3兩個(gè)常用版本,二者區(qū)別不是很大,主要對(duì)于依賴(lài)和注解進(jìn)行了優(yōu)化,swagger2需要引入2個(gè)jar包,swagger3只需要一個(gè),用起來(lái)沒(méi)有什么大的區(qū)別,本文給大家詳細(xì)介紹,感興趣的朋友一起看看吧
    2022-08-08
  • 編寫(xiě)Java代碼對(duì)HDFS進(jìn)行增刪改查操作代碼實(shí)例

    編寫(xiě)Java代碼對(duì)HDFS進(jìn)行增刪改查操作代碼實(shí)例

    這篇文章主要介紹了Java代碼對(duì)HDFS進(jìn)行增刪改查操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • List集合對(duì)象中按照不同屬性大小排序的實(shí)例

    List集合對(duì)象中按照不同屬性大小排序的實(shí)例

    下面小編就為大家?guī)?lái)一篇List集合對(duì)象中按照不同屬性大小排序的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Java線(xiàn)程池中多余的線(xiàn)程是如何回收的

    Java線(xiàn)程池中多余的線(xiàn)程是如何回收的

    對(duì)于經(jīng)常使用第三方框架進(jìn)行web開(kāi)發(fā)的程序員來(lái)說(shuō),Java線(xiàn)程池理所應(yīng)當(dāng)是非常智能的,那么Java線(xiàn)程池中多余的線(xiàn)程是如何回收的?本文就來(lái)介紹一下
    2021-05-05
  • Elasticsearch倒排索引詳解及實(shí)際應(yīng)用中的優(yōu)化

    Elasticsearch倒排索引詳解及實(shí)際應(yīng)用中的優(yōu)化

    Elasticsearch(ES)使用倒排索引來(lái)加速文本的搜索速度,倒排索引之所以高效,主要是因?yàn)樗淖兞藬?shù)據(jù)的組織方式,使得查詢(xún)操作可以快速完成,這篇文章主要給大家介紹了關(guān)于Elasticsearch倒排索引詳解及實(shí)際應(yīng)用中優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • MyBatis注解實(shí)現(xiàn)動(dòng)態(tài)SQL問(wèn)題

    MyBatis注解實(shí)現(xiàn)動(dòng)態(tài)SQL問(wèn)題

    這篇文章主要介紹了MyBatis注解實(shí)現(xiàn)動(dòng)態(tài)SQL問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • java實(shí)戰(zhàn)小技巧之優(yōu)雅的實(shí)現(xiàn)字符串拼接

    java實(shí)戰(zhàn)小技巧之優(yōu)雅的實(shí)現(xiàn)字符串拼接

    字符串拼接是我們?cè)贘ava代碼中比較經(jīng)常要做的事情,就是把多個(gè)字符串拼接到一起,這篇文章主要給大家介紹了關(guān)于java實(shí)戰(zhàn)小技巧之優(yōu)雅的實(shí)現(xiàn)字符串拼接的相關(guān)資料,需要的朋友可以參考下
    2021-08-08

最新評(píng)論

安多县| 通道| 华坪县| 江源县| 巴彦淖尔市| 灌南县| 邵阳县| 娱乐| 安义县| 武汉市| 黑水县| 信阳市| 重庆市| 井研县| 安陆市| 张北县| 油尖旺区| 宣恩县| 随州市| 丹东市| 张北县| 开江县| 高台县| 玛沁县| 桐柏县| 阜阳市| 辽源市| 南投市| 名山县| 文安县| 衡水市| 沅江市| 青浦区| 吐鲁番市| 大厂| 乐安县| 曲周县| 舒城县| 岳阳市| 河池市| 德化县|