亚洲天堂一级片-亚洲天堂三区-亚洲天堂久久精品成人-亚洲天堂毛片-久久国产欧美日韩高清专区-久久国产欧美日韩精品免费

通州北大青鳥學術部:Servlet四種過濾器的工作方式

  通州北大青鳥學術部提供:從J2EE1.3開始,Servlet2.3規范中加入了對過濾器的支持。過濾器能夠對目標資源的請求和響應進行截取。過濾器的工作方式分為四種,下面,通州北大青鳥學術部老師就給大家介紹一下這四種過濾器的工作方式:

  1、request過濾器
  這種過濾器的工作方式比較簡單,大家也經常遇到,如下所示:以下是web.xml文件配置方式:
     <filter>
    <filter-name>myFilter</filter-name>
    <filter-class>packagename.MyFilterName</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>myFilter</filter>
    <servlet-name> 目標資源</servlet-name>
    </filter-mapping>
    <filter>

  下面我們更改一下web.xml文件的配置,如下方式:
     <filter-name>myFilter</filter-name>
    <filter-class>packagename.MyFilterName</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>myFilter</filter>
    <servlet-name> 目標資源1</servlet-name>
    </filter-mapping>
    <filter-mapping>
    <filter-name>myFilter</filter>
    <servlet-name> 目標資源2</servlet-name>
    </filter-mapping>


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

  答案就在于,目標資源一是客戶端直接訪問,而目標資源二是被轉發過來的,這時過濾器就不能過濾目標資源二。如果你直接訪問目標資源二,你會發現該過濾器起到了作用?
   我們上面的web.xml文件配置與以下方式等價:
     <filter-name>myFilter</filter-name>
    <filter-class>packagename.MyFilterName</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>myFilter</filter>
    <servlet-name> 目標資源1</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    <filter-mapping>
    <filter-name>myFilter</filter>
    <servlet-name> 目標資源2</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    </filter-mapping>


  這種方式的配置,說明只有直接訪問該目標資源時該過濾器才會起作用,對轉發到該目標資源的請求將忽略不處理。
  那如果我想對轉發到目標資源二的請求進行過濾,那怎么辦呢?答案見,下一種過濾器,forward過濾器。
  2、forward過濾器 (通州北大青鳥)
  我們將web.xml文件的配置修改如下:
    
  <filter-name>myFilter</filter-name>
   <filter-class>packagename.MyFilterName</filter-class>
   </filter>
   <filter-mapping>
   <filter-name>myFilter</filter>
   <servlet-name> 目標資源1</servlet-name>
   <dispatcher>REQUEST</dispatcher>
   </filter-mapping>
   <filter-mapping>
   <filter-name>myFilter</filter>
   <servlet-name> 目標資源2</servlet-name>
   <dispatcher>FORWARD</dispatcher>
   </filter-mapping>

  我們看對目標資源二過濾的配置方式,這時過濾方式為forward,也就是說對轉發到目標資源二的請求過濾,如果直接訪問目標資源二,過濾器將不起作用。
    3、include過濾器
  理解了forward過濾器之后,include過濾器就不難理解了。以下方式:
    <filter-name>myFilter</filter-name>
   <filter-class>packagename.MyFilterName</filter-class>
   </filter>
   <filter-mapping>
   <filter-name>myFilter</filter>
   <servlet-name> 目標資源1</servlet-name>
   <dispatcher>REQUEST</dispatcher>
   </filter-mapping>
   <filter-mapping>
   <filter-name>myFilter</filter>
   <servlet-name> 目標資源2</servlet-name>
   <dispatcher>INCLUDE</dispatcher>
   </filter-mapping>

  此表示對包含了目標資源二的請求過濾,如果直接訪問目標資源二,則此過濾器將不起作用。 (通州北大青鳥)
  在JSP頁面中的動作:指令包含,這時此過濾器不工作。

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

    <filter-name>myFilter</filter-name>
   <filter-class>packagename.MyFilterName</filter-class>
   </filter>
   <filter-mapping>
   <filter-name>myFilter</filter>
   <servlet-name> /error.jsp</servlet-name>
   <dispatcher>ERROR</dispatcher>
   </filter-mapping>
   <error-page>
   <error-code>404</error-code>
   <location>/error.jsp</location>
   </error-page>


  當我們訪問一個不存在的文件時,就會訪問error.jsp,但是配置了過濾器對錯誤頁面進行過濾,所以過濾器先接受到請求,然后再轉發給error.jsp。 (通州北大青鳥)
  如果我們訪問一個已經存在的頁面,會不會調用error.jsp呢?如果這個頁面中有response.sendError(404,"出錯了!");那么該錯誤頁面仍然會被調用,過濾器也會工作

(通州北大青鳥)

北大青鳥網上報名
北大青鳥招生簡章
主站蜘蛛池模板: 久9这里精品免费视频 | 国内国语一级毛片在线视频 | 日韩中文字幕在线免费观看 | 久久一日本道色综合久久m 久久伊人成人网 | 性一级片 | 九九视频在线免费观看 | 亚洲综合一区二区不卡 | 色综合天天综合网看在线影院 | 国产精品成久久久久三级 | 欧美一级日韩一级 | 99精品欧美一区二区三区 | 欧美日韩永久久一区二区三区 | 国产精品国产 | 性色xxx| 国产亚洲人成网站观看 | 国产a国产| 亚洲更新 | 亚洲国产精品a一区二区三区 | 香蕉香蕉国产片一级一级毛片 | 欧美国产伦久久久久 | 亚洲欧美激情精品一区二区 | 成人男女网18免费0 成人男女网18免费看 | 日本护士一级毛片在线播放 | 久久免费99精品久久久久久 | 美女把张开腿男生猛戳免费视频 | 国产成人一级片 | 啪啪一级视频 | 国产在线播放不卡 | 久久免费精品视频在线观看 | 欧美aaa视频 | 国产特黄特色一级特色大片 | 91福利国产在线观一区二区 | 在线a亚洲视频播放在线观看 | 手机看片自拍自自拍日韩免费 | 欧美激情一区二区亚洲专区 | 国产成人综合视频 | 国内国语一级毛片在线视频 | 九九久久国产精品 | 看色网站 | 亚洲国产精品专区 | 亚洲国产精品第一区二区三区 |