html form表单

提交

前言

参考
java中的url 编码与解码
URL中带加号的处理

application/x-www-form-urlencoded 字符串

一种编码类型。
当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-urlencoded字符串。
表单里提交时也是如此,当包含非西欧字符的字符串时,系统也会将这些字符转换成application/x-www-form-urlencoded字符串。
然而,在向服务器发送大量的文本、包含非ASCII字符的文本或二进制数据时这种编码方式效率很低。这个时候我们就要使用另一种编码类型“multipart/form-data”。
比如在我们在做上传的时候,表单的enctype属性一般会设置成“multipart/form-data”。Browser端<form>表单的ENCTYPE属性值为multipart/form-data,它告诉我们传输的数据要用到多媒体传输协议,由于多媒体传输的都是大量的数据,所以规定上传文件必须是post方法,<input>的type属性必须是file。

http get请求时、form 表单以“application/x-www-form-urlencoded”提交时,转换规则:

  1. 字符”a”-“z”,”A”-“Z”,”0”-“9”,”.”,”-“,”*”,和”_” 都不会被编码;
  2. 将空格转换为加号 (+) ;
  3. 将非文本内容转换成”%xy”的形式,xy是两位16进制的数值;
  4. 在每个 name=value 对之间放置 & 符号;

使用URL时注意:

web 设计者面临的众多难题之一便是怎样处理不同操作系统间的差异性。这些差异性能引起URL方面的问题:例如,一些操作系统允许文件名中含有空格符,有些又不允许。大多数操作系统不会认为文件名中含有符号“#”会有什么特殊含义;但是在一个URL中,符号“#”表示该文件名已经结束,后面会紧跟一个 fragment(部分)标识符。其他的特殊字符,非字母数字字符集,它们在URL或另一个操作系统上都有其特殊的含义,表述着相似的问题。为了解决这些问题,我们在URL中使用的字符就必须是一个ASCII字符集的固定字集中的元素,具体如下:
1.大写字母A-Z
2.小写字母a-z
3.数字 0-9
4.标点符` - _ . ! ~ * ' (和 ,)
所有其他字符都是不安全的,因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含 3 个字符的字符串 “%xy” 表示,其中 xy 为该字节的两位十六进制表示形式。推荐的编码机制是 UTF-8。但是,出于兼容性考虑,如果未指定一种编码,则使用相应平台的默认编码。
其中空格是一个特殊情况,因为它除了被编码成“%20”以外,还能编码为一个“+”。加号(+)本身被编码为%2B。当/ # = & 和?作为名字的一部分来使用时,而不是作为URL部分之间的分隔符来使用时,它们都应该被编码。

Java 处理 application/x-www-form-urlencoded
// 将普通字符串转换成application/x-www-form-urlencoded字符串
java.net.URLEncoder.decode(String s, String enc);

// 将application/x-www-form-urlencoded字符串转换成普通字符串。
java.net.URLDecoder.decode(String s, String enc);
HTML表单是用于收集用户输入数据的一种方式。它由一系列的表单控件和相应的标签组成。在HTML中,表单控件包括文本框、密码框、下拉列表、复选框、单选框、文件上传等。引用描述了一些常见的表单控件,例如文本框、密码框、下拉列表。引用介绍了label标签,用于与表单控件关联,提供更好的可用性和可访问性。引用和提供了更多关于HTML表单的示例和使用方法。 在HTML中,可以使用form元素来创建一个表单。form元素有action属性,用于指定表单提交后的处理页面;method属性,用于指定表单的提交方式(POST或GET);enctype属性,用于指定表单数据的编码类型。表单中的每个控件都需要通过相应的标签来进行标记,并且可以使用name属性来命名控件,以便在提交表单时能够获取到用户输入的数据。 通过使用不同的表单控件和标签,可以灵活地创建各种类型的表单,满足不同的需求,例如收集用户的个人信息、提交文件等。表单的设计和布局可以根据具体的页面需求进行调整,以提供更好的用户体验。 总结起来,HTML表单是一种用于收集用户输入数据的技术,通过一系列的表单控件和标签,可以创建不同类型的表单,并通过表单提交将用户输入的数据发送到服务器进行处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值