枫林在线论坛精华区>>程序设计
[58912] 主题: ASP设计常见问题及解答精要
作者: leaflet (Leaf)
标题: ASP设计常见问题及解答精要[转载]
来自: 218.80.*.*
发贴时间: 2003年05月21日 21:05:58
长度: 6966字
出处:电脑爱好者

作者:织秋一叶

       作为微软推出的网页与数据库解决方案,ASP由于有微软得天独厚
的操作系统等技术后盾支持,因此得到了迅速的发展,并且正受到越来越
多的欢迎,在目前在电子商务网站的建设中有很多都使用ASP来编写程序。


       近来有很多的读者向我们咨询学习ASP的方法和在学习中遇到的一
些问题,其中有一些是初学者经常遇到和面临的问题。为了让读者在学习
ASP的过程中加深对ASP的了解,并能够有效地解决遇到的问题,我们特别
收集了比较有代表性的一些问题,在此列举出来并一一给予解答,希望能
在这有限的篇幅里为你学习ASP助一臂之力。


1、问题:ASP是一种编程语言吗?

  答:ASP不是编程语言,而是一种开发环境。ASP提供了一个在服务器
端执行指令的环境,它利用了特殊的符号<%和%>来区分HTML与必须
经过服务器翻译才能送往客户端的命令。它可以执行的指令包括HTML语言
,Microsoft VBScript和Microsoft Jscript等,因此可以制作出功能强大
的Web应用程序。

2、问题:在Web服务器上容纳多个Web站点,能使用PWS吗?

  答:在PWS上只能容纳一个Web站点。为了在相同的计算机上容纳多个
Web站点,需要使用Windows NT Server或Windows 2000 Server/Professi
onal和IIS。

3、问题:如何使用6个内置ASP对象?

  答:ASP提供了多个内嵌对象,无须建立就可以在指令中直接访问和使
用它们,这六个对象主要有:请求(Request)对象、响应(Response)对象、
工作阶段(Session)对象、应用程序(Application)对象、服务器(Server)
对象、Cookies对象,这六个对象中的服务器(Server)对象可加载其他组件
,这可以扩展ASP的功能。

  使用Server.CreateObject所建立的对象,它的生命周期在它建立时开
始,在它所在的网页程序结束时结束。如果想要让该对象跨网页使用,则
可以用Session对象来记录Server.CreateObject所建立的对象。

4、问题:为什么在使用Response.Redirect的时候出现以下错误:“标题
错误,已将HTTP标题写入用户端浏览器,对任何HTTP的标题所作的修改必
须在写入页内容之前”?

  答:Response.Redirect可以将网页转移至另外的网页上,使用的语法
结构是这样的:Response.Redirect网址,其中网址可以是相对地址或绝对
地址,但在IIS4.0使用与在IIS5.0使用有所不同。在IIS4.0转移网页须在
任何数据都未输出至客户端浏览器之前进行,否则会发生错误。这里所谓
的数据包括HTML的卷标,例如:< HTML>,< BODY>等,而在
IIS5.0中已有所改进,在IIS5.0的默认情况下缓冲区是开启的,这样的错
误不再产生。

  在Response对象中有一Buffer属性,该属性可以设置网站在处理ASP之
后是否马上将数据传送到客户端,但设置该属性也必须在传送任何数据给
客户端之前。

  为保险起见,无论采用何种ASP运行平台,在页面的开始写上< % 
Response.Buffer=True %>,将缓冲区设置为开启,这样的错误就不会
发生了。

5、问题:缓冲输出对于网页传输有没有影响?

  答:在比较大的Web页中,第一部分在浏览器中出现可能会有一些延迟
,但是加载整个Web页的速度比不用缓冲要快。

6、问题:在没有表单提交时查询字符串的值是否可以使用Request.Query
String集合?

  答:Request对象用于读取浏览器的数据,它除了可以读取表单字段的
内容,还可以用来读取附带在网址后面的参数,无论请求字符串怎样添加
到链接地址中对Request来说都没有什么不同。使用get方法提交一个表单
,还是跟随一个附加查询串的链接查询字符串中所有的值,都可以使用Re
quest.QueryString集合。

7、问题:我在ASP脚本中写了很多的注释,这会不会影响服务器处理ASP文
件的速度?

  答:在编写程序的过程中,作注释是良好的习惯。经国外技术人员测
试,带有过多注释的ASP文件整体性能仅仅会下降0.1%,也就是说在实际应
用中基本上不会感觉到服务器的性能下降的。

8、问题:需不需要在每个ASP文件的开头使用< % @LANGUAGE=VBScrip
t % >?

答:在每个ASP文件的开头使用< % @LANGUAGE=VBScript %>代码是
用来通知服务器现在使用VBScript来编写程序,但因为ASP的预设程序语言
是VBScript,因此忽略这样代码也可以正常运行,但如果程序的脚本语言
是JavaScrip,就需要在程序第一行指明所用的脚本语言。

9、问题:我有没有必要在每一个ASP文件中使用“Option Explicit”? 


  答:在实际应用中,VBScript变量的概念已经模糊了,允许直接使用
变量,而不用Dim声明变量,但这并不是一个好习惯,容易造成程序错误,
因为可能重复定义一个变量。我们可以在程序中使用Option Explicit语句
,这样在使用一个变量的时候,必须先声明它,如果使用了没有经过声明
的变量,运行时,程序就会出错。

  实践证明,ASP文件中使用“Option Explicit”可以使得程序出错机
会降到最少,并且会大大提升整体性能。

10、问题:运行ASP文件时有什么安全措施?

  答:ASP提供了很好的代码保护机制,所有的ASP代码都在服务器端执
行而只返回给客户端代码执行结果。但仍不排除恶意人士对Web服务器的刻
意破坏,所以在编写ASP文件时更要注意安全问题。

  虽然在ASP中引入文件以inc作为扩展名,在这里仍建议以ASP作为引文
件的扩展名。当这些代码在安全机制不好的Web Server上运行时,只需在
地址栏上输入引入文件的地址(inc为扩展名),就可以浏览该引入文件的内
容,这是由于在Web Server上,如果没有定义好解析某类型(比如inc)的
动态连接库时,该文件以源码方式显示。

  另外,不要把数据库文件放在网站结构内部,这样,当恶意人士获取
数据库路径后,就可以轻易获取该数据库,进而肆意更改数据库内容。比
较好的做法是,为数据库建立数据源名称DSN(Date Source Name),在D
SN中存储了有关连接到指定数据提供者的信息,包括:“数据库的物理位
置,用于访问数据库的驱动程序的类型,访问数据库的驱动程序所需要的
任何其他参数”,在进行数据库访问时可以直接访问该DSN。

11、问题:评介Web数据库管理系统时,应该考虑哪些问题?

  答:在评价一个Web数据库管理系统时,必须考虑到三方面的问题:多
用户问题;所建立的Web数据库应该是关系型的;数据库的安全性问题。


12、问题:ADO是什么,它是如何操作数据库的?

  答:ADO的全名是ActiveX Data Object(ActiveX数据对象),是一组优
化的访问数据库的专用对象集,它为ASP提供了完整的站点数据库解决方案
,它作用在服务器端,提供含有数据库信息的主页内容,通过执行SQL命令
,让用户在浏览器画面中输入,更新和删除站点数据库的信息。

  ADO主要包括Connection,Recordset和Command三个对象, 它们的主要
功能如下:

  ·Connection对象:负责打开或连接数据库文件;

  ·Recordset对象:存取数据库的内容;

  ·Command对象:对数据库下达行动查询指令,以及执行SQL Server的
存储过程。

13、问题:使用Recordset对象和Command对象来访问数据库的区别在哪里


  答:Recordset对象会要求数据库传送所有的数据,那么数据量很大的
时候就会造成网络的阻塞和数据库服务器的负荷过重,因此整体的执行效
率会降低。

利用Command对象直接调用SQL语句,所执行的操作是在数据库服务器中进
行的,显然会有很高的执行效率。特别是在服务器端执行创建完成的存储
过程,可以降低网络流量,另外,由于事先进行了语法分析,可以提高整
体的执行效率。

14、问题:是否必须为每一个Recordset对象创建一个Connection对象?


  答:可以同时对不同的Recordset对象使用相同的Connection对象,以
节省资源。

15、问题:什么是数据库管理系统(DBMS)?

  答:数据库为了保证存储在其中的数据的安全和一致,必须有一组软
件来完成相应的管理任务,这组软件就是数据库管理系统,简称DBMS,DB
MS随系统的不同而不同,但是一般来说,它应该包括以下几方面的内容:


  数据库描述功能:定义数据库的全局逻辑结构,局部逻辑结构和其他
各种数据库对象;

  数据库管理功能:包括系统配置与管理,数据存取与更新管理,数据
完整性管理和数据安全性管理;

  数据库的查询和操纵功能:该功能包括数据库检索和修改;

  数据库维护功能:包括数据引入引出管理,数据库结构维护,数据恢
复功能和性能监测。

  为了提高数据库系统的开发效率,现代数据库系统除了DBMS之外,还
提供了各种支持应用开发的工具。

16、问题:当前流行的WEB数据库管理系统有哪些?

  答:当前流行的Web数据库管理系统有微软的SQL Server、Oracle、D
B2、Sybase,小规模的企业多使用Access。
 
========== * * * * * ==========
返回