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

          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 郝學(xué)武
           *設(shè)置字符過濾
           */
          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    //實(shí)現(xiàn)緩存存留,字符過濾---
           {
            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>  //設(shè)置作用域?yàn)閣ebroot下aaa文件夾下所有頁面
           </filter-mapping>
          好了,大家把上面的代碼拷貝到你的項(xiàng)目中,試一下就可以,應(yīng)該沒什么問題,得工作了,今天就到這

          Feedback

          # re: 寫個簡單的關(guān)于Filter過濾器應(yīng)用的例子  回復(fù)  更多評論   

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

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


          網(wǎng)站導(dǎo)航:
           

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

          Copyright © 陜西BOY

          主站蜘蛛池模板: 拉孜县| 若羌县| 图木舒克市| 涡阳县| 绍兴市| 阆中市| 昭通市| 固安县| 凉城县| 绥阳县| 镇坪县| 天全县| 长乐市| 房产| 曲松县| 烟台市| 都匀市| 沅江市| 丰县| 秀山| 海伦市| 浪卡子县| 吉林省| 黄龙县| 关岭| 洪洞县| 原阳县| 夏津县| 万盛区| 武功县| 墨玉县| 迭部县| 竹北市| 大兴区| 新河县| 张掖市| 察雅县| 乡城县| 蒙城县| 浪卡子县| 兰考县|