歡迎光臨郝學武的blog。
                  前段時間很忙,項目比較緊,都沒有時間寫這個了,今天就寫個我在項目中應用的一個Filter,這個過濾器負責把定義的文件夾下的所有頁面采用gbk編碼格式,并且每個頁面都不保留緩存。如此的話就不用在所有的業務類里面處理中文問題,降低了代碼冗余,節約了開發時間。下面的這個類就負責這個功能。

          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;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;/**
           *@author 郝學武
           *設置字符過濾
           */
          public class ActionFilter implements Filter
          {
           private String encoding = null;  //定義字符編碼,緩存,和Local
           private String cache = null;
           private String forceLocal;

           public void init(FilterConfig filterconfig) throws ServletException    //初始化上面的3個變量,分別從web.xml取得值
           {
            this.encoding = filterconfig.getInitParameter("encoding");
            this.cache = filterconfig.getInitParameter("cache");
                  this.forceLocal = filterconfig.getInitParameter("forceLocal");
           }
           
           public void doFilter(ServletRequest servletRequest,
             ServletResponse servletResponse,
             FilterChain filterChain) throws IOException, ServletException    //實現緩存存留,字符過濾---
           {
            HttpServletRequest request = (HttpServletRequest) servletRequest;
            HttpServletResponse response = (HttpServletResponse) servletResponse;
            
            if (this.cache != null && "false".equals(this.cache.toLowerCase()))
            {
              response.setHeader("Cache-Control","no-store");
              response.setHeader("Pragrma","no-cache");
              response.setDateHeader("Expires",0);
            }
            if ((forceLocal == null) || (forceLocal.length() <=0) || (forceLocal.equalsIgnoreCase("no"))) {}
                  else {
                     
                  }
            request.setCharacterEncoding(this.encoding);
            filterChain.doFilter(servletRequest, servletResponse);
            return;
           }

           /*
            * (non-Javadoc)
            *
            * @see javax.servlet.Filter#destroy()
            */
           public void destroy()   //銷毀過濾
           {
           // TODO Auto-generated method stub
           }
          }
                  在web.xml中添加filter
          <filter>
            <filter-name>WebFilter</filter-name>
            <filter-class>
             com.cnc.yellow.struts.advertisement.ActionFilter
            </filter-class>
            <init-param>
             <param-name>encoding</param-name>
             <param-value>gbk</param-value>
            </init-param>
            <init-param>
             <param-name>cache</param-name>
             <param-value>false</param-value>
            </init-param>
            <init-param>
             <param-name>forceLocal</param-name>
             <param-value>no</param-value>
            </init-param>
           </filter>

          <filter-mapping>  
            <filter-name>WebFilter</filter-name>
            <url-pattern>/aaa/*</url-pattern>  //設置作用域為webroot下aaa文件夾下所有頁面
           </filter-mapping>
          好了,大家把上面的代碼拷貝到你的項目中,試一下就可以,應該沒什么問題,得工作了,今天就到這

          Feedback

          # re: 寫個簡單的關于Filter過濾器應用的例子  回復  更多評論   

          2007-12-05 12:33 by cheng
          恩,不錯,收藏了,以后肯定用得找,呵呵.
          樓主有空多多分享你的好東東哦~~~~:)

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 17, comments - 65, trackbacks - 0, articles - 28

          Copyright © 陜西BOY

          主站蜘蛛池模板: 扶风县| 富平县| 始兴县| 太康县| 柏乡县| 广饶县| 南充市| 永清县| 基隆市| 陇南市| 平武县| 嵊泗县| 鹿泉市| 罗定市| 福建省| 靖边县| 金乡县| 临高县| 新巴尔虎左旗| 虹口区| 平果县| 新竹县| 明光市| 绥江县| 临泉县| 渑池县| 乐山市| 革吉县| 南投县| 旬阳县| 赫章县| 伽师县| 香格里拉县| 宜春市| 长春市| 徐水县| 新丰县| 乐清市| 冕宁县| 吉安市| 襄垣县|