aspx里构造函数里无法使用session,需要重写一个方法放在load里面就能正常使用session了

1.构造一个函数,继承System.Web.UI.Page
   /// <summary>
    /// Brand的构造函数
    /// </summary>
    public class CBrandBaseBage : System.Web.UI.Page
    {
       protected string BrandId;

       public CBrandBaseBage()
       {
            //ShowPage(); showpage给子类用,如果子类用session[""]=""会提示page里缺少httpmodule的statues
            //this.Init += new EventHandler(Page_Init);
            this.Load += new EventHandler(BasePage_Load);
        }
       private void BasePage_Load(object sender, EventArgs e)
       {
           ShowPage();//showpage要放在load里面才能正常使用session
           //判断是否存在该品牌BrandId

       }
       //抛出一个方法给子类重写
       protected virtual void ShowPage()
       {
           //虚方法代码
       }

2.子页面继承

 //父类虚方法,在Init之前执行
        protected override void ShowPage()
        {
            //base.ShowPage();
            Id = Function.SqlFilter(DtRequest.GetQueryInt("ID", 0).ToString());
            if (Id == "0") return;
            if (string.IsNullOrEmpty(Id)) return;
            if (System.Web.HttpContext.Current == null) return;
            HttpContext.Current.Session["bid"] = Id;
            HttpContext.Current.Session.Timeout = 45;
            Function.WriteCookie("bid", "ZT", Id);
        }

  

时间: 2024-10-27 13:51:38

aspx里构造函数里无法使用session,需要重写一个方法放在load里面就能正常使用session了的相关文章

应用程序状态管理①隐藏表单字段②cookie③session④URL重写

应用程序状态管理:服务器连接时无状态的,每次发送的请求对于服务器都是新的,而不知道两次是否是同一人发送的,为了解决应用程序状态,有4个常用方法:表单隐藏字段:动态生成的才有效cookie:记录在浏览器端,键值对,可见,不安全session:记录在服务器端,也是键值对,服务器维护需要大量资源,可以设定有效时限URL重写:在用户禁用cookie时,发送地址包含有会话ID Cookie是web服务器发送到客户端浏览器的简短文本信息,在第一次访问服务器后就由服务器向客户端浏览器发送,以后再访问同一个站点

java父类调用被子类重写的方法

[转][原文] 1.如果父类构造器调用了被子类重写的方法,且通过子类构造函数创建子类对象,调用了这个父类构造器(无论显示还是隐式),就会导致父类在构造时实际上调用的是子类覆盖的方法(你需要了解java继承中的初始化机制). 例子: [java] view plain copy public abstract class Father { public Father() { display(); } public void display() { System.out.println("Fathe

重载、重写、方法相同

首先一个方法对外暴露的信息有以下几个-- 权限.是否静态.是否final.返回类型.方法签名.异常类型. 其中,按照Effective Java中的约定,方法签名包括了方法名和参数列表. 重写指的是父类中的方法无法满足子类的需求,子类通过重写一个方法的方式来覆盖父类的方法. 而重写方法的某个信息需要与被重写方法的那个信息一致,才能让编译器知道,方法重写发生了. 那个是信息就是方法签名,子类的方法会去重写(override)父类中与其方法签名一致的方法, 方法签名一致,指的是方法名一致且参数类型.

The method load(Class, Serializable) in the type Session is not applicable for the arguments (Class&lt;

Transaction transaction = session.beginTransaction(); //load是通过主键属性,获取对象的实例 Employee employee  =(Employee) session.load(Employee.class, 1); employee.setName("demo"); transaction.commit(); session.close(); 报错The method load(Class, Serializable) i

linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache同步SESSION的几种方法

一.编译环境的准备 yum install gcc  yum install gcc-c++ libstdc++-devel  yum install zlib-devel 二.源码包准备 wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gzwget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz 三.安装与配置 1.安装libevent tar zx

条款十二: 尽量使用初始化而不要在构造函数里赋值

看这样一个模板,它生成的类使得一个名字和一个t类型的对象的指针关联起来. template<class t> class namedptr { public: namedptr(const string& initname, t *initptr); ... private: string name; t *ptr; }; 在写namedptr构造函数时,必须将参数值传给相应的数据成员.有两种方法来实现.第一种方法是使用成员初始化列表: template<class t>

cookie session URL重写 与考试

状态管理.Cookie.Session.URL重写 HTTP协议:无状态的连接(每次连接都是新的请求)1.隐藏字段 <input type="hidden" name="session" value=""/> 在响应中进行操作2.Cookie 保存到客户端3.Session 保存到服务器4.用户禁用Cookie:使用URL重写 在URL后加上jsessionid=123; Cookie原理1.数据以"键-值"对的形

C#构造函数问题,重载,重写,覆盖的区别

在C#当中,程序员写的每一个类在没写其它构造函数的情况下,都会默认有一个无参构造函数. 代码如下: class DemoClass { public string Name { set; get; } } DemoClass demoOb = new DemoClass(); 如果程序员写了其它的构造函数,那类本身默认的无参构造函数会自动消失,所以更谈不上构造函数重载. 代码如下: class DemoClass { public string Name { set; get; } //添加一个

Cookie / Session / URL重写

Cookie //创建一个Cookie对象 Cookie cookie = new Cookie("username","JACK"); //在客户端存储的时间(生命周期)单位是秒 7天 7*24*60*60 //如果这里设置为0 就表示客户端不保存该cookie 即临时cookie //如果设置为-1 就表示客户端关闭之后就删除该cookie 也可以称之为临时cookie cookie.setMaxAge(-1); //设置cookie在客户端存放的路径 如果不设