• 状态存储管理 encode,decode,transfer


    ASP.NET状态存储管理九大兵器之二(查询字苻串)    
      查询字苻串是追加在URL后的数据(也是我常用的)  
      例如:  
      http://www.cnblogs.com/aierong/admin/EditPosts.aspx?opt=abc  
      这里?后的opt=1就是查询字符串  
      当我们在一页面向另一页面传递数据时可以用此方法。  
      使用如下方法接到数据:  
      string   str=Request.QueryString[“opt“]  
      这样str就等于“abc“  
      这里我们传递的是英文字符,要是传递中文字符,我们得进行编码和解吗:  
      傳送時用Server.UrlEncode方法編碼,接收時用Server.UrlDecode解碼.  
      例如:  
      传递:  
      string   url=“http://www.cnblogs.com/aierong/admin/EditPosts.aspx?opt=“+Server.UrlEncode(“我们“);  
      Response.Redirect(url);  
      接收:  
      string   str=Server.UrlDecode(Request.QueryString[“opt“]);  
      这样str就等于“我们“  
      当然我们还有一省事的方法:  
      在web.config中修改globalization节为  
      <globalization    
                              requestEncoding="gb2312"    
                              responseEncoding="gb2312"    
      />


    ASP.NET状态存储管理九大兵器之三(隐藏的窗体字段)    
      利用隐藏的窗体字段在客户机和服务器间传递数据也是可行的  
      例如:  
      <input   type="hidden"   name="aa"   value="abc">  
      string   str=Request.Form["aa"];  
      str就等于“abc“  
      总结,最好不要放安全性高的数据,例如不要传递密码,银行卡号码等数据  
       
      ASP.NET状态存储管理九大兵器之四(暂存状态)    
      ASP.NET提供一个类System.Web.HttpContext   ,用来表示上下文,此对象有一个属性Items    
      暂存状态就是利用HttpContext.Items属性来存放数据  
      MSDN中HttpContext.Items属性的解释是这样的:获取可用于在   HTTP   请求过程中在   IHttpModule   和   IHttpHandler   之间组织和共享数据的键值  
      HttpContext.Items属性中可以存放任何类型数据,无论这个属性中存放什么数据,都会在请求处理结束后自动清除,这就是暂存状态,数据的存放时间非常短.  
         
       
      //例如:  
      //我们有一页面A.ASPX,有一按钮ID:Submit,点按钮把页面转向b.aspx页面  
      public   void   Submit_Click(Object   sender,   EventArgs   E)  
      {  
              SqlConnection   myConnection   =   new   SqlConnection("server=(local)NetSDK;database=pubs;Trusted_Connection=yes");  
              SqlDataAdapter   myCommand   =   new   SqlDataAdapter("select   *   from   Authors",   myConnection);  
              DataSet   ds   =   new   DataSet();  
              myCommand.Fill(ds,   "Authors");  
              //把数据放入暂存中  
              Context.Items["MyData"]   =ds;  
              Server.Transfer(b.aspx);          
      }  
       
      //b.aspx页面中  
      public   void   Page_Load(Object   sender,   EventArgs   E)  
          {  
              if   (!IsPostBack)  
              {  
              //取得暂存数据  
              DataSet   ds=(DataSet)Context.Items["MyData"];  
              //其它数据过程  
  • 相关阅读:
    【流媒体】Nginx+nginxhttpflvmodule流媒体+鉴权
    【Linux】Tess4j识别pdf报错libgs.so无法加载
    【Java】tess4j文字识别
    【Spring专场】「MVC容器」不看源码就带你认识核心流程以及运作原理
    【Spring专场】「AOP容器」不看源码就带你认识核心流程以及运作原理
    【Spring专场】「IOC容器」不看源码就带你认识核心流程以及运作原理
    【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—CuratorFramework(基础篇)
    🍃【Spring专题】「技术原理」为大家介绍一下Spring中的Ant路径匹配工具组件AntPathMatcher
    Wireshark安装入门及抓取网站用户名密码
    手把手教你用 wireshark 抓包
  • 原文地址:https://www.cnblogs.com/zqmingok/p/1528906.html
Copyright © 2020-2023  润新知