隨筆-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實(shí)例.doFilter(ServletRequest request, ServletResponse response) 將請求和響應(yīng)傳遞到鏈中的下一個實(shí)體。
          destroy():  由 Web 容器調(diào)用,指示將從服務(wù)中取出的過濾器。在調(diào)用此方法之后,Web 容器不會再對此過濾器實(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)用鏈中的下一個過濾器。
          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 紫蝶∏飛揚(yáng)↗ 閱讀(853) 評論(0)  編輯  收藏 所屬分類: 隨想
          主站蜘蛛池模板: 平利县| 晋宁县| 多伦县| 奉节县| 尉犁县| 鱼台县| 永顺县| 从化市| 湖南省| 泰宁县| 万荣县| 喜德县| 郁南县| 海林市| 天气| 和平县| 灌云县| 井陉县| 洪江市| 三原县| 崇礼县| 盐源县| 邢台县| 吉林省| 宁津县| 龙泉市| 云浮市| 黄平县| 得荣县| 红原县| 武穴市| 宝鸡市| 筠连县| 汉川市| 安达市| 大丰市| 高雄县| 沈丘县| 营口市| 昆明市| 桦川县|