隨筆-9  評論-168  文章-266  trackbacks-0
          過濾鏈:  webapps 由一個或多個過濾器組成.  (filterChain.doFilter(......)調用下一個過濾器.)
          過濾器(Filter):  是對某一資源(servlet 或靜態網頁內容)的請求或來自某一資源的響應,  或同時對這兩者進行執行過濾。鏈中的所有過濾器都是在遍歷完鏈后,在鏈末尾才真正執行過濾任務.

          一.WEB.XML配置(可有多個<filter>):
              <filter>
                  <filter-name>FilterName</filter-name>
                  <filter-class>package.class.FilterClass</filter-class>
              </filter>
              <filter-mapping>
                  <filter-name>FilterName</filter-name>
                  <url-pattern>/*</url-pattern>                      //設置過濾的資源
                  <dispatcher>REQUEST</dispatcher>        //設置請求或響應
                  <dispatcher>FORWARD</dispatcher>
              </filter-mapping>

          二.類的創建:
          Filter接口: 每個 Filter 類都有對 FilterConfig 對象的訪問權,可從該對象獲得其初始化參數和 ServletContext 的引用.  

          doFilter(.....):   執行過濾任務。參數 FilterChain實例.doFilter(ServletRequest request, ServletResponse response) 將請求和響應傳遞到鏈中的下一個實體。
          destroy():  由 Web 容器調用,指示將從服務中取出的過濾器。在調用此方法之后,Web 容器不會再對此過濾器實例調用 doFilter 方法。
          init(FilterConfig filterConfig):  由 Web 容器調用,指示將過濾器放入服務中。servlet 容器只在實例化過濾器之后調用一次 init 方法。

          FilterChain實例.doFilter(ServletRequest request, ServletResponse response):  調用鏈中的下一個過濾器。
          request 沿著鏈傳遞的請求。
          response 沿著鏈傳遞的響應。
          ********************************************************
              package package.class;
              import javax.servlet.Filter;
              import java.io.IOException;
              import javax.servlet.Filter;
              import javax.servlet.FilterChain;
              import javax.servlet.FilterConfig;
              import javax.servlet.ServletException;
              import javax.servlet.ServletRequest;
              import javax.servlet.ServletResponse;

              public class FilterName implements Filter{
                     filterConfig fc=null;
                     public void init(FilterConfig filterConfig) throws ServletException {
                            this.filterConfig=filterConfig;
                     }
                     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException {
                     //處理過濾任務
                     ......
                     chain.doFilter(request,respos);
                     }
                     public void destroy(){
                     }
          }
          posted on 2008-03-31 11:59 紫蝶∏飛揚↗ 閱讀(853) 評論(0)  編輯  收藏 所屬分類: 隨想
          主站蜘蛛池模板: 镇安县| 甘谷县| 鄂伦春自治旗| 崇义县| 额尔古纳市| 紫金县| 北宁市| 利辛县| 浦县| 临桂县| 金沙县| 新密市| 南汇区| 松滋市| 大田县| 蛟河市| 侯马市| 平安县| 嘉祥县| 通渭县| 沅陵县| 彰武县| 连平县| 米脂县| 灌阳县| 留坝县| 玉山县| 旬邑县| 诏安县| 河池市| 天柱县| 尖扎县| 阿合奇县| 缙云县| 龙泉市| 平和县| 吴桥县| 阳原县| 威宁| 正宁县| 紫云|