<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    午夜拍鍵驚奇
    子夜 編程 代碼與我同在
    posts - 48,comments - 118,trackbacks - 79
    相信很多朋友在使用JSP/Servlet等技術(shù)進(jìn)行頁面編程的時(shí)候都會(huì)或多或少地遇到亂碼問題。解決的方法有很多,比較常見的是手動(dòng)對所有可能包含中文的字符串進(jìn)行轉(zhuǎn)碼:

    String latin = ;
    String gbk 
    = new String(latin.getBytes("iso-8859-1"),"gbk");

    這個(gè)方法過去我也比較常用,的確有效,但很累贅耶,絲毫沒有模式之美,有沒有更優(yōu)雅的方法呢?如果你和我一樣有疑慮的話,可以考慮使用FilterServlet:

     1import java.io.*;
     2import javax.servlet.*;
     3import javax.servlet.http.*;
     4
     5import org.apache.log4j.*;
     6
     7public class CharsetFilter
     8    extends HttpServlet implements Filter{
     9  private static Logger logger = Logger.getLogger("Filter servlet");
    10
    11  public void init(FilterConfig filterConfig)
    12      throws ServletException{
    13  }

    14
    15  public void doFilter(ServletRequest request,ServletResponse response,
    16      FilterChain filterChain){
    17    if(request != null){
    18      String charset = request.getCharacterEncoding();
    19      if(charset == null || !charset.equalsIgnoreCase("gbk"))
    20        try{
    21          request.setCharacterEncoding("GBK");
    22        }

    23        catch(UnsupportedEncodingException ex){
    24          logger.warn(ex.getMessage());
    25        }

    26    }

    27    try{
    28      filterChain.doFilter(request,response); // 遞交責(zé)任鏈下一環(huán)
    29    }

    30    catch(Exception ex){
    31      logger.error(ex.getMessage());
    32    }

    33  }

    34
    35  public void destroy(){
    36  }

    37}

    38

    FilterServlet內(nèi)部應(yīng)該使用責(zé)任鏈(Chain of Responsibility)實(shí)現(xiàn),在這里我們把對字符串的轉(zhuǎn)碼做為責(zé)任鏈中的一環(huán),從上一環(huán)拿到request,處理后交給鏈的下一環(huán)。另外需要在web.xml里做些配置:

    <filter>
      
    <filter-name>charsetfilter</filter-name>
      
    <filter-class>pqp.servlet.CharsetFilter</filter-class>
    </filter>
    <filter-mapping>
      
    <filter-name>charsetfilter</filter-name>
      
    <url-pattern>/*</url-pattern>
      
    <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

    其中“REQUEST”指定了filter攔截的類型,有REQUEST、FORWARD、ERROR和INCLUDE,可組合選擇,一般選REQUEST。全部設(shè)置好后重新打包、部署,這樣Servlet就可以自動(dòng)把所有的request轉(zhuǎn)換為GBK的字符集了,是不是很方便?但在這里加了filter后對性能方面的影響未知,大家可以討論一下。
    posted on 2005-11-04 19:42 ^ Mustang ^ 閱讀(1780) 評論(0)  編輯  收藏 所屬分類: Java 點(diǎn)滴
    主站蜘蛛池模板: 国产精品亚洲αv天堂无码| 99视频在线精品免费观看6| 国产成人亚洲综合无码| 男人j进女人p免费视频| 亚洲伦乱亚洲h视频| 三级毛片在线免费观看| 久久精品亚洲综合| 免费无码又爽又刺激高潮软件| 一本久久a久久精品亚洲| 18禁超污无遮挡无码免费网站| 久久亚洲国产欧洲精品一| 无码精品人妻一区二区三区免费看| 亚洲精品偷拍无码不卡av| 在线天堂免费观看.WWW| 国产精品亚洲av色欲三区| 亚洲精品综合久久| 无码人妻久久一区二区三区免费| 亚洲人色大成年网站在线观看| 毛片a级毛片免费播放下载| 校园亚洲春色另类小说合集| 久久久久亚洲精品无码网址| 免费在线看黄网站| 国产精品亚洲专区在线观看| 免费国产怡红院在线观看| 黄色视屏在线免费播放| 99久久精品国产亚洲| A级毛片内射免费视频| 国产黄在线观看免费观看不卡 | 免费看h片的网站| 亚洲国产精品成人午夜在线观看 | 在线观看特色大片免费网站| 91情国产l精品国产亚洲区| 在线A级毛片无码免费真人| 五月天婷婷免费视频| 亚洲黄色免费在线观看| 国产一级淫片a视频免费观看| 免费h视频在线观看| 亚洲精品av无码喷奶水糖心| 国产亚洲AV无码AV男人的天堂| 在线观看免费人成视频色9| EEUSS影院WWW在线观看免费|