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

          一.WEB.XML配置(可有多個(gè)<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è)置請(qǐng)求或響應(yīng)
                  <dispatcher>FORWARD</dispatcher>
              </filter-mapping>

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

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

          FilterChain實(shí)例.doFilter(ServletRequest request, ServletResponse response):  調(diào)用鏈中的下一個(gè)過濾器。
          request 沿著鏈傳遞的請(qǐng)求。
          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 紫蝶∏飛揚(yáng)↗ 閱讀(860) 評(píng)論(0)  編輯  收藏 所屬分類: 隨想
          主站蜘蛛池模板: 长治市| 淮南市| 肇源县| 全州县| 沙雅县| 嵩明县| 绍兴县| 红河县| 柞水县| 玛多县| 油尖旺区| 德保县| 通江县| 沙田区| 普兰县| 芒康县| 航空| 合阳县| 汉阴县| 申扎县| 乳山市| 扎赉特旗| 西盟| 米易县| 鹰潭市| 周至县| 鹤山市| 昌平区| 彭州市| 新乐市| 肥西县| 周至县| 肃南| 大余县| 望城县| 南丹县| 工布江达县| 清丰县| 荔浦县| 韶关市| 修水县|