web页面数据共享有哪些实现方法

如题所述

  往往使用动态网页技术制作asp应用程序时一般至少拥有二个或二个以上的web页面,这时就得考虑在多个web页面间传递数据的处理工作。而asp应用程序的各个页面类似于windows应用程序的form窗体,windows应用程序各form间数据传递可以通过定义全局变量等方法来实现。网页间的数据传递有多种不同的可使用方式,而web页面间的数据传递方式选择是否恰当对系统设计及运行的合理性与安全性起到举足轻重的作用。

1、url方式

url方式是实现web间数据传递最基本的方法,操作简单,可很方便地实现不同web页面间的数据传递,但其安全性比较差。将要传递的数据附加在网页地址(url)后面进行传递。如:http://www.cstvu.com/testweb?username=liming,其中?后面所跟着的字符串便是传递的数据,=前的是变量名,=后面是数值,可以使用request对象来获取传递的数据。如:request(“username”)。这种方法在传递数据过程中其数据内容在url栏中是显示的,用户能看到提交的内容。

2、form方式

通过在网页上制作表单交互区域,用户在浏览器端输入数据,然后通过form提交到服务器,在提交后的接受form数据的页面里就可以接收到相应数据,即form的action页面中可以使用request对象来接收所传递的数据。

如:

发送页面:

<form name=“formtest” action=“targetweb.asp”>

<input name=“testtext” type=“text”value=“”>

<input name=“testbutton” type =“submit”value =“提交”>

</form>

接收页面:request(“testtext”)

利用form页面的文本框来接收用户数据的输入,通过submit按钮提交后在targetweb页面中使用request来接收数据。

3、cookie方式

cookie是在浏览页面时web服务器在浏览器端所写入的一些小文件,cookie是存放在浏览器端本机磁盘上,而不是存放在服务端的。可以在发送数据时写入cookie,接收时读取cookie完成数据在web页面间的传送。

如:

发送页面:response.cookies(“cookiename”)(“username”)=“liming”

接收页面:request.cookie(“cookiename”)(“username”)

在发送页面中对cookie变量赋值,接收页面中取cookie变量的值就是所传递的数据。

4、application对象

application对象是用来记录整个网站信息的,是记录不同浏览器端共享的变量,无论有几个浏览者同时存取网页,都只会产生一个application对象实例。用户可以通过定义application整站共享变量来实现网页间的数据传递。其定义方法是:application(“变量名”)=数值

如:application(“usrname”)=liming

application对象所定义的变量对于所有浏览端都是可见的,所以其使用场合是所有浏览端共享的全局数据传递。

5、session对象

session对象是用来记录浏览器端的变量,是个别浏览器端专用的变量,对于每一个浏览器访问时都会自动产生一个seseion对象,该对象提供一个存储场所,用来存储仅仅对该访问者在会话的活动期间打开的网页可用的变量和对象。这样就用可以用来在web间传递专对单个浏览器端使用的数据。其定义方法:session(“变量名”)=数值

如:session(“usename”)=liming

session对象所定义的变量只是浏览器端的专用变量,所以适用于局部会话间的网页数据传递。

6、结束语

上述介绍的是网页间数据传递的常用方法,各有千秋。其中url方式和form方式实现方法简单,可实现网页间的简单数据传递,一般为字符串类型,其特点是安全性差,而且必须是连续访问两页面间数据传递。cookie只能存放string类型的数据,如果想要存放更为复杂的数据类型,那么必须先将其转换为string类型。application对象和session对象操作相对复杂些,浏览量非常大的网页使用时应适量,而且使用结束后尽量清除,否则大量使用有可能会导致服务器的瘫痪。session变量的安全性较高,可传递专用浏览端数据。具体应用决定了数据传递方式的选择,合理数据传递方式选择是web页面的设计中的关键考虑因素。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-12
引言  Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留。在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确、安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种方法和各自的适用场合。
  1、ASP.NET页面间数据传递的各种方法和分析
  1.1 使用Querystring 方法
  QueryString 也叫查询字符串, 这种方法将要传递的数据附加在网页地址(URL)后面进行传递。如页面A.aspx 跳转到页面B.aspx,可以用Request.Redirect("B.aspx?参数名称=参数值")方法,也可以用超链接:,页面跳转后,在目标页面中可用Ruquest["参数名称"]来接收参数。使用QuerySting 方法的优点是实现简单, 不使用服务器资源;缺点是传递的值会显示在浏览器的地址栏上,有被篡改的风险,不能传递对象,只有在通过URL 请求页时查询字符串才是可行的。
  
1.2 利用隐藏域
  隐藏域不会显示在用户的浏览器中, 一般是在页面中加入一个隐藏控件, 与服务器进行交互时把值赋给隐藏控件并提交给下一页面。隐藏域可以是任何存储在网页中的与网页有关的信息的存储库。使用隐藏域存入数值时用:hidden 控件.value=数值,取出接收数值时用:变量=hidden 控件.value。使用隐藏域的优点是实现简单, 隐藏域是标准的HTML 控件,不需要复杂的编程逻辑。隐藏域在页上存储和读取,不需要任何服务器资源,几乎所有浏览器和客户端设备都支持具有隐藏域的窗体。缺点是存储结构少,仅仅支持简单的数据结构,存储量少,因为它被存储在页面本身,所以无法存储较大的值,而且大的数据量会受到防火墙和代理的阻止。
  本回答被提问者和网友采纳
相似回答