问答题
阅读下列网站建设的技术说明,结合网页显示的效果图,根据要求回答问题1~问题3。
【说明】
某出版社用ASP实现了一个图书性能评价在线投票网页,主页文件名为“index.asp”,用IE打开该网页后的效果如图8-11所示。

程序中使用的Access数据表结构见表8-9。

【index.asp文档的内容】
<html>
<head>
<title>在线投票页面</title>
<%
Set cnn=Server.CreateObject("ADODB.Connection")
Set rec=Server.CerateObject("ADODB.Recordset")
cnn. ConnectionString="Driver={Microsoft Access Driver(*.mdb)};
Uid=;Pwd=;DBQ="&Server.MapPath("data.mdb")
cnn. {{U}}(1) {{/U}}
dim rsq1
nq1={{U}} (2) {{/U}}
rec.open rsq1,cnn,3,3
rec. movefirst()
%<>
</head>
<body>
<form name="piao"action="results.asp"method="post">
<table width="237" border=-"1" align="center">
<tr>
<td valign=top width="216”>
<p align="center">{{U}} (3) {{/U}}
</td>
</tr>
<tr>
<td valign=top width="216">
<font size="2">
{{U}}(4) {{/U}}
<% dim num
num=0
do while not rec. eof
num=num+1
%>
问答题 【问题1】从以下备选答案中为程序中(1)~(5)处空缺内容选择正确答案。(1)A.CreatObject() B.connect() C.go() D.open()(2)A."select*from data" B."Select*from vote" C.select*from daha D.Select* from vote(3)A.<pic border=-"0" stc="wlgcs.bmp"> B.<picture border="0" src="wlgcs. bmp"> C.<IMG onClick=over(this) title=放大 border=-"0" src="wlgcs.bmp"> D.<image border="0" src="wlgcs. bmp">(4)A.<p align="left">您认为《网络工程师考试考前冲刺预测卷及考点解析》对您的帮助有多大?</p> B.<p aliign="center">您认为《网络工程师考试考前冲刺预测卷及考点解析》对您的帮助有多大?</p> C.<t align="left">您认为《网络工程师考试考前冲刺预测卷及考点解析》对您的帮助有多大?</t> D.<t align="center">您认为《网络工程师考试考前冲刺预测卷及考点解析》对您的帮助有多大?</t>(5)
A.first() B.next()
C.movenext() D.nextrecord()
【正确答案】
【答案解析】(1)D,或open() (2)B,或"select*from vote" (3)C,或<IMG onClick=over(this) title=放大 border="0" src="wlgcs.bmp"> (4)A,或<p align="left">您认为《网络工程师考试考前冲刺预测卷及考点解析》对您的帮助有多大?</p> (5)C,或movenext() 这是一道要求读者掌握动态网页编程知识的分析理解题。本题的解答步骤如下。 ①从题干的index.asp文档中可以找到以下与数据库连接方面相关的ASP代码。 cnn.ConnectionString="Driver=-{Microsoft Access Driver(*.mdb)};Uid=;Pwd=;DBQ="& Server. MapPath ("data.mdb") ②由该语句可知,连接的后台数据库文件是dam.mdb,它是Microsoft的Access数据库。仔细阅读试题中已给出的index.asp源代码发现在这部分源代码中没有关于数据库连接的ASP语句,因此可判断(1)空缺处是关于数据库连接的内容,即使用cnn.open()语句完成数据库连接。 ③对于(2)空缺处前一行语句“dim rsq1”,它用于声明变量rsq1,并为其分配存储空间。由表8-9的名称为“vote数据表”可知,变量rsq1存储的是对vote数据表的查询结果,因此(2)空缺处的正确答案是选项B的"select *from vote"。 ④由(3)空缺处的4个选项内容大致可判断该空缺处用于加入图8-11中的图书图片。在网页中加入图片是通过<IMG onClick=over(this) title=放大>标签来实现,其语法格式是:<IMG onClick=over(this) title=放大 src=”图片文件名或URL">。因此该空缺处的正确答案是选项C的<IMG onClick=over(this) title=放大 border="0" src="wlgcs. bmp">。 ⑤由(4)空缺处的4个选项内容及图8-11中“您认为《网络工程师考试考前冲刺预测卷及考点解析》对您的帮助有多大?”语句的显示效果可知,“您认为《网络工程师考试考前冲刺预测卷及考点解析》对您的帮助有多大?”文字的显示效果是左对齐,且独处一个段。因此该空缺处的正确答案是选项A的<p align="left">您认为《网络工程师考试考前冲刺预测卷及考点解析》对您的帮助有多大?</p>。 ⑥由(5)空缺处的下一行语句“loop”用于转下一次while循环,因此需在(5)空缺处安排一条将数据集对象rec的指针移向下一条记录的语句,即该空缺处的正确答案是选项C的movenext()。
问答题
【问题2】
用户单击图8-11的“投票”按钮后,浏览器会执行什么操作?
【正确答案】
【答案解析】浏览器运行results.asp文件,并在当前窗口中显示运行结果 这是一道要求读者掌握动态网页运行结果的分析理解题。本题的解答思路是,仔细阅读index.asp文档的ASP代码,查找出与“投票”按钮相关的源代码如下。 <input name="submit00" type="submit" id="submit00" value=“投票”> 该段源代码位于表单声明语句<form name="piao" action="results.asp" method="post">中,由此表单声明语句可知用户单击[投票]按钮后,浏览器将运行results. asp文件,并在当前窗口中显示出投票结果。
问答题
【问题3】
为了防止重复投票,图8-11在线投票页面的过滤机制拟采用Cookies对象,而不使用Session对象。这种做法是否妥当?请用150字以内的文字简要说明理由。
【正确答案】
【答案解析】妥当。因为Session对象将浏览者信息记录在服务器端,其生命周期消失于浏览者在一定时间内没有再与服务器端联系,或客户浏览器关闭。而Cookies对象则会借助浏览器的Cookies功能将信息记录在客户端,这些相关信息会被重复读取和利用,同时也可避免服务器的系统资源浪费 这是一道要求读者掌握Cookies对象与Session对象区别的分析理解题。本题所涉及的知识点如下。 ASP提供了请求(Request)对象、响应(Response)对象、工作阶段(Session)对象、应用程序(Application)对象、服务器(Server)对象、Cookies对象等6个内嵌对象,无须建立就可以在指令中直接访问和使用它们。其中的服务器(Server)对象可加载其他组件,从而可以进一步扩展ASP的功能。 Session对象是一个将浏览者信息记录在服务器端的对象,每一个连接者都可以在服务器端拥有属于自己的独立Session对象。由于Session对象的生命周期消失于浏览者在一定时间内没有再与服务器端联系,或者是浏览者的浏览器关闭,因此这两个因素会使防止重复投票过滤机制失效,而出现做票的漏洞。 Cookies对象则会借助浏览器提供的Cookies功能将信息记录在客户端,也就是说每个浏览者的相关信息记录在自己的机器中。当浏览者的浏览器关闭,或是在一定时间内没有再与服务器端联系,这些信息都不会消失。当浏览器再度被启用时,这些相关信息会被再度读取和利用。 防止重复投票过滤机制使用Cookies对象还可以避免Web服务器的系统资源浪费问题。因为使用 Cookies对象的浏览者信息记录在客户端自己的机器中,而Session对象的浏览者信息记录在服务器端。 另外说明一点,在实际应用时,使用Cookies对象只能减少做票的行为发生。因为浏览者可以通过清除其浏览器的Cookies文件而重新投票,或者是使用不同的浏览器进行重复投票。如果利用服务器数据库记录连接者的IP地址,并将已连接投票的IP地址暂时锁定,则可以进一步减少重复投票的现象。