一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Servlet和Filter之間的區別與聯系

Servlet和Filter之間的區別與聯系

2020-04-24 12:26桑梓子 JAVA教程

這篇文章主要介紹了Servlet和Filter之間的區別與聯系的相關資料,需要的朋友可以參考下

filter是一個可以復用的代碼片段,可以用來轉換HTTP請求、響應和頭信息。Filter不像Servlet,它不能產生一個請求或者響應,它只是修改對某一資源的請求,或者修改從某一的響應。

最近使用插裝的時候,改用cookie對計算機進行識別,加入了過濾,仔細研究了一下servlet和filter,區別主要是:

過濾器的生命周期一般都要經過下面三個階段:

servlet的特點是:

初始化

當容器第一次加載該過濾器時,init() 方法將被調用。該類在這個方法中包含了一個指向 Filter Config 對象的引用。我們的過濾器實際上并不需要這樣做,因為其中沒有使用初始化信息,這里只是出于演示的目的。

過濾

過濾器的大多數時間都消耗在這里。doFilter方法被容器調用, 同時傳入分別指向這個請求/響應鏈中的 Servlet Request、Servlet Response 和 Filter Chain 對象的引用。然后過濾器就有機會處理請求,將處理任務傳遞給鏈中的下一個資源(通過調用 Filter Chain 對象引用上的 doFilter方法),之后在處理控制權返回該過濾器時處理響應。

析構

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

關于chain.doFilter(request,response)他的作用是將請求轉發給過濾器鏈上下一個對象。這里的下一個指的是下一個filter,如果沒有filter那就是你請求的資源。 一般filter都是一個鏈,web.xml 里面配置了幾個就有幾個。一個一個的連在一起

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

filter是鏈式操作,那么在處理單個filter時必須最后跳轉到servlet對請求進行響應。

如果走chain的話,通過chain.doFilter(request,response)這個方法會立即跳轉到被攔截的servlet并且執行完還要再返回filter.chain相當于一扇門,從這扇門出去再從這扇門回來.調用filter的方法就是在web.xml中配置,需要配置一個與你需要攔截的servlet相同的url-pattern.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!-- 配置一個過濾器 -->
<filter>
<filter-name>suibianxie</filter-name>
<filter-class>com.etoak.filter.MyEncoding</filter-class>
<!-- 配置一個私有參數 --> <init-param> <param-name>mycode</param-name> <param-value>gbk</param-value> </init-param> </filter>
<!-- 攔截的先后順序和mapping的順序有關 --> <filter-mapping> <filter-name>suibianxie</filter-name>
<!-- 注意這里和要攔截的servlet的url-pattern必須一致,等于是過濾器 搶在servlet之前攔截住了 -->
<url-pattern>/servlet/Test</url-pattern> </filter-mapping>
<!-- 配置第二個過濾器 -->
<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之間的區別與聯系,希望對大家有所幫助!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男女男精品视频 | 色婷婷六月丁香在线观看 | 国产综合图区 | 欧美在线高清 | 国产v日韩v欧美v精品专区 | 下雨天小说词枝 | 色啪久久婷婷综合激情 | 青青久久精品国产 | 亚洲AV午夜福利精品香蕉麻豆 | 91九色porn偷拍在线 | 欧美18-19 | 向日葵视频app下载18岁以下勿看 | 日本在线看 | 亚洲欧美在线免费观看 | 热久久最新地址 | 亚洲欧美成人综合久久久 | 暴露狂婷婷医院暴露tx | 精品国产欧美一区二区 | 日韩在线视频一区二区三区 | 日本久本草精品 | 亚洲天堂网在线观看视频 | 91系列在线观看免费 | 无人在线高清观看 | www青青草原| 狠狠综合视频精品播放 | 欧美成人影院免费观 | 亚洲精品国产乱码AV在线观看 | 久久囯产精品777蜜桃传媒 | 日本最新免费二区 | 国产精品99久久 | 亚洲视频一区二区在线观看 | 高h全肉动漫在线观看免费 高h辣h双处全是肉军婚 | 大陆国产精品视频 | 特级淫片欧美高清视频蜜桃 | 国产情侣偷国语对白 | 国产成人精品一区二三区2022 | 99久久久久久久 | 人体做爰aaaa免费 | 女人和男人搞鸡 | 国产一卡2卡3卡四卡精品网站 | 白白国产永久免费视频 |