1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      使用Filter處理中文亂碼re-創(chuàng)新互聯(lián)

        在web中當(dāng)頁面的編碼格式和服務(wù)器的編碼格式不一樣時,向服務(wù)器傳遞中文就會出現(xiàn)亂碼,那么如何解決呢?這里要分get請求和post請求,對于這兩種不同的請求有不同的處理處理方式,處理方式如下:

      10年積累的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有站前免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

      1.post請求

      post請求處理中文亂碼相對簡單,只需要在doPost()方法中設(shè)置請求的編碼格式就行了,因為post請求的參數(shù)在請求體中。處理方式如下:

      protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {        request.setCharacterEncoding("utf-8");

           response.setContentType("txt/html;charset=utf-8")

            ......

      }

      2.get請求

        get請求不能像上面post那樣來處理中文亂碼問題,因為get請求的參數(shù)url地址欄中,那么此時就要使用getBytes(String s)方法對接收到的參數(shù)進行反編碼,得到服務(wù)器編碼的字節(jié)碼,再調(diào)用new String(byte[] bytes,String s)獲得編碼后的字符串。處理方法如下:

             protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

             String name = request.getParameter("username");

             byte[] bytes = name.getBytes("ISO-8859-1");

             String value = new String(bytes,"utf-8");

             ......

             }

        說完了get請求和post請求兩種請求處理中文亂碼的方法,那么接下來說下如何把這兩種處理方法引入到Filter中。我們不可能為每個請求都對其做中文亂碼處理,那樣會出現(xiàn)太多的代碼冗余,此時就可以用過濾器來做,先讓每個請求達到Servlet之前,先被過濾器攔截,等過濾器處理完之后再調(diào)用其chain.doFilter(request,response)方法對此請求放行,那么此時到達Servlet的每個請求都被處理過了,就不用考慮中文亂碼問題了。對于get請求怎樣拿到每次請求的參數(shù)名呢?這里需要重寫request的getParameters(String name)方法,處理方法如下:

          public class MyRealRequest extends HttpServletRequestWrapper {    
              private HttpServletRequest request;
              public MyRealRequest(HttpServletRequest req) {
                  super(req);
                  request = req;
              }
              @Override
              public String getParameter(String name) {
                  String value = request.getParameter(name);
                  try {
              byte[] bytes = value.getBytes("ISO-8859-1");
              value = new String(bytes,"utf-8");
                  } catch (UnsupportedEncodingException e) {
              e.printStackTrace();
                  }
                  return value;
              }
          }

      有了這個類,我們就可以用它來處理get請求的中文亂碼問題,在Filter中處理方法如下:

      public class CharacterFilter implements Filter {
          public void init(FilterConfig fConfig) throws ServletException {}
          public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
              HttpServletRequest req = (HttpServletRequest) request;
              HttpServletResponse res = (HttpServletResponse) response;
              String method = req.getMethod(); 
              if(method.equals("POST")){
                  req.setCharacterEncoding("utf-8");
                  res.setContentType("text/html;charset=utf-8");
                  chain.doFilter(req, res);
              }else if(method.equals("GET")){
                  MyRealRequest realRequest = new MyRealRequest(req);
                  res.setContentType("text/html;charset=utf-8");
                  chain.doFilter(realRequest, res);
              }
          }
          public void destroy() {}
      }

      通過以上的處理中文亂碼的問題就解決了,那么接下就需要配置Filter,使它對每個請求都運用這個操作。配置方法如下:

          

           CharacterFilter

           com.web.filter.CharacterFilter

          

          

           CharacterFilter

           /*

          

      到此,使用Filter處理中文亂碼的問題就說完了。

      創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。


      分享名稱:使用Filter處理中文亂碼re-創(chuàng)新互聯(lián)
      轉(zhuǎn)載源于:http://www.ef60e0e.cn/article/echop.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        什邡市| 陆河县| 雅安市| 英德市| 高邮市| 五河县| 县级市| 江山市| 双牌县| 阜城县| 原平市| 龙岩市| 建宁县| 遂平县| 东安县| 建平县| 土默特右旗| 光泽县| 小金县| 许昌市| 东兴市| 泸定县| 夏邑县| 威宁| 英超| 荃湾区| 麟游县| 依兰县| 台东县| 尼勒克县| 嘉义市| 百色市| 民勤县| 淮南市| 宁明县| 伊宁县| 宽甸| 武汉市| 札达县| 株洲市| 右玉县|