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

          一.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>                      //設(shè)置過濾的資源
                  <dispatcher>REQUEST</dispatcher>        //設(shè)置請求或響應(yīng)
                  <dispatcher>FORWARD</dispatcher>
              </filter-mapping>

          二.類的創(chuàng)建:
          Filter接口: 每個 Filter 類都有對 FilterConfig 對象的訪問權(quán),可從該對象獲得其初始化參數(shù)和 ServletContext 的引用.  

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

          FilterChain實例.doFilter(ServletRequest request, ServletResponse response):  調(diào)用鏈中的下一個過濾器。
          request 沿著鏈傳遞的請求。
          response 沿著鏈傳遞的響應(yīng)。
          ********************************************************
              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 {
                     //處理過濾任務(wù)
                     ......
                     chain.doFilter(request,respos);
                     }
                     public void destroy(){
                     }
          }
          posted on 2008-03-31 11:59 紫蝶∏飛揚↗ 閱讀(860) 評論(0)  編輯  收藏 所屬分類: 隨想
          主站蜘蛛池模板: 康保县| 铁岭县| 饶阳县| 淅川县| 瑞金市| 石河子市| 三明市| 柳州市| 尉犁县| 文成县| 信丰县| 峡江县| 吉首市| 阳新县| 韶关市| 平原县| 灯塔市| 芜湖县| 吕梁市| 香格里拉县| 日土县| 兴文县| 崇仁县| 康乐县| 桑植县| 台安县| 青川县| 正定县| 郎溪县| 同仁县| 穆棱市| 大埔县| 高尔夫| 上虞市| 汕头市| 全州县| 瑞丽市| 元朗区| 聂荣县| 儋州市| 贵州省|