`
java-mans
  • 浏览: 11341472 次
文章分类
社区版块
存档分类
最新评论

表单的提交方式POST和GET

 
阅读更多




Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于:
1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址如图1.4.3所示。

图1.4.3Get方式提交表单后的地址栏

而Post提交后地栏不变,如图1.4.4所示。

图1.4.4Post方式提交表单后的地址栏不变

2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取:

<%@language="VBScript"Codepage="936"%>
<html>
<head>
<title>表单提交方式测试</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body>
<formmethod="post"action="<%=Request.ServerVariables("Script_Name")%>">
提交数据:
<inputname="oStr"type="text">
<br>
提交方式:
<selectname="select"onchange="this.form.method=this.value">
<optionvalue="Post"selected>Post</option>
<optionvalue="Get">Get</option>
</select>
<br>
<inputtype="submit"name="Submit"value="提交">
</form>
<%
ifRequest("Submit")<>""then
Response.Write"通过"&Request.ServerVariables("Request_Method")&"方式提交的数据为:"
ifRequest.ServerVariables("Request_Method")="GET"then
Response.WriteRequest.QueryString("oStr")
else
Response.WriteRequest.Form("oStr")
endif
endif
%>
</body>
</html>

注意:虽然两种提交方式可以统一用Request("oStr")来获取提交数据,但是这样对程序效率有影响,不推荐使用。
特别提示
通过IIS运行本例代码(用http://localhost/method.asp这种方式来浏览,有关IIS的安装和配置,请参考第四部分),输入所提交的数据,选择Post方式提交,将看到图1.4.4所示的效果。选择Get方式提交,效果将如图1.4.3所示。

特别说明


一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。本例中用到的表单的属性解释(ASP部分请参考第四部分):
Get把参数添加到action属性指定的地址中,并以锚方式打开。
Post通过HTTPpost处理发送数据。

总结:
在提交时的区别:
一:get提交最大能提交8192个字符,执行效率高,但不安全 post提交没有大小限制,效率比get低,安全
二:post是传输信息内容,get是传输url值
GET -- 这是缺省方式,填充form的内容将被附在 URL 的后面,就好象它是一个普通的查询请求. POST -- 这种方式把 form 的内容用一个数据块方式发送给服务器,而不是作为 URL 的一部分.
三:POST 在HTTP请求的主体内 Request.Form读取数据. GET 标识在URL的最后 Request.QueryString读取数据 GET 有一个缺点就是URL字符的长度被浏览器及服务器使用时有一些限制, 还有一个就是把HTTP请求中通过WEB传递的数据暴露出来 .
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics