Session是会话的意思,在各个网站开发语言环境里都有它的存在,在很多方面它有着不可替代的好处,但是如果使用不恰当,会造成很大的危险。下面就谈一下它的优缺点,供大家参考。高手就不要看了。
优点
  如果要在诸多Web页间传递一个变量,那么用 Session变量要比通过QueryString传递变量可使问题简化。
  要使WEb站点具有用户化,可以考虑使用 Session变量。你的站点的每位访问者都有用户化的经验,基于此,随着LDAP和诸如MS Site Server等的使用,已不必再将所有用户化过程置入 Session变量了,而这个用户化是取决于用户喜好的。
  你可以在任何想要使用的时候直接使用 session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放。
缺点
   Session变量和cookies是同一类型的。如果某用户将浏览器设置为不兼容任何cookie,那么该用户就无法使用这个 Session变量!
  当一个用户访问某页面时,每个 Session变量的运行环境便自动生成,这些 Session变量可在用户离开该页面后仍保留20分钟!(事实上,这些变量一直可保留至“timeout”。“timeout”的时间长短由Web服务器管理员设定。一些站点上的变量仅维持了3分钟,一些则为10分钟,还有一些则保留至默认值20分钟。)所以,如果在 Session中置入了较大的对象(如ADO recordsets,connections, 等等),那就有麻烦了!随着站点访问量的增大,服务器将会因此而无法正常运行!
  因为创建 Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理,所以,过度使用 session变量将会导致代码不可读而且不好维护。
  虽然“你可以在任何想要使用的时候直接使用 session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放”。但是,“谁”想到那儿呢?变量的含义是什么?这些都变得不很清晰。
总结
  使用 Session变量既有优点,又有缺点。就我个人的观点,最好少用,但在某些地方使用它们确实能使Web开发大大地简化。是否使用 Session变量完全取决于个人的需要,无论使用与否,都要事先考虑其优缺点。