<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Servlet四種過濾器工作方式

    時間:2024-09-04 16:56:05 JAVA認(rèn)證 我要投稿
    • 相關(guān)推薦

    Servlet四種過濾器工作方式

      Servlet四種過濾器工作方式,從J2EE1.3開始,Servlet2.3規(guī)范中加入了對過濾器的支持。過濾器能夠?qū)δ繕?biāo)資源的請求和響應(yīng)進(jìn)行截取。過濾器的工作方式分為四種,下面讓我們分別來看看這四種過濾器的工作方式:

      1、request過濾器

      這種過濾器的工作方式比較簡單,大家也經(jīng)常遇到,如下圖所示:以下是web.xml文件配置方式:

      myFilter

      xx.MyFilter

      myFilter

      目標(biāo)資源一

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

      myFilter

      xx.MyFilter

      myFilter

      目標(biāo)資源一

      myFilter

      目標(biāo)資源二

      也就是說此過濾器對目標(biāo)資源一和目標(biāo)資源二都進(jìn)行過濾,然后當(dāng)目標(biāo)資源一被訪問的時候我們將請求轉(zhuǎn)發(fā)給目標(biāo)資源二,那么這個時候過濾器是怎么工作的呢?如下圖所示:我們可以看到,當(dāng)我們訪問目標(biāo)資源一時過濾器截取了請求,然后再轉(zhuǎn)發(fā)給目標(biāo)資源一,然后再轉(zhuǎn)發(fā)給目標(biāo)資源二,從圖中我們可以看到過濾器沒有截取轉(zhuǎn)發(fā)到目標(biāo)資源二的請求,但是我們已經(jīng)在web.xml文件中配置了該過濾器對目標(biāo)資源二的過濾,為什么又沒有起到過濾作用呢?

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

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

      myFilter

      myFilter

      xx.MyFilter

      myFilter

      目標(biāo)資源一

      REQUEST

      myFilter

      目標(biāo)資源二

      REQUEST

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

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

      2、forward過濾器

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

      myFilter

      myFilter

      xx.MyFilter

      myFilter

      目標(biāo)資源一

      REQUEST

      myFilter

      目標(biāo)資源二

      FORWARD

      工作方式如下圖所示:

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

      3、include過濾器

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

      myFilter

      目標(biāo)資源二

      INCLUDE

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

      include包含以下語句:

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

      4、error過濾器

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

      myFilter

      /error.jsp

      ERROR

      404

      /error.jsp

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

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

    【Servlet四種過濾器工作方式】相關(guān)文章:

    未來工作方式的趨勢10-24

    OA系統(tǒng)改變工作方式01-23

    SUN認(rèn)證考試知識點(diǎn):java servlet生命周期09-25

    CAD點(diǎn)過濾器的使用方法10-18

    中老年養(yǎng)老機(jī)構(gòu)社會工作方式策略分析10-25

    項目監(jiān)理部資料管理工作方式技巧07-01

    專升本的四種途徑07-27

    中餐的四種禮儀08-25

    動詞的四種時態(tài)06-22

    音的四種性質(zhì)10-13

    主站蜘蛛池模板: 日韩精品在线观看视频| 久久亚洲精品中文字幕三区| 国产日韩精品中文字无码 | 亚洲精品视频在线观看你懂的| 国产亚洲精品国产| 亚洲AV永久无码精品网站在线观看| 国产精品日韩深夜福利久久| 国产成人精品日本亚洲11 | 日韩人妻无码精品一专区 | 精品97国产免费人成视频| 亚洲精品线在线观看| 99re这里只有精品6 | 久久精品国产99久久无毒不卡 | 国产精品亚洲欧美一区麻豆| 精品九九久久国内精品| 中文字幕精品亚洲无线码二区| 精品国产一区二区三区久久| 久久精品无码一区二区三区日韩 | 久久精品国产清自在天天线| 亚洲AV无码国产精品麻豆天美| 国产一区二区精品| 精品无码国产一区二区三区51安| 国产伦精品一区二区三区视频金莲| 亚洲第一极品精品无码久久| 中文字幕精品一区二区日本| 久久久久亚洲精品天堂| 久久精品国产99久久丝袜| 国产AV国片精品| 久久久久人妻一区精品性色av| 四虎精品免费永久免费视频| 国产精品亚洲高清一区二区| 久久亚洲国产午夜精品理论片| 精品久久久久久亚洲精品| 亚洲AV无码国产精品色午友在线 | 久久精品无码午夜福利理论片| 亚洲精品无码专区在线播放| 久久五月精品中文字幕 | 亚洲国产精品VA在线看黑人| 中文字幕日韩精品有码视频| 蜜桃麻豆www久久国产精品 | 欧美亚洲国产精品久久蜜芽|