现在的位置: 首页 > 综合 > 正文

表单的提交方式POST和GET有什么区别

2013年10月12日 ⁄ 综合 ⁄ 共 1540字 ⁄ 字号 评论关闭
表单的提交方式POST和GET有什么区别
解决思路
   两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上。
具体步骤
Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于:
1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址如图1.4.3所示。

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

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

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

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

  1. <%@language="VBScript" Codepage="936"%> 
  2. <html> 
  3. <head> 
  4. <title> 表单提交方式测试</title> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
  6. </head> 
  7. <body> 
  8. <form method="post" action="<%=Request.ServerVariables("Script_Name")%>"> 
  9.   提交数据: 
  10.   <input name="oStr" type="text"> 
  11.     <br> 
  12.     提交方式: 
  13.     <select name="select" onchange="this.form.method=this.value"> 
  14.       <option value="Post" selected>Post</option> 
  15.       <option value="Get">Get</option> 
  16.     </select> 
  17.     <br> 
  18.   <input type="submit" name="Submit" value="提交"> 
  19. </form> 
  20. <
  21.  if Request("Submit")<>"" then 
  22.         Response.Write "通过"&Request.ServerVariables("Request_Method")&"方式提交的数据为:" 
  23.     if Request.ServerVariables("Request_Method")="GET" then 
  24.           Response.Write Request.QueryString("oStr") 
  25.     else 
  26.           Response.Write Request.Form("oStr") 
  27.     end if 
  28. end if 
  29. %> 
  30. </body> 
  31. </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通过HTTP post处理发送数据。

抱歉!评论已关闭.