zoukankan      html  css  js  c++  java
  • ASP.NET页面间传值

    页面间不同的传值方式,对应着不同的打开新页面的方式:

    共有QueryString,session,cookies,application,server.Transfer,respose.redictor这6种方式

    1.URL附加字段(相当于get的表单提交)

      协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志

    这种方式只要求是通过URL打开页面,不限于打开页面的方式。无论是C#的Redirect方法还是JavaScript的window对象的方法。

    JavaScript可以通过location.href得到当前页面访问路径,从而获取对应参数。

    C#可以通过QueryString获取参数。

    缺点:保密性差 ;   长度有限

    优点:不消耗服务器资源;  

    2.window.open()

      window是一个javascript对象,可以用它的open方法。

      当使用window.open()打开新页面时,浏览器会认为这两个窗口之间有一种打开与被打开的关系,所以在被打开的新窗口中在当前窗口的window对象中有一个window.opener 属性,这个值里面放着打开窗口的引用,所以可以获得这个值,进而引用上一页面内的对象的值。

      优点:取值方便.只要window.opener指向父窗口,就可以访问所有对象. 不仅可以访问值,还可以访问父窗口的方法.值长度无限制. 

      缺点:两窗口要存在着关系.就是利用window.open打开的窗口.不能跨域.

    3.Server.Transfer传值:

      通过C#的Server.Transfer()打开新页面,可以在新页面通过Context.Handler获得上个页面实例化的句柄,进而获取上个页面的对象

    4.Cookie对象变量:

    Cookie是针对每一个用户而言的,是存放在客户端的 ,Cookie的使用要配合ASP.NET内置对象Request来使用

    5.Session对象变量:

    Session也是针对每一个用户而言的,是存放在服务器端的 ,Session不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed 后,变量才会消失

    6.Application对象变量:
     Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock

    优缺点

     QueryString  传递一个或多个安全性要求不高或是结构简单的数值。但是对于传递数组或对象的话,就不能用这个方法了 
    session(viewstate) 简单,但易丢失 作用于用户个人,过量的存储会导致服务器内存资源的耗尽。  
    application 对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock 
    cookie 简单,但可能不支持,可能被伪造 Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用 
    input ttype="hidden" 简单,可能被伪造 
    url参数简单,显示于地址栏,长度有限 
    Server.Transfer  把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流 
    数据库稳定,安全,但性能相对弱

  • 相关阅读:
    JVM(5)之 GC之标记
    JVM(4)之 使用MAT排查堆溢出
    JVM(3) 之 内存分配与回收策略
    JVM(2)之 JAVA堆
    JVM(1)之 JAVA栈
    MySQL查询时报错Illegal mix of collations
    struts2 基础学习
    python3.4 + pycharm安装与使用
    Pycharm激活
    IntelliJ IDEA 2018.2激活
  • 原文地址:https://www.cnblogs.com/dengquan/p/9289543.html
Copyright © 2011-2022 走看看