<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Servlet解決參數亂碼問題

      為什么會產生亂碼?

          之所以會產生亂碼,是由于服務器端和客戶端的編碼方式不一致造成的。客戶端與服務器端的交互過程中,存在著兩次數據交換:第一次,客戶端向服務器端發起請求,第二次數據交換,服務器端響應客戶端的請求后做出應答,將處理結果返回給客戶端。

      前提了解,無論服務器端是在接受數據還是在返回數據時,如果不指定其數據編碼格式,那么他就會以其默認的“iso8859-1”來編碼。  

      首先看客戶端向服務器端發出請求:

        客戶端的頁面以何種編碼方式打開某個頁面,通過http協議發送請求給服務器端時,就以何種編碼方式將提交數據轉換成其對應的二進制數來進行http傳輸。這個編碼方式是在頁面制作時已經指定了的,最常見的是做一個html文件時通過<meta http-equiv="content-type" content="text/html; charset=UTF-8">指定編碼格式為utf8。那么,在服務器端接受這些數據時就要通過utf8來將這些二進制數據進行解碼。如果用其他的編碼方式,比如gbk來解碼,就會出現亂碼。

        舉例:客戶端傳輸“北京”兩個字給服務器端,如果頁面打開時是utf-8格式,那么就會以utf8來將“北京”轉化成其對應的二進制數A:1000100111001010(瞎編的),在服務器端接收時,如果沒有指定以utf8來接受這個二進制流A,那么服務器以其默認編碼格式ISO8859-1來解碼A,以為不同的編碼方式對應的碼表不一樣,同樣是1000100111001010,ISO8859-1可能解析不出來相應的字符,那么就會以?或者亂碼來代替,然后輸出,這是我們就看到了亂碼。

        所以我們要做的就是統一兩邊的編碼格式,在服務器端以客戶端頁面的編碼格式來解析傳過來的二進制數據流。可在servlet的doGet()和doPost()方法中作如下操作:

      頁面以get方法提交表單:

      處理GET 提交方法的servlet 中的doGet()方法

          public void doGet(HttpServletRequest request, HttpServletResponse response)
                  throws ServletException, IOException {
              
              String username = request.getParameter("username");
              username = new String(username.getBytes("iso8859-1"),"utf-8");//將接收來的二進制數據流以iso8859-1解碼再轉換成utf-8
              System.out.println(username);
          }

      對于doPost()方法,代碼如下

          public void doPost(HttpServletRequest request, HttpServletResponse response)
                  throws ServletException, IOException {
              
              //解決post方法提交數據中的亂碼問題
              //
              request.setCharacterEncoding("utf-8");//將解碼方式設為來源網頁的編碼方式即可,這句話加在這個方法的第一句
              String add = request.getParameter("address");
              System.out.println(add);
             
          }

       

      再看服務器端向客戶端返回數據

        原理基本上同客戶端向服務器端發送請求,要做到兩邊編碼方式一致。做法就是在服務器響應時,第一,設置客戶端相應的http協議它的數據輸出編碼格式為指定的格式(假如utf8);第二將要輸出的數據以utf8格式編碼。

      public class RequestAllexampleServlet2 extends HttpServlet {
      
          public void doGet(HttpServletRequest request, HttpServletResponse response)
                  throws ServletException, IOException {
              
              response.setContentType("text/html;charset=utf-8");//設置http輸出格式
              response.setCharacterEncoding("utf-8");//設置字符編碼格式
              response.getWriter().write("北京");
      
          }

      訪問這個Servlet結果為:

      posted @ 2015-04-11 23:48  Buffalo_L  閱讀(5801)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国内自拍小视频在线看| 亚洲AVAV天堂AV在线网阿V| 成人免费精品网站在线观看影片 | 97国产露脸精品国产麻豆| 浙江省| 国产真实交换配乱婬95视频| 综合色一色综合久久网| 久久狠狠高潮亚洲精品| 999国产精品999久久久久久| 国产高清一区二区三区视频| 两个人的视频www免费| 国产成人av电影在线观看第一页| 97在线视频人妻无码| 99久久久国产精品免费无卡顿| 佛坪县| 国产国语一级毛片| 国产亚洲国产精品二区| 欧美日韩在线视频| 亚洲区激情区无码区日韩区| 青青国产揄拍视频| 中文字幕一区二区三区四区五区| 久青草视频在线观看免费| 亚洲成在人线AV品善网好看| 孝感市| 亚洲国产亚洲综合在线尤物| 大帝AV在线一区二区三区| 国产精品自在线拍国产手机版| 国产在线观看91精品亚瑟| 91精品国产吴梦梦在线观看永久 | 亚洲中文字幕人成影院| 久久久久久久一线毛片| 秋霞电影网| 亚洲人成网站色7799| 丁香五月亚洲综合在线国内自拍| 中文字幕日本一区二区在线观看| 欧美日韩精品一区二区三区不卡| 国产av中文字幕精品| 视频一区视频二区在线视频| 久久亚洲精品无码播放| 久久精品中文字幕免费| 变态另类视频一区二区三区|