激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Javaweb接收表單數據并處理中文亂碼

Javaweb接收表單數據并處理中文亂碼

2020-07-23 11:21笑到不能自已 Java教程

這篇文章主要介紹了Javaweb接收表單數據并處理中文亂碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

前端表單數據

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

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

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

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

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

性別:

<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作為參數,獲取選中的那個option的value值。

下拉選擇:

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

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

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

后臺接收數據

接收表單數據:

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

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

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

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

中文亂碼處理

GET方式提交的數據

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

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

相關APi :

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

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

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

POST方式提交的數據

request.setCharacterEncoding("utf-8");

服務器端向客戶端發送的數據

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

以下是全部代碼:

GET提交方式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@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提交方式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@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");
    
    //如果服務器端需要向客戶端發送的數據
    response.setContentType("text/html;charset=utf-8");
  }
 
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
  }
}

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

原文鏈接:https://www.cnblogs.com/nieaojie625/p/13268333.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费一级特黄做受大片 | 欧美成人久久 | 日本高清视频网站www | 深夜小视频在线观看 | 黄色免费视频在线 | 亚洲精品久久久久久久久久 | 国产九色视频在线观看 | 一级在线| 欧洲精品久久久 | 香蕉久久久久久 | 久久蜜桃精品一区二区三区综合网 | 激情视频免费看 | 欧美精品亚洲人成在线观看 | 国产精品一区二区手机在线观看 | 视频在线色| 澳门一级淫片免费视频 | 99在线在线视频免费视频观看 | 欧美精品一区二区性色 | 欧美性受xxxxxx黑人xyx性爽 | 久久艹综合 | 污黄视频在线播放 | 久久国产91| 九色激情网| 久久欧美亚洲另类专区91大神 | 毛片视频观看 | 伊人一二三四区 | 国产人成精品综合欧美成人 | 欧美亚洲国产一区二区三区 | 9999在线视频| 久久伊| av在线一区二区三区四区 | 久久精品re| 色网站在线免费观看 | 在线无码 | 久久99精品久久久久久236 | china对白普通话xxxx | 成人影片在线免费观看 | 一区二区三区日本在线观看 | 久久精品一区二区三区不卡牛牛 | 91美女视频在线观看 | 欧美黄 片免费观看 |