一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产福利不卡视频在免费 | 免费网站直接进入 | 国产成人亚洲精品91专区高清 | 亚洲国产在线午夜视频无 | 国产亚洲福利精品一区二区 | juliaann大战七个黑人 | 被强迫调教的高辣小说 | 日韩精品欧美国产精品亚 | 欧美作爱福利免费观看视频 | 高清在线一区二区 | 激情六月丁香婷婷四房播 | 交换性关系中文字幕6 | 欧产日产国产精品专区 | 色哟哟在线播放 | 欧美一级片在线看 | 日本午夜小视频 | 国产成人免费在线观看 | 俄罗斯美女尿尿 | 国产亚洲精品一区二区在线播放 | 日韩理论在线观看 | 亚洲首页国产精品丝袜 | 国产精品香蕉夜间视频免费播放 | 亚洲人成网站在线观看播放青青 | 久久久精品免费视频 | 7777色鬼xxxx欧美色夫 | 77成人影院 | 夫妻性生活免费在线观看 | 精品国产自在现线拍400部 | 俄罗斯女人与公拘i交酡 | 国产精品www视频免费看 | 息与子中文字幕完整在线 | 奇米影视在线观看 | 亚洲系列国产系列 | 成年视频在线观看免费 | 欧美精品日韩一区二区三区 | 教室里老师好紧h | 性欧美高清强烈性视频 | h日本漫画全彩在线观看 | 亚洲va天堂va国产va久久 | 好舒服好爽再快点视频 | 国产精品亚洲精品观看不卡 |