欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javaweb接收表單數(shù)據并處理中文亂碼

 更新時間:2020年07月22日 16:06:43   作者:笑到不能自已  
這篇文章主要介紹了Javaweb接收表單數(shù)據并處理中文亂碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

前端表單數(shù)據

常見的表單項的傳值,如:

  • 普通input
  • 單選radio
  • 多選checkbox
  • select下拉選擇
  • textarea文本域

普通 input : name屬性值為后臺接收時的參數(shù)值。

用戶名:<input type="text" name="username"><br>
密碼:<input type="password" name="password"><br>

單選 radio :單選按鈕的 name 值相同才能實現(xiàn)只能點擊一個。

性別:

<input type="radio" name="gender" value="男">男
<input type="radio" name="gender" value="女">女

多選checkbox :name值相同。

愛好:

<input type="checkbox" name="hobby" value="唱">唱
<input type="checkbox" name="hobby" value="跳舞">跳舞
<input type="checkbox" name="hobby" value="rap">rap
<input type="checkbox" name="hobby" value="籃球">籃球

select下拉選擇 :后臺通過degree作為參數(shù),獲取選中的那個option的value值。

下拉選擇:

<select name="degree">
<option value="">---請選擇---</option>
<option value="大一">大一</option>
<option value="大二">大二</option>
<option value="大三">大三</option>
<option value="大四">大四</option>
</select>

textarea文本域 :rows定義顯示的行數(shù),cols定義的是顯示的列數(shù)。

文本域:<br><textarea name="other" rows="10" cols="30"></textarea><br>

后臺接收數(shù)據

接收表單數(shù)據:

String 表單name= request.getParameter(表單name);

普通input、單選radio、select下拉選擇、textarea文本域可通過此方法獲取。

String[] hobbies = request.getParameterValues("hobby");

多選checkbox可通過此方法獲取。

中文亂碼處理

GET方式提交的數(shù)據

先通過 String username = request.getParameter(username) 獲得該表單的值,此時是亂碼的。

使用String new_username = new String(username.getBytes("iso8859-1"), "utf-8") 進行編碼轉換

相關APi :

String(byte[] bytes, Charset charset) 構造一個新的String,由指定的字節(jié)的數(shù)組轉化為指定編碼的字節(jié)數(shù)組。

getBytes(Charset charset)使用指定的編碼方式將該String編碼為字節(jié)序列,將結果存儲到新的字節(jié)數(shù)組中。

解釋:通過get方式提交的數(shù)據的編碼方式為iso8859-1, 先獲取該編碼方式的字節(jié)數(shù)組,再將該字節(jié)數(shù)組轉化為utf-8編碼的字節(jié)數(shù)組,然后將該字節(jié)數(shù)組轉換為字符串。

POST方式提交的數(shù)據

request.setCharacterEncoding("utf-8");

服務器端向客戶端發(fā)送的數(shù)據

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

以下是全部代碼:

GET提交方式:

@WebServlet(name = "RegisterServlet",urlPatterns = "/register")
public class RegisterServlet extends HttpServlet {
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //get提交方式處理中文亂碼
    String username = request.getParameter("username");
    String new_username = new String(username.getBytes("iso8859-1"), "utf-8");
    
    String password = request.getParameter("password");
    String new_password = new String(password.getBytes("iso8859-1"), "utf-8");
    
    String gender = request.getParameter("gender");
    String new_gender = new String(gender.getBytes("iso8859-1"), "utf-8");
    
    String[] hobbies = request.getParameterValues("hobby");
    for (int i = 0; i < hobbies.length; i++) {
      hobbies[i]=new String(hobbies[i].getBytes("iso8859-1"), "utf-8");
    }
    
    String degree = request.getParameter("degree");
    String new_password = new String(password.getBytes("iso8859-1"), "utf-8");
    
    String other = request.getParameter("other");
    String new_password = new String(password.getBytes("iso8859-1"), "utf-8");
  }

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

POST提交方式:

@WebServlet(name = "RegisterServlet",urlPatterns = "/register")
public class RegisterServlet extends HttpServlet {
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //post提交方式的中文亂碼解決方法
    request.setCharacterEncoding("utf-8");
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    String gender = request.getParameter("gender");
    String[] hobbies = request.getParameterValues("hobby");
    String degree = request.getParameter("degree");
    String other = request.getParameter("other");
    
    //如果服務器端需要向客戶端發(fā)送的數(shù)據
    response.setContentType("text/html;charset=utf-8");
  }

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • java實現(xiàn)文件重命名

    java實現(xiàn)文件重命名

    這篇文章主要為大家詳細介紹了java實現(xiàn)文件重命名,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Java面試之如何獲取客戶端真實IP

    Java面試之如何獲取客戶端真實IP

    這篇文章主要給大家介紹了關于Java面試之如何獲取客戶端真實IP的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • 解決外部jar包@Service無法注解無法掃描的問題

    解決外部jar包@Service無法注解無法掃描的問題

    這篇文章主要介紹了解決外部jar包@Service無法注解無法掃描的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 騰訊云部署javaWeb項目的實現(xiàn)步驟

    騰訊云部署javaWeb項目的實現(xiàn)步驟

    本文主要介紹了騰訊云部署javaWeb項目的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • java項目中讀取jdbc.properties文件操作

    java項目中讀取jdbc.properties文件操作

    這篇文章主要介紹了java項目中讀取jdbc.properties文件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • SpringCloud之Config配置中心與Redis分布式鎖詳解

    SpringCloud之Config配置中心與Redis分布式鎖詳解

    這篇文章主要給大家介紹了SpringCloud Alibaba中Config配置中心,Redis分布式鎖,文中有詳細的代碼示例供大家參考,需要的朋友可以參考閱讀
    2023-05-05
  • SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解

    SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解

    這篇文章主要介紹了SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解,在日常開發(fā)中,項目里日志是必不可少的,一般有業(yè)務日志,數(shù)據庫日志,異常日志等,主要用于幫助程序猿后期排查一些生產中的bug,需要的朋友可以參考下
    2023-12-12
  • Mybatis generator修改Mapper.java文件實現(xiàn)詳解

    Mybatis generator修改Mapper.java文件實現(xiàn)詳解

    這篇文章主要為大家介紹了Mybatis generator修改Mapper.java文件實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Java數(shù)據結構之有向圖設計與實現(xiàn)詳解

    Java數(shù)據結構之有向圖設計與實現(xiàn)詳解

    有向圖是具有方向性的圖,由一組頂點和一組有方向的邊組成,每條方向的邊都連著一對有序的頂點。本文為大家介紹的是有向圖的設計與實現(xiàn),需要的可以參考一下
    2022-11-11
  • SpringBoot?AOP中JoinPoint的使用方式和通知切點表達式

    SpringBoot?AOP中JoinPoint的使用方式和通知切點表達式

    這篇文章主要介紹了SpringBoot?AOP中JoinPoint的使用方式和通知切點表達式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評論