日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
詳細介紹Servlet過濾器的工作方式

Servlet過濾器是可插入的 Web 組件,它允許我們實現(xiàn) Web 應用程序中的預處理和后期處理邏輯。過濾器支持 servlet 和 JSP 頁面的基本請求處理功能,比如日志記錄、性能、安全、會話處理、XSLT 轉換,等等。

目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網站建設、域名、網頁空間、網站運營、企業(yè)網站設計、南潯網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

從J2EE1.3開始,Servlet2.3規(guī)范中加入了對過濾器的支持。過濾器能夠對目標資源的請求和響應進行截取。過濾器的工作方式分為四種,下面讓我們分別來看看這四種過濾器的工作方式:

1、request過濾器

這種過濾器的工作方式比較簡單,大家也經常遇到,如下圖所示:

以下是web.xml文件配置方式:

 
 
 
  1.  
  2. myFilter 
  3. xx.MyFilter 
  4.  
  5.  
  6. myFilter 
  7. 目標資源一 
  8.  

 

下面我們更改一下web.xml文件的配置,如下方式:

 
 
 
  1.  
  2. myFilter 
  3. xx.MyFilter 
  4.  
  5.  
  6. myFilter 
  7. 目標資源一 
  8.  
  9.  
  10. myFilter 
  11. 目標資源二 
  12.  

 

也就是說此過濾器對目標資源一和目標資源二都進行過濾,然后當目標資源一被訪問的時候我們將請求轉發(fā)給目標資源二,那么這個時候過濾器是怎么工作的呢?如下圖所示:

我們可以看到,當我們訪問目標資源一時過濾器截取了請求,然后再轉發(fā)給目標資源一,然后再轉發(fā)給目標資源二,從圖中我們可以看到過濾器沒有截取轉發(fā)到目標資源二的請求,但是我們已經在web.xml文件中配置了該過濾器對目標資源二的過濾,為什么又沒有起到過濾作用呢?

答案就在于,目標資源一是客戶端直接訪問,而目標資源二是被轉發(fā)過來的,這時過濾器就不能過濾目標資源二。如果你直接訪問目標資源二,你會發(fā)現(xiàn)該過濾器起到了作用?

我們上面的web.xml文件配置與以下方式等價:

 
 
 
  1. myFilter 
  2. myFilter 
  3. xx.MyFilter 
  4.  
  5.  
  6. myFilter 
  7. 目標資源一 
  8. REQUEST 
  9.  
  10.  
  11. myFilter 
  12. 目標資源二 
  13. REQUEST 
  14.  

 

這種方式的配置,說明只有直接訪問該目標資源時該過濾器才會起作用,對轉發(fā)到該目標資源的請求將忽略不處理。

那如果我想對轉發(fā)到目標資源二的請求進行過濾,那怎么辦呢?答案見,下一種過濾器,forward過濾器。

2、forward過濾器

我們將web.xml文件的配置修改如下:

 
 
 
  1. myFilter 
  2. myFilter 
  3. xx.MyFilter 
  4.  
  5.  
  6. myFilter 
  7. 目標資源一 
  8. REQUEST 
  9.  
  10.  
  11. myFilter 
  12. 目標資源二 
  13. FORWARD 
  14.  

 

工作方式如下圖所示:

我們看對目標資源二過濾的配置方式,這時過濾方式為forward,也就是說對轉發(fā)到目標資源二的請求過濾,如果直接訪問目標資源二,過濾器將不起作用。

3、include過濾器

理解了forward過濾器之后,include過濾器就不難理解了。以下方式:

 
 
 
  1.  
  2. myFilter 
  3. 目標資源二 
  4. INCLUDE 
  5.  

 

此表示對包含了目標資源二的請求過濾,如果直接訪問目標資源二,則此過濾器將不起作用。

include包含以下語句:

在JSP頁面中的動作:指令包含,這時此過濾器不工作。

4、error過濾器

當我們訪問一個web目標資源時,如果服務器沒有找到該目標資源,那么服務器就會給出一個404錯誤代碼。如果我們給404錯誤代碼定義一個頁面,那么當404錯誤發(fā)生時就會調用該頁面,請看以下web.xml文件的配置:

 
 
 
  1.  
  2. myFilter 
  3. /error.jsp 
  4. ERROR 
  5.  
  6.  
  7. 404 
  8. /error.jsp 
  9.  

 

當我們訪問一個不存在的文件時,就會訪問error.jsp,但是配置了過濾器對錯誤頁面進行過濾,所以過濾器先接受到請求,然后再轉發(fā)給error.jsp.

如果我們訪問一個已經存在的頁面,會不會調用error.jsp呢?如果這個頁面中有response.sendError(404,“出錯了!”);那么該錯誤頁面仍然會被調用,過濾器也會工作。

希望通過本文對于過濾器的介紹,能夠給你帶來幫助。


當前標題:詳細介紹Servlet過濾器的工作方式
鏈接分享:http://www.dlmjj.cn/article/cdhshpj.html