POST和Get辨析

时间:2023-03-10 04:04:52
POST和Get辨析

   在Form里面,能够使用post也能够使用get。它们都是method的合法取值,可是两者也有不同,主要差别在于传递和获取參数的方式不同

一、Get方法:

  1、參数的传递方式:

   通过URL请求来传递用户的输入。即在地址栏中能够看到我们提交所传递的參数,这也是浏览器默认的传递參数方式

  2、获取所传递的參数:

   Get方式的提交你须要用Request.QueryString来取得变量的值

  3、传递的參数长度限制

   Get方式传递的參数长度限制在2KB以内

实例:

  传递參数页页面get.html

<html>
  <body>
   <form name="form1" method="GET" action="server.html">
      输入名字: <input type="text" name="u">
      <input type="submit" name="Submit" value="Submit">
   </form>
  </body>
</html>

  提交到的页面:server.html

<html>
 <head>
 <SCRIPT LANGUAGE="JavaScript">
  var request={
   QueryString : function(val)
    {var uri = window.location.search;
     var re = new RegExp("" +val+ "=([^\&\?]*)", "ig");
     return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null); }
  }
  var u = request.QueryString("u");
  var l = request.QueryString("l");
  document.writeln("Hello! " + u);   </SCRIPT>
</head> <body> </body> </html>

二、Post方法:

1、參数的传递方式:

   Post參数是被URL编码的。然而,变量名/变量值不作为URL的一部分被传送,而是放在实际的HTTP请求消息内部被传送。

  2、获取所传递的參数:

   Post方式提交时,你必须通过Request.Form来訪问提交的内容。

  3、传递的參数长度限制

   Post传送的数据量较大,一般被默觉得不受限制

 实例:

  前台表单:

  <form id="fm" method="post" novalidate runat="server">

   <input type="hidden" id="test" name="test" />

  </form>

  后台处理程序

	提交到后台一般处理程序
public void ProcessRequest(HttpContext context)
{
//调试
if (null != context.Request.Form["id"])
{//获取前台传来的值
string category = context.Request.Form["test"].ToString().Trim();
}
string command =context.Request.Form["test"].ToString().Trim();//前台传的标示值 {//调用查询方法
Query(context);
}
}

三、小结:

POST和Get辨析