Jsp之五 过滤器与监听器
什么是Filter?依據字面上的意思是過濾器。很多時候會利用它,例如:在線游戲、web聊天室或E-mail等等,可以利用Filter來過濾不雅字句或者拒絕對象的信息或信件。當用戶的請求到達指定的頁面之前,可以借助過濾器(Filter)來改變這些請求內容;同樣地,當執行結果要響應道用戶之前,若先經過過濾器,就可以修改輸出的內容。
|
Filter的運行方式如同一層接一層,一直從最外面的的filter做到最里面的原始網頁,然后再把響應一層一層傳送出去,最后產生回傳結果給用戶。但是Filter也不是只能乖乖照這個順序傳送,首先Filter必須使用doFilter()才可以繼續傳到下一個Filter,因此可以選擇某種條件下讓Filter不要調用doFiler(),而通過其他方法轉向到其他頁面。Filter主要可以通過RequestDispatcher的forward()、include()或HttpServletResponse的sendRedirect()、sendError()等方法來轉向到其他網頁的動作。
我們可以在web.xml中使用<dispatcher>元素,用來設定Filter所對應的請求方式。他有四種設定,分別是request、forward、include、error。圖【5-1】描述了Filter的運行方式。
1、Request
當用戶直接對網頁做出請求的動作時,才會調用此Filter。
2、Forward
當用戶的請求是通過RequestDispatcher的forward()方法時,才調用此Filter其他請求不會調用此filter
3、include
當用戶的請求時通過RequestDispatcher的include()方法時,才會調用此Filter其他請求不會調用此filter。
4、Error
當用戶的請求時通過錯誤機制處理的時候,才會調用此filter,同樣,其他請求不會調用此filter。
下面簡單看一下Filter在web.xml中的配置情況
<filter>
?????? <filter-name>test</filter-name>
?????? <filter-class>com.filterbo.FilterTest</filter-class>
?
??? </filter>
?
??? <filter-mapping>
?????? <filter-name>test</filter-name>
?????? ?<url-pattern>/*</url-pattern>
??? </filter-mapping>
+
轉載于:https://www.cnblogs.com/mjsn/p/6150917.html
總結
以上是生活随笔為你收集整理的Jsp之五 过滤器与监听器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web.xml 配置中classpath
- 下一篇: maven-source 1.3 中不支