Eclipse中創(chuàng)建Filter

          Eclipse 中不可以直接創(chuàng)建過(guò)濾器 這給我們的編碼造成了困難,過(guò)濾器的作用最普遍的是過(guò)濾中文亂碼。

          現(xiàn)在向大家介紹我如何在Eclipse中建立 中文過(guò)濾器的。

          首先大家先把Web項(xiàng)目建立好 例如 我的項(xiàng)目名為:FilterDemo

          項(xiàng)目建立完成 現(xiàn)在開(kāi)始建立 filter

          點(diǎn)擊 File(文件)-> new(新建) -> Class(類(lèi)文件)

          這時(shí)候會(huì)出現(xiàn)一個(gè)建立類(lèi)文件的對(duì)話框

          包路徑 package:后面的文本框中填寫(xiě) 例如: com.company.filterDemo.biz.filter

          類(lèi)文件名 name:文本框中填寫(xiě) 例如 CharSetFilter

          接口 interfaces:列表框旁邊有一個(gè) add的按鈕 關(guān)鍵就在這里 點(diǎn)擊 add 按鈕 會(huì)出現(xiàn)一個(gè)新的對(duì)話框 讓我們選擇接口

          Choose  interfaces (選擇接口)
          其下方 輸入 filter 下面會(huì)列出所有與filter 相關(guān)的接口
          這里我們選擇 Filter - javax.servlet  然后點(diǎn)擊OK  然后Finish完成 這時(shí)候我們的Filter的構(gòu)造 如下:

          package com.company.filterDemo.biz.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 CharSetFilter implements Filter {
          //釋放
          public void destroy() {
            // TODO Auto-generated method stub

          }
          //執(zhí)行Filter
          public void doFilter(ServletRequest arg0, ServletResponse arg1,
             FilterChain arg2) throws IOException, ServletException {
            // TODO Auto-generated method stub
            arg0.setCharacterEncoding("GBK");
            arg1.doFilter(request,response);
          }

          //初始化
          public void init(FilterConfig config) throws ServletException {
            // TODO Auto-generated method stub

          }
          }

          是不是發(fā)現(xiàn)以上代碼 和我們?cè)贘builder2006中自動(dòng)生成的有一些區(qū)別呢。沒(méi)關(guān)系我們改動(dòng)一下 你看看有什么不一樣。

          package com.accp.car.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 CharSetFilter implements Filter {
          //初始化
          public void init(FilterConfig config) throws ServletException {
            // TODO Auto-generated method stub

          }
          //執(zhí)行Filter
          public void doFilter(ServletRequest request, ServletResponse response,
             FilterChain chain) throws IOException, ServletException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("GBK");
            chain.doFilter(request,response);
          }

          //釋放
          public void destroy() {
            // TODO Auto-generated method stub

          }

          }

          好了 Filter的代碼文件我們是建立好了 但是現(xiàn)在我們的這個(gè)代碼還是不起作用的 關(guān)鍵是要在 WEB-INF\web.xml
          中添加配置。

          配置如下:

            <filter>
            <filter-name>CharSetFilter</filter-name>    //類(lèi)名
            <filter-class>com.company.filterDemo.biz.filter.CharSetFilter</filter-class>//代碼文件所在的包的完整路徑
            </filter>


            <filter-mapping >
            <filter-name>CharSetFilter</filter-name>  //類(lèi)名 這個(gè)名要跟上面的類(lèi)名保持一致
            <url-pattern>/*</url-pattern>  //這里的路徑/*代表過(guò)濾所有頁(yè)面。
            </filter-mapping>


          切忌 如果發(fā)現(xiàn)有時(shí)頁(yè)面的亂碼并沒(méi)有正確轉(zhuǎn)換的話 你一定要保證 filter配置信息在所有servlet配置的上面。
          因?yàn)?web.xml的讀取機(jī)制是從上到下讀取的所以要保證 filter最先讀取 才能啟動(dòng)中文過(guò)濾的作用。

          我們的filter中文亂碼過(guò)濾就完成了

          建立filter的方法多種多種 這是我認(rèn)為很方便的一種做法。 模板的做法比較繁瑣 這里就不介紹了。

          呵呵 有不足的地方希望大家指正。 謝謝大家。

          posted on 2008-12-24 14:52 丁克設(shè)計(jì) 閱讀(5279) 評(píng)論(5)  編輯  收藏 所屬分類(lèi): Eclipse技術(shù)文檔

          評(píng)論

          # re: Eclipse中創(chuàng)建Filter 2009-05-30 01:40 孫高

          謝謝分享。  回復(fù)  更多評(píng)論   

          # re: Eclipse中創(chuàng)建Filter 2009-06-02 18:58 33

          000  回復(fù)  更多評(píng)論   

          # re: Eclipse中創(chuàng)建Filter[未登錄](méi) 2009-11-27 15:25 yy

          good  回復(fù)  更多評(píng)論   

          # re: Eclipse中創(chuàng)建Filter 2012-08-13 19:58 呂合金

          樓主辛苦了  回復(fù)  更多評(píng)論   

          # re: Eclipse中創(chuàng)建Filter[未登錄](méi) 2014-09-17 12:07 ddd

          讓我們選擇接口 我輸入FILTER并沒(méi)有彈出 許多接口啊?  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2009年6月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導(dǎo)航

          留言簿(6)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          主站蜘蛛池模板: 江城| 海南省| 历史| 虎林市| 黔江区| 东乌珠穆沁旗| 卓资县| 辉县市| 吴旗县| 麻城市| 西和县| 贵德县| 交口县| 萝北县| 克什克腾旗| 浦城县| 龙陵县| 灵山县| 小金县| 沾化县| 阜南县| 依兰县| 晋中市| 万州区| 奉化市| 邢台县| 深圳市| 芜湖县| 商洛市| 凤台县| 德阳市| 额敏县| 永修县| 色达县| 永清县| 丽水市| 奉节县| 西昌市| 易门县| 赤水市| 阳江市|