另一种数据提交方式
除了前面介绍的通过表单提交数据,我们还可以通过URL地址提交数据,格式为:
http://网页地址/?键1=值1&键2=值2&键3=值3
示例
将HttpRequest事件代码设置为:
Select
Case e.Path
Case "test.htm"
Dim
sb As New
StringBuilder
sb.AppendLine("接收到的数据有:<br/><br/>")
For Each
key As
String In
e.Values.Keys
sb.AppendLine(key
& ":"
& e.Values(key)
& "<br/>")
Next
e.WriteString(sb.ToString)
End
Select
然后在浏览器中输入地址:
http://127.0.0.01/test.htm?product=foxtable&price=4688&count=2
可以看到Foxtable已经正确提取出URL网址中包括的数据:
这种数据提交方式,通常称为get方式,通过表单提交的方式,通常称为post方式。
当然你可以将表单的method属性设置为get,这样表单也可以采用get方式提交数据,但是没有必要,因为post方式更安全、更方便,一次可以提交更多的数据。
但是get方式也有自己的优势,就是轻量级,通常用于提交一些事先约定好的、不需要用户输入的数据。
混合Get和Post方式
其实Get和Post两种方式是可以混合使用的,例如我们将HttpRequest事件代码设置为:
Select
Case e.Path
Case "input.htm"
Dim sb
As New
StringBuilder
sb.AppendLine("<form
enctype='multipart/form-data' action='accept.htm?id=1&page=10' method='post'
id='form1'
name='form1'>")
sb.AppendLine("产品:
<input name='cp' id='cp'><br/><br/>")
sb.AppendLine("客户:
<input name='kh' id='kh'><br/><br/>")
sb.AppendLine("数量:
<input type='number' name='sl' id='sl'><br/><br/>")
sb.AppendLine("日期:
<input type='date' name='rq' id='rq'><br/><br/>")
sb.AppendLine("<input
type='submit' name='sumbit' id='sumbit' value='提交'>")
sb.AppendLine("<input
type='reset' name='reset' id='reset' value='重置'>")
sb.AppendLine("</form>")
e.WriteString(sb.ToString)
Case "accept.htm"
Dim sb
As New
StringBuilder
sb.AppendLine("接收到的数据有:<br/><br/>")
For Each
key As
String In
e.Values.Keys
sb.AppendLine(key
& ":"
& e.Values(key)
& "<br/>")
Next
e.WriteString(sb.ToString)
End
Select
上述代码中,我们定义的表单的代码为:
<form action='accept.htm?id=1&page=10' method='post' name='form1'>
用户输入完成单击提交按钮后,会将输入结果提交到地址"accept.htm?id=1&page=10",这个地址包括id和page两个值。
所以当用户按下图所示输入数据:
然后单击提交按钮,提交到后台后,显示的内容会包括url地址中的内容,以及用户输入的内容: