问答题 阅读以下技术说明,根据要求回答问题。
[说明]
某公司使用ASP开发了商务网站,购物车是网站中一个重要的组件。

问答题 设计购物车模块的核心思想是将顾客订购的物品进行临时保存,其中利用______可以将订购信息临时存在Web服务器内存中,利用______可以将订购信息临时存于客户端硬盘上,另外还可以将订购信息临时存在______中。
【正确答案】session cookie 数据库
【答案解析】从超文本传输协议(HTTP)的处理过程可以看出,HTTP是一个无状态的仂、议。因为:①服务器每次从客户机收到一个请求时,就处理这个请求,并发回被请求的文件,但并不保存该请求的任何信息,来自该客户机的下一个请求被当做与之前的请求无关的新请求处理;②当浏览器从一个页面跳转到另一个页面时,前一个页面上的状态信息没有保存下来,不能将其带到另一个页面。为了解决在不同网页之间传递参数这一问题,常见的方法有4种:①session;②ccookie;③数据库;④AJAX。
其中,session为当前用户会话提供信息,还提供对可用于存储信息的会话范围的缓存的访问,以及控制如何管理会话的方法。其关键特性是:将状态信息保存在服务器缓存中(存在数据量受限问题),与会话相关,在会话的整个生存期中存在,不会被主动丢弃,不被序列化,不发生服务器与客户端的数据传输,具有较高的安全性。例如,电子商务网站的购物车,由于购物车信息与会话相关,且安全性很重要,因此一般使用session对象。
Cookie提供了一种在Web应用程序中存储用户特定信息的方法。其关键特性是:将状态信息存储于客户端硬盘中(存在安全性和状态过期等问题),与用户相关,在一定时间内持久化存储,可以跨浏览器共享数据,需要被序列化,发生服务器与客户端的数据传输。例如,某些网站使用cookie实现“记住我”功能。
可以将待传递的参数保存在数据库中(但存在数据的结构化问题及存取速度问题),当需要再次使用时,到数据库中取出使用。
AJAX是以局部更新页面的方式实现参数的传递,是一种独立于Web服务器软件的浏览器技术。可使因特网应用程序更小、更快、更友好。
依题意,设计购物车模块的核心思想是将顾客订购的物品进行临时保存,其中可以利用session将订购信息临时存在Web服务器内存中;可以利用cookie将订购信息临时存于客户端硬盘上。另外,还可以将订购信息临时存在数据库中。它一般是利用局部临时表来实现的,购物车数据放在局部临时表中,数据库为每一个局部临时表分配一个唯一的ID。
问答题 1.在ASP内置对象中,有两个对象与cookie操作有关。其中______用来写cookie内容,______用来读cookie内容。
[备选答案]
A.application B.asperror C.response
D.request E.session F.server
2.在ASP内置组件中,使用______可以在主页上交替地变换广告,使用______可以读写服务器文件。
[备选答案]
A.Browser Capabilities B.File Access C.AD Rotator
D.Content Linking E.Database Access
【正确答案】C(或response) D(或request)
C(或AD Rotator) B(或FileAccess)
【答案解析】在ASP内置对象中,request和response对象与cookie操作有关。其中,request.cookie集合是一系列cookie,从客户端与HTTP request一起发送到Web服务器;反过来,使用response.cookie可以把cookie从服务器发送到客户端。
在ASP内置组件中,使用AD Rotator可以在主页上交替地变换广告,使用File Access可以读写服务器文件。
问答题 该网站购物车模块页面脚本语言是JavaScript,用户订购信息临时存在cookie中,下面是购物车页面中读取cookie值的函数,请完成该程序。
<script language="javascript">
……
function readCookie (name)
{ var cookieValue="";
var search=______+"=";
if (document.cookie. ______>0)
{ start=document.cookie.indexOf(search);
if(start !=-1)
{ start += search.length;
end=document.cookie.indexOf(";", start);
if(end==-1)
end=document.cookie.length;
cookieValue=document. cookie. substring(______,______)
}
}
return ______;
……
</script>
【正确答案】name length start end cookieValue
【答案解析】依题意,通读整段程序代码可知,首先应将函数的name参数传递给search变量,即(8)空缺处应填入name。
接着应判断cookie是否有保存了用户的相关订购信息,若有,此时cookie这一文本串句柄的长度为非0,因此(9)空缺处应填入length。
应该将cookie当前保存的用户订购信息从头到尾全部传递给变量cookieValue,并作为函数的读取结果进行返回操作。因此(10)~(12)空缺处应分别填入start、end、cookieValue。