一個(gè)Filter可以過(guò)濾一個(gè)或多個(gè)Servlet,F(xiàn)ilter必須實(shí)現(xiàn)javax.Servlet.Filter接口,并且必須定義以下三個(gè)方法:init(),destory(),doFilter().
下面的例子演示記錄客戶端主機(jī)信息的Filter:
當(dāng)前web應(yīng)用的web.xml配置為:
最后用myeclipse插件自動(dòng)部署到tomcat路徑下,啟動(dòng)tomcat,在瀏覽器中輸入
http://localhost:8080/Filter/ (Filter為此web應(yīng)用名稱)
可以在tomcat 目錄的log目錄下的localhost.2006-01-02.log看到以下消息:
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] request: /Filter/
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] done
這表明logFilter已經(jīng)被server調(diào)用成功.
當(dāng)然在實(shí)際應(yīng)用中filter還有其他用處,象登陸驗(yàn)證,編碼轉(zhuǎn)化等.
Java天下社區(qū)
http://www.javatx.cn
歡迎大家上來(lái)交流Java技術(shù)。