`
easonfans
  • 浏览: 254653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Post和Get的区别(兼谈页面间传值的方式)

阅读更多

Post和Get的区别(兼谈页面间传值的方式)

从一个页面转向另一个页面的请求方式有两种,Post和Get. 

如果从原理上来探究他们的区别,涉及到Http传输协议的细节,本文不加探究,只讨论一下表象。 

所有的人都知道如下区别: 
1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。 
2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节. 
3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。 

我们的form表单的method方法,有两个,post,get.它在页面传值的时候的区别也就是上面提到的三点. 

先来看一下post方法. 

这个方法在asp时代应该跟程序员打交道很多的,因为那时候没有现在的ViewState,每个页面要恢复原来的状态,都要将页面Post给自身,然后挨个取值,重新赋值.现在这些琐碎的事情都让ViewState代劳了.所以将页面post给自身的动作,在某种程度上已经被Asp.net的程序员们忘却了,所以Post也就被大部分的忽视了,这就是技术进步的双刃剑,带来方便的同时,蒙上你的眼睛。 

ViewState必须包含在<form runat="server">的窗体下,而只要包含了"runat="server""的标志,就甭想Post到其他页面中去,为什么?老盖说,我的ViewState是保存当前页面状态的,你要转到其他页面,他说,不行,**不认识的参数.如果想Post一个窗体,咋办?有四种方式可供选择. 

1.在页面上新建一个form,不要加上runat="server"的标志,当然在这个窗体下的控件也就不用想用Viewstate来传值了.当在其他有runat="server"的窗体的中的按钮事件中,手动调用新建form的submit() 函数. 

传送页面代码如下: 

 

 

<!--html代码--> 
<form id="Form1" method="post" runat="server"> 
            <input id="btnTransfer" type="button"  onclick="post();" runat="server"> 
            <input type="text" runat="server" id="SourceData"> 
</form> 
<form id="forPost" method="post"> 
            <input type="text" runat="server" id="SourceData2"> 
</form> 
 
<!--Script代码--> 
<script language="javascript"> 
            function post() 
            { 
                forPost.action="DestinationPage.aspx"; 
                forPost.submit(); 
            } 
</script> 

 

 

接收页面 

 

string a=Request.Form["SourceData2"].ToString();

 


2.通过Session取值,在一个页面中赋值,在其他页面中共享,这个方式也被广泛应用,个人不倾向于用这种方式,我怕造成Session值的混乱无序,Session用来存一些公共的东西已经累得够呛了。 

3.通过Context传值,在传送页面之前,将需要传递到其他页面的值存在Context中。示例代码如下: 

传送页面 

 

//点击某个button时触发 
private void btnTransfer_ServerClick(object sender, EventArgs e) 
        
{ 
            Context.Items[
"SourceData"]=SourceData.Value; 
            Server.Transfer(
"DestinationPage.aspx"); 
        }

 


接收页面 

 

string a=Context.Items["SourceData"].ToString();

 

 

 


4.通过Server.Transfer的方式。 
这个方式在方法三种已经用到了,不过可以在调用页面为要传递到被调用页面的值创建属性(当然可以直接将它设成public),这样就可以在其他页面访问了。 

传送页面

 

//要传送的值 
private  
System.Web.UI.HtmlControls.HtmlInputText SourceData; 
 
public string getSourceData 
{ 
  
get 
  
{ 
    
return SourceData.Value; 
  }
 
}
 
 
//传送页面 
Server.Transfer("DestinationPage.aspx");

 


接收页面

 

private SourceClass sourcePage; 
 
sourcePage
=(SourceClass)Context.Handler; 
            
string aa=sourcePage.getSourceData;

 


以上就是Post的在不同页面传递数据的方式了。 
下面是get方法 
我常用的是  传送页面

 

string aa=SourceData.Value; 
            
string bb=SourceData.Value; 
 
            
string url="DestinationPage.aspx?parameter1="+aa+"&parameter2="+bb; 
            Response.Redirect(url,
false);

 


接收页面 

 

string aa=Request.QueryString["parameter1"].ToString(); 
            
string bb=Request.QueryString["parameter2"].ToString();

 

 

至于 Response.Redirect(url,false)里的false都是Response.End()这个方法惹的祸,老盖说,写成false就好了,因为默认是true。我都转向其他页面了,还不让我终止原来页面的响应,BT!

 

 

来源:http://www.cnblogs.com/Farseer1215/articles/124896.html

相关的资料其实蛮多的,主要记住

1、get方法在url上能看到上传的内容,而post不能;

2、Post的信息作为http请求的内容,而Get是在Http头部传输的。 
3、这两种方法都能使用二进制加密。

分享到:
评论

相关推荐

    asp.net页面间的传值汇总

    本文将对几种常见的ASP.NET页面间传值方式进行深入解析,包括GET、POST、页面对象属性及Cookie,旨在帮助开发者更好地理解和运用这些技术。 #### 一、GET方式(使用QueryString显式传递) **方式描述**:GET方式...

    后台与页面之间的传值以及页面与页面之间的传值

    在IT行业中,尤其是在Web开发领域,后台与页面之间的传值以及页面与页面之间的传值是至关重要的技术环节。本文将详细讲解这两种通信方式,并以Spring MVC框架为例进行深入阐述。 一、后台(服务器)与页面(客户端...

    几种JSP页面传值方式.txt

    以上介绍了几种常用的JSP页面传值方式,包括使用表单、URL重写、JavaScript动态改变表单行为、JSP内置对象和标签库以及Cookie和Session。不同的场景下可以选择不同的方法来满足需求。在实际应用中,开发者还需要考虑...

    ajax\HTML 页面与页面之间传值

    1. **利用URL参数传递**:最简单的页面间传值方法是通过URL查询字符串。在超链接或表单提交中,我们可以把参数附加到URL后面,例如`跳转&lt;/a&gt;`。在目标页面(child.html)中,可以通过`window.location.search`获取这些...

    关于JSP页面间的传值

    URL重写适用于简单的GET请求传值,表单提交适用于POST请求传值,而使用JavaScript动态修改URL则适用于需要在页面内部动态改变链接地址的情况。在实际开发中,应根据具体需求选择合适的传值方式,以提高程序的可维护...

    web传值方式和介绍

    ASP.NET 页面间传值方式介绍 ASP.NET 中页面间传值是指在不同的页面之间传递数据,以实现页面之间的交互和数据共享。这种传值方式在 Web 应用程序中非常常见,例如在登录页面输入用户名和密码后,系统将这些信息...

    post方式直接传递值,页面传值注意事项

    本文将深入探讨POST方式直接传递值时的一些页面传值注意事项,以及涉及到的相关技术如AJAX、JavaScript和HTML。 一、POST方式的原理与优势 POST方式是HTTP协议中的一个方法,用于向服务器发送数据。相较于GET方式,...

    jsp页面之间的传值

    通过Form表单和Ajax两种方式均可实现JSP页面间的数据传递。表单提交是最传统的数据传递方式,适用于简单场景;而Ajax则为现代Web应用带来了更加灵活高效的解决方案。开发者可以根据具体需求选择合适的方式实现数据的...

    JS、PHP页面相互传值

    以下是一些关于JS和PHP页面间传值的关键知识点: 1. **URL参数**:最简单的传值方式是通过URL查询字符串。在JS中,可以使用`window.location.search`获取URL中的参数,然后在PHP中使用`$_GET`全局数组来接收这些...

    页面间传值

    页面间传值是Web开发中常见的一种需求,特别是在构建多页面应用时。在这个场景下,我们需要将数据从一个页面传递到另一个页面,以便在新打开的窗口中展示或处理这些数据。以下是对这个主题的详细解释,以及如何利用...

    jsp页面传值中文乱码问题处理.docx

    jsp页面传值中文乱码问题处理 在 JSP 页面中传值时,中文字符可能会出现乱码问题,这...JSP 页面传值中文乱码问题可以通过修改编码方式、设置输出编码、接收参数编码、Get 提交编码和数据库连接参数编码等方式来解决。

    asp_net页面传值方式汇总[参考].pdf

    ASP.NET 页面传值是软件开发过程中常见的需求,尤其是在构建动态网页时。本文将详细解析 ASP.NET 中常用的几种页面间传值方法,包括 QueryString、Session、Cookie、Application、Server.Transfer,以及其他的如表单...

    asp.net页面与页面之间传参数值方法(post传值和get传值)

    一、利用POST传值 传值asp文件send.aspx 代码如下:&lt;form id=”form1″ runat=”server” action=”receive.aspx” method=post&gt;  ”Button1″ runat=”server” xss=removed Text=”Button”&gt;”username” ...

    ASP.NET中页面传值的几种方法

    ### ASP.NET中页面传值的几种方法 在ASP.NET开发中,页面间的传值是非常重要的一个环节,这对于实现用户交互、数据处理等功能至关重要。本文将详细介绍ASP.NET中常见的几种页面传值方法,并对其进行深入解析。 ###...

    两个页面之间的传值方法

    本文将详细介绍两个页面之间的传值方法,包括常见的几种传值方式及其应用场景,并通过具体示例进行说明,帮助读者更好地理解和掌握这一核心技能。 ### 一、URL参数传值 #### 1.1 基本原理 URL参数传值是最为直接的...

    ASP.NET 页面传值总汇

    传统的Web应用程序主要依赖于HTTP协议中的GET和POST方法来进行页面间的传值。然而,在ASP.NET这种基于事件驱动的开发框架中,页面之间的传值方式有所变化。 由于ASP.NET采用了PostBack机制(即页面在提交数据后返回...

    关于JSP页面间的传参问题

    通过合理的页面间传值方式,可以使得数据的传递更加高效、安全。本文将详细介绍几种常见的JSP页面间传值方法,并通过示例代码来具体阐述每种方法的应用场景。 #### 1. URL重写(GET方法) URL重写是Web开发中最...

    多页面JSP传值

    在JavaServer Pages (JSP)...总结起来,JSP提供了多种方式来传递页面间参数,包括URL参数、`jsp:param`标签、Session和Request对象。根据应用场景选择合适的方法可以有效地管理数据流,并构建出功能丰富的Web应用程序。

    JSP页面间传值问题实例简析

    首先,要了解在JSP中页面间传值的基本方式,通常有两种:GET和POST方法。GET方法是通过URL参数传递数据,而POST方法是通过请求体传递数据。GET方法适用于传递少量数据,且不包含敏感信息的场景,因为URL会将参数值...

Global site tag (gtag.js) - Google Analytics