session 相对于每个登录的用户,application 相对于整个web应用

解决方案 »

  1.   

    session是为单个用户保存的变量,对单个用户有效.
    当一个用户登陆时,可以将使用session("id")保存他的ID,并触发session_onstart事件,服务器通过session("id")识别登陆用户.例如,调出用户的资料:
    id=session("id")
    set cn=server.createobject("adodb.connection")
    cn.open "driver={Microsoft Access Driver (*.mdb)};dbq="&server.mappath("数据库.mdb")
    set cn1=server.createobject("adodb.recordset")
    cn1.open "select * from a where id='"&id&"'",cn,1,1
    '服务器通过session识别用户,并调出该用户的资料
    application是为所有用户保存的变量,对所有用户有效.
    application广泛应用在聊天室里,application针对的是所有用户. 
      

  2.   

    Session针对单个访问者,也就是每个访问者的Session都是独立的,保存在Session中的值都不相同   
      Application针对整个应用程序,保存在Application变量中的值对所以访问者都是一样的,因为他们用的都是同一个对象。 
      

  3.   

    形象一点理解: session里面的东西只有你自己看得到; Application中的东西所有人都看得到..他们的作用域是不一样的, Application的作用域最大! 是整个Web应用. Sessiond的作用域是针对一个个访问.
      

  4.   

    关于session的原理问题,用户每创建一个session,就会在服务器端保留一份拷贝,如果浏览器支持cookie的话,会在客户端生成一个cookie,里面放的是这个session的ID,以后用户的每次请求都会带着这个ID的参数(这个不需要用户和程序员管,浏览器自己的事),如果这个ID在服务器端找到了,你就可以对它读取和写入内容,所以一个session只可能针对一台电脑(因为别人不可能知道你的sessionID),即一个用户,每个用户在服务器端都只能访问到自己的session。而application则是共享的数据,人人都可以读取和写入值,不进行ID验证,和session是有本质区别的。