Blogger Information
Blog 250
fans 3
comment 0
visits 321668
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
form表单中enctype属性的三种类型
梁凯达的博客
Original
8197 people have browsed it

1.form表单中enctype属性的三种类型

 form表单中enctype属性可以用来控制对表单数据的发送前的如何进行编码,enctype有三种,分别为:

 multipart/form-data不对字符编码,用于发送二进制的文件,其他两种类型不能用于发送文件;

 text/plain用于发送纯文本内容,空格转换为 "+" 加号,不对特殊字符进行编码,一般用于email之类的;

 application/x-www-form-urlencoded,在发送前会编码所有字符,即在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,"+"加号转换为空格,特殊符号转换为 ASCII HEX 值)。

 其中application/x-www-form-urlencoded为默认类型。 

2.接收数据的方式

当定义enctype为application/x-www-form-urlencoded时,使用以下方式接收数据
    request.getParameter(参数名);
当定义enctype为text/plain时,使用以下方式接收数据
BufferedReader reader = request.getReader();
 char[] buf = new char[512];
 int len = 0;
 StringBuffer contentBuffer = new StringBuffer();
 while ((len = reader.read(buf)) != -1) {
  contentBuffer.append(buf, 0, len);
 }
 String content = contentBuffer.toString();
 if(content == null){
  content = "";
 }

3.乱码问题

 若使用出现"+"加号转为空格或其它乱码现象,则可检查前端或后台的程序,尝试使用java.net.URLEncoder.encode(value, "UTF-8")对value值进行加密或者使用java.net.URLDecoder.decode(value, "UTF-8")对value值进行解密。

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post