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

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

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

    Kimi's NutShell

    我荒廢的今日,正是昨日殞身之人祈求的明日

    BlogJava 新隨筆 管理
      141 Posts :: 0 Stories :: 75 Comments :: 0 Trackbacks

    使用filter來改變r(jià)equest的編碼.

    當(dāng)沒有指定request的編碼的時(shí)候,從客戶端得到的數(shù)據(jù)是iso-8859-1編碼的(request.getParameter()得到傳遞的參數(shù)值);
    但是我們怎么來改變r(jià)equest的編碼呢?


    方法有很多種!


    比如:在getRequestDispatcher("/jsp/jsptoserv/hello.jsp").forward(request, response);之前修改


    request的編碼,那么在jsp/jsptoserv/hello.jsp中得到的參數(shù)值就是制定的編碼的字符。


    本文我們使用Filter來修改request的編碼

    1)首先編寫filter類:
    package myFilter;
    import java.io.IOException;
    import javax.servlet.*;
    public class ChangeCharsetFilter implements Filter {
    protected String encoding = null;/////要制定的編碼,在web.xml中配置
    protected FilterConfig filterConfig = null;
    public void destroy() {
    this.encoding = null;
    this.filterConfig = null;
    }
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    throws IOException, ServletException {
    if (request.getCharacterEncoding() == null){
    ?String encoding = getEncoding();////得到指定的編碼名字
    ?if (encoding != null)
    ?request.setCharacterEncoding(encoding);////設(shè)置request的編碼
    ?}
    chain.doFilter(request, response);///有機(jī)會(huì)執(zhí)行下一個(gè)filter
    }
    ?public void init(FilterConfig filterConfig) throws ServletException {
    ?this.filterConfig = filterConfig;
    this.encoding = filterConfig.getInitParameter("encoding");///得到在web.xml中配置的編碼
    ?}
    ?protected String getEncoding() {
    ?return (this.encoding);///得到指定的編碼
    }

    }

    2。編輯web.xml文件
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    ? PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    ? "<web-app>
    <filter>
    <filter-name>SetCharacterEncoding</filter-name>
    ?<filter-class>myFilter.ChangeCharsetFilter </filter-class>
    ?<init-param>
    ?<param-name>encoding</param-name>
    <param-value>GB2312</param-value>//////指定編碼為GB2312
    </init-param>
    ?</filter>
    <filter-mapping>
    ?<filter-name>SetCharacterEncoding</filter-name>
    <url-pattern>/*</url-pattern>////////對于所有的request改變其編碼
    </filter-mapping>
    </web-app>
    ///
    3。寫一個(gè)a.jsp


    <%@ page contentType="text/html; charset=GB2312" %>
    <html>
    <head></head>
    <body>
    <%
    String name=request.getParameter("name");///本來這里得到字符是iso-8859-1編碼的,不能直接


    在Console中輸出的,但是現(xiàn)在改變了request的編碼方式,此時(shí)的name的編碼是GB2312,所以能正確在Console中顯示的。

    System.out.println(name);


    %>
    <form action="a.jsp" method="post">
    <input type="text" name="name">
    <input type="submit">
    </form>
    <%=name%>
    </body>
    </html>


    完!


    關(guān)于中文處理的問題就寫這些了!


    評論

    # re: 通過filter類對get方式上來的中文進(jìn)行統(tǒng)一編碼處理 2008-02-16 17:16 aqiu
    被你捷足先登了,前段時(shí)間剛看的  回復(fù)  更多評論
      

    # re: 通過filter類對get方式上來的中文進(jìn)行統(tǒng)一編碼處理[未登錄] 2008-02-18 08:42 Kimi
    嘿嘿  回復(fù)  更多評論
      

    主站蜘蛛池模板: 玖玖在线免费视频| 麻豆一区二区三区蜜桃免费| 免费无码又爽又刺激网站直播| 亚洲色图综合在线| 一区二区三区免费视频播放器| 亚洲AV无码乱码在线观看性色扶 | 亚洲AV人人澡人人爽人人夜夜| 精品免费久久久久国产一区 | 亚洲人成激情在线播放| 亚洲成人在线免费观看| 亚洲国产成人久久| 无码视频免费一区二三区| 亚洲AV成人精品一区二区三区| 国产免费无遮挡精品视频| 免费人成网上在线观看| 亚洲色成人网站WWW永久| 日本免费人成网ww555在线| 亚洲成电影在线观看青青| 无码一区二区三区免费视频 | 最好免费观看高清在线 | 亚洲一区二区三区国产精华液| 卡1卡2卡3卡4卡5免费视频| 一级毛片aa高清免费观看| 亚洲熟妇无码另类久久久| 日本xxxx色视频在线观看免费| 亚洲人成高清在线播放| 免费观看一级毛片| 一级毛片大全免费播放下载 | 亚洲AV无码久久| 国产又黄又爽又猛免费app| WWW国产亚洲精品久久麻豆| 国产成人综合亚洲亚洲国产第一页 | 亚洲国产一区二区a毛片| 永久免费的网站在线观看| 深夜福利在线免费观看| 久久精品国产精品亚洲蜜月| 免费看污成人午夜网站| 日韩a毛片免费观看| 自怕偷自怕亚洲精品| 免费人成在线观看网站视频| 免费视频精品一区二区三区|