• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    servlet獲取后臺數據亂碼處理

     Servlet(Server Applet)是Java Servlet的簡稱,稱為小辦事程序或辦事毗連器,用Java編寫的辦事器端程序,具有自力于平臺和和談的特征,本家兒要功能在于交互式地瀏覽和生當作數據,生當作動態Web內容。

          狹義的Servlet是指Java說話實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般環境下,人們將Servlet理解為后者。Servlet運行于撐持Java的應用辦事器中。從道理上講,Servlet可以響應任何類型的請求,但絕大大都環境下Servlet只用來擴展基于HTTP和談的Web辦事器。

          最早撐持Servlet尺度的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web辦事器起頭撐持尺度的Servlet。

    方式/步調

    1. 1

      第一步:新建一個javaweb項目。

      打開myeclipse file --》new--》web project 

      具體操作如下圖所示:

    2. 2

      第二步:搭建servlet開辟情況。

      新建一個servlet UserServlet.java,index.jsp在web.xml中設置裝備擺設servlet

      代碼如下:

      package com.test.servlet;

      import java.io.IOException;

      import javax.servlet.ServletException;

      import javax.servlet.http.HttpServlet;

      import javax.servlet.http.HttpServletRequest;

      import javax.servlet.http.HttpServletResponse;

      public class UserServlet extends HttpServlet {

      private static final long serialVersionUID = 1L;

      public void doGet(HttpServletRequest request, HttpServletResponse response)

      throws ServletException, IOException {

      this.doPost(request, response);

      }

      public void doPost(HttpServletRequest request, HttpServletResponse response)

      throws ServletException, IOException {

      String sex = request.getParameter("sex");

      String[] bobby = request.getParameterValues("bobby");

      System.out.println("性別 :"+sex);

      for (int i = 1; i <= bobby.length; i++) {

      System.out.println("快樂喜愛"+i+" :"+bobby[i-1]);

      }

      }

      }

    3. 3

      第三步:問題闡發,解決思緒。

      1、亂碼發生原因是get請求在前端處置時將中利用ISO-8859-1進行編碼而java文件和jsp文件一般都是利用UTF-8編碼,如下圖1所示

      2、確認了問題解決起來也就簡單,只要利用對應的編碼對其解碼就可以解決此問題。

    4. 4

      第四步:解決方案1在后臺利用ISO-8859-1解碼。

      具體實現代碼如下所示:

      package com.test.servlet;

      import java.io.IOException;

      import javax.servlet.ServletException;

      import javax.servlet.http.HttpServlet;

      import javax.servlet.http.HttpServletRequest;

      import javax.servlet.http.HttpServletResponse;

      public class UserServlet extends HttpServlet {

      private static final long serialVersionUID = 1L;

      public void doGet(HttpServletRequest request, HttpServletResponse response)

      throws ServletException, IOException {

      this.doPost(request, response);

      }

      public void doPost(HttpServletRequest request, HttpServletResponse response)

      throws ServletException, IOException {

      String sex = request.getParameter("sex");

      String[] bobby = request.getParameterValues("bobby");

      System.out.println("性別 :"+new String(sex.getBytes("ISO-8859-1"),"utf-8"));

      for (int i = 1; i <= bobby.length; i++) {

      System.out.println("快樂喜愛"+i+" :"+new String(bobby[i-1].getBytes("ISO-8859-1"),"utf-8"));

      }

      }

      }

    5. 5

      第五步:利用post體例提交表單。

      <form action="/servlet/userServlet.do" method="post">

          快樂喜愛1:<input type="text" name="bobby"><br/>

          快樂喜愛2:<input type="text" name="bobby"><br/>

          快樂喜愛3:<input type="text" name="bobby"><br/>

          快樂喜愛4:<input type="text" name="bobby"><br/>

          性別:<input type="text" name="sex"><br/>

          <input type="submit" value="提交">

          </form>

    6. 6

      第六部:傳輸之前利用編碼。

      1、js前端編碼

      encodeURI 方式  編碼

      decodeURI 方式 解碼

      2、java后臺編碼

      import java.net.URLDecoder;

      import java.net.URLEncoder;

      //URLEncoder.encode("亂碼","UTF8");編碼

      //URLDecoder.decode("亂碼","UTF-8")解碼

    • 發表于 2019-03-14 20:01
    • 閱讀 ( 759 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆