1. 程式人生 > >總結過濾器,監聽器,servlet的異同點,已經執行順序。

總結過濾器,監聽器,servlet的異同點,已經執行順序。

dex code 客戶 blog -name 執行順序 銷毀 pat 固定

1.過濾器

  Servlet中的過濾器Filter是實現了javax.servlet.Filter接口的服務器端程序,主要的用途是過濾字符編碼、做一些業務邏輯判斷等。其工作原理是,只要你在web.xml文件配置好要攔截的客戶端請求,它都會幫你攔截到請求,此時你就可以對請求或響應 (Request、Response)統一設置編碼,簡化操作;同時還可進行邏輯判斷,如用戶是否已經登陸、有沒有權限訪問該頁面等等工作。它是隨你的 web應用啟動而啟動的,只初始化一次,以後就可以攔截相關請求,只有當你的web應用停止或重新部署的時候才銷毀

在web.xml 中配置: <filter>
<filter-name>filter</filter-name> <filter-class>dc.gz.filters.MyCharsetFilter</filter-class> <init-param> <param-name>charset</param-name> <param-value>UTF-8</param-value> </init-param> <init-param>
<param-name>contentType</param-name> <param-value>text/html;charset=UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>filter</filter-name> <!-- * 代表截獲所有的請求或指定請求/test.do/xxx.do -->
<url-pattern>/*</url-pattern> </filter-mapping>

2.監聽器

  現在來說說Servlet的監聽器Listener,它是實現了javax.servlet.ServletContextListener 接口的服務器端程序,它也是隨web應用的啟動而啟動,只初始化一次,隨web應用的停止而銷毀。主要作用是: 做一些初始化的內容添加工作、設置一些基本的內容、比如一些參數或者是一些固定的對象等等。

web.xml中配置如下,很簡單:

<!-- 配置應用監聽器 -->

<listener> <listener-class>dc.gz.listeners.MyServletContextListener</listener-class> </listener>

總結過濾器,監聽器,servlet的異同點,已經執行順序。