從j2ee1.3開始,servlet2.3規範中加入了對過濾器的支援。過濾器能夠對目標資源的請求和響應進行擷取。過濾器的工作方式分為四種,下面讓我們分別來看看這四種過濾器的工作方式:
1、request過濾器
沒有擷取**到目標資源二的請求,
但是我們已經在web.xml檔案中配置了該過濾器對目標資源二的過濾,為什麼又沒有起到過濾作用呢?
答案就在於,目標資源一是客戶端直接訪問,而目標資源二是被**過來的,這時過濾器就不能過濾目標資源二。如果你直接訪問目標資源二,你會發現該過濾器起到了作用?
我們上面的web.xml檔案配置與以下方式等價:
myfilter
myfilter
xx.myfilter
目標資源一
request
我們將web.xml檔案的配置修改如下:
myfilter
myfilter
xx.myfilter
目標資源一
request
3、include過濾器
理解了forward過濾器之後,include過濾器就不難理解了。以下方式:
目標資源二
"%>指令包含,這時此過濾器不工作。後面給大家介紹指令包含和動作包含
的區別。
4、error過濾器
當我們訪問乙個web目標資源時,如果伺服器沒有找到該目標資源,那麼伺服器就會給出乙個404錯誤**。如果我們給404錯誤**定義乙個頁面,那麼當404錯誤發生時就會呼叫該頁面,請看以下web.xml檔案的配置:
url-pattern
>
error
404/error.jsp
當我們訪問乙個不存在的檔案時,就會訪問error.jsp,但是配置了過濾器對錯誤頁面進行過濾,所以過濾器先接受到請求,然後再**給error.jsp。
如果我們訪問乙個已經存在的頁面,會不會呼叫error.jsp呢?如果這個頁面中有response.senderror(404,"出錯了!");那麼該錯誤頁面仍然會被呼叫,過濾器也會工作。
web xml中關於log4j的設定及範例說明
在web.xml有幾個條目和log4j有關,它們是 1.petclinic.root 2.log4jconfiglocation web infclasseslog4j.properties 3.該條目在petclinic中被注釋掉了 class org.springframework.web.ut...
web xml中關於log4j的設定及範例說明
在web.xml有幾個條目和log4j有關,它們是 1.petclinic.root 2.log4jconfiglocation web infclasseslog4j.properties 3.該條目在petclinic中被注釋掉了 class org.springframework.web.ut...
關於Filter的配置
配置 onefilter onefilter my.filter.com.onefilter 注意 dispatcher的值 a.request 當使用者直接訪問頁面時,web容器會呼叫過濾器,如果目標資源是通過requestdispatcher的include 或者forward 方法訪問,那麼該...