阅读本文章之前的准备 【相关文章:C++资源之不完全导引 [下]】
【扩展阅读:搭建WAP应用开发环境 】 懂得asp/asp.net编程 了解asp/asp.net的session模型 了解asp.net web应用程序模型 了解asp.net web应用程序配置文件web.config的作用、意义及使用方法 了解internet information services(以下简称iis)的基本使用方法 了解如何在microsoft sql server中创建一个数据库。session模型简介 【扩展信息:日历】
阅读本文章前,需要读者对以下知识有所了解。否则,阅读过程中会在相应的内容上遇到不同程度的问题。
session是什么呢?简单来说就是服务器给客户端的一个编号。当一台www服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台www服务器建立连接时,他就与这个服务器建立了一个session,同时服务器会自动为其分配一个sessionid,用以标识这个用户的唯一身份。这个sessionid是由www服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。
这个唯一的sessionid是有很大的实际意义的。当一个用户提交了表单时,浏览器会将用户的sessionid自动附加在http头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给sessionid所对应的用户。试想,如果没有sessionid,当有两个用户同时进行注册时,服务器怎样才能知道到底是哪个用户提交了哪个表单呢。当然,sessionid还有很多其他的作用,我们会在后面提及到。
除了sessionid,在每个session中还包含很多其他信息。但是对于编写asp或asp.net的程序与来说,最有用的还是可以通过访问asp/asp.net的内置session对象,为每个用户存储各自的信息。例如我们想了解一下访问我们网站的用户浏览了几个页面,我们可能在用户可能访问到每个的页面中加入:
<% if session("pageviewed") = ""then session("pageviewed") = 1 else session("pageviewed") = session("pageviewed") + 1 end if %>通过以下这句话可以让用户得知自己浏览了几个页面:
<% response.write("you have viewed " & session("pageviewed") & " pages") %>可能有些有些读者会问:这个看似像是数组的session(“..”)是哪里来的?需要我定义吗?实际上,这个session对象是具有asp解释能力的的www服务器的内建对象。也就是说asp的系统中已经给你定义好了这个对象,你只需要使用就行了。其中session(“..”)中的..就好像变量名称,session(“..”)=$$$中的$$$就是变量的值了。你只需要写上句话,在这个用户的每个页面中都可以访问..变量中的值了。
其实asp一共内建了7个对象,有session、application、cookie、response、request、server等。在其他的服务器端脚本语言如jsp、php等中也有其类似的对象,只是叫法或者使用方法上不太一样。
asp session的功能的缺陷
目前asp的开发人员都正在使用session这一强大的功能,但是在他们使用的过程中却发现了asp session有以下缺陷:
进程依赖性:asp session状态存于iis的进程中,也就是inetinfo.exe这个程序。... 下一页