日期:2013-01-21  浏览次数:20788 次

介绍  

ASP(Active Server Pages)是一种服务器方的脚本技术,它动态地定位和发送由用户请求的信息。为了成功地使用ASP,你应该在开发和管理你的项目的实践中,使用计划。本文是为系统管理员,网络作家,及计划或考虑使用ASP的网络应用程序开发人员而编写的。本文中的信息将会帮助你计划开发和管理安全的,组织良好,易于理解的ASP应用程序。

ASP或浏览器脚本  


给定对一个脚本解决方案的需求后,你将会想要判断是编写ASP页面还是编写基于浏览器的脚本,并且你还会想要在开发过程的初期就进行这一判断。

计划使用ASP,当你需要:

定制带有从后端资源收集并进行挑选以满足用户的需要的信息的网页。
收集由站点访问者通过HTML表单提交的数据。
发送为特定种类和版本的浏览器制作的页面。
为了避免在你的服务器上放置不必要的负担,为这样的任务如确认用户提交的数据,计算,及简单条件输出的选择计划使用基于浏览器的脚本。

本文包括ASP应用程序计划的三个方面:

解决常见问题
组织ASP应用程序目录和文件
为ASP脚本设置标准
ASP开发的其他方面,如性能和可靠性,将在以后的文章中介绍。

尽管ASP页面很有用,但是知道开发和配置他们的一些风险是很重要的。如果ASP页面连接的用户带有包含有关怎样定位和访问企业数据的信息的后端数据资源,那么这个页面也可能包含你的企业商业规则,顾客数据,以及其他敏感信息。结果,知道存在将敏感信息显露给不被许可的人的潜在可能性是很重要的。当开发和配置ASP时,可能会产生错误而允许不应该访问的人访问到这个信息。此外,如果你没有使用好的开发和管理实践,你可能会由于不断产生性能和可靠性问题,满意的用户越来越少儿不得不终止。

ASP管理计划  


ASP应用程序存储在你的文件系统中。一个ASP应用程序是ASP页面的一个集合连同所包含的HTML页面和这个应用程序所需要的组件。当你定义一个应用程序时,你利用Internet服务管理器来制定这个应用程序在网站中的起始目录。

这一部分提供目录结构的一个模板和指导,以及ASP应用程序的访问权限。下面的模板将帮助你建立一个ASP应用程序组织模型,实现一致性,可靠性和安全性,而不管你的ASP应用程序有多大多复杂。

为下面列表中目录和文件给定的组织和属性比使用的名字更重要。

/Application_Name

Default.htm
Global.asa
/Classes
/Content
/ASP
*.asp
/HTM
*.htm
/Images
/Media
/Themes

/Data (不在站点目录中)
/DLL (不在站点目录中)
/Helper_Files (不在站点目录中)

应用程序根目录 应用程序根目录的名字因该清楚地表达这个站点的主题。例如,用于金融搜索的应用程序可以命名为/Financial_Research。避免使用可能被误认为是一个站点的边准子目录的应用程序根目录名,如/Media or /Content。还有,避免使用读起来像是部分数字或代码的名字,如/FR98346A。

为了避免对产品站点产生负面影响,一定要在一个开发测试环境中开发这个应用程序。实现这个的一个简单方法是在IIS HTTP根目录/InetPub/wwwroot下开发新的应用程序,然后将他们拷贝到产品环境中InetPub/wwwroot下的相同目录中,如果这些目录已经存在。

注意 /InetPub/wwwroot时所有Microsoft® Visual InterDev™ 和 Microsoft FrontPage™网络文档的主位置。如果将一个网络应用程序迁移到一个存储位置而不是/InetPub/wwwroot下,这些工具将不能访问它。

每个应用程序的根目录应该至少包含如下这些文件:

Default.htm 或 Default.asp
Global.asa
Default.htm 或 Default.asp应该是应用程序的缺省主页,并且服务器默认值应该利用Internet服务管理器据此设置。采取这两个步骤使用户能够通过键入服务器地址加上应用程序根目录的名字而一致地在你的公司中找到站点。例如,用户可以通过输入msdn.microsoft.com访问MSDN Online。输入主页的名字是不必要的。

文件Global.asa指定事件脚本,声明拥有应用程序或对话域的对象,及声明类型库。例如,Global.asa脚本使application- 和session-scope变量在启动时可用。Global.asa必须存储在应用程序根目录中。

/Classes /Classes目录存储由应用程序使用的所有Java类,并请求执行权限。

/Content /Content保存所有页面(除Default.htm以外)及可能被站点的用户直接取还的媒体。

/ASP /Content 的/ASP子目录包含带有服务器端脚本的所有页面。这个目录必须包含执行权限,以便这个ASP能够执行这个页面脚本。不要向这个目录分配读权限,因为.asp页面可能包含有关商业规则及到数据资源的访问权的敏感信息。将所有的脚本页面存储在这里简化了权限管理和站点安全性。

/HTM /Content 的/HTM子目录包含所有只包含标准HTML的页面。这个目录是只读的,并且没有执行权限。包含存储在这里的服务器方脚本的页面将不会执行。

/Images 作为/Content的一个子目录,/Images文件夹应该包含与主题相关图像单独使用的图形,如标准按钮和图标(如下)。

/Media作为/Content的一个子目录,/Media应该包含子目录audio, images, animation files, .avi files及用于整个应用程序类似条目。

/Themes它是/Content目录的一个子目录。利用/Themes目录使程序能够改变一个站点的面貌。这个目录应该包含样式表,bullets,按钮,图标,规则,以及组织起来以便你能够通过简单地改变任何或所有与这个主题有关的条目改变应用程序的面貌的类似条目。/Theme目录中的每个条目可以通过向它的虚拟路径设置一个应用程序变量来动态地连接。

/Data这个目录应该包含所有数据库访问信息,如SQL脚本,基于文件的数据组名字或其他这个应用程序所需的类似的数据。不要将这个目录放在这个站点目录下,因为这会给一个未授权的用户到商业规则及私有数据的访问权。

/DLLs这个目录包含COM组件和Visual Basic® 6.0运行事件DLLs,如Vbrun500.dll 和 Msvbvm50.dll。不要将这个目录放在这个站点目录下,因为这个会给一个黑客到商业规则和私有数据的访问权。

/Helper_Files这个目录保存服务器方包含或文本格式的文件,这个文本格式的文件使信息跨越应用程序或许多应用程序可用。由于安全性原因,这个包含帮助文件的目录应该存储在已发行的网络空间中(用户可以确认的网站目录)。

文件-扩展名标准

在这个部分中提供的文件命名协定为可靠的,一致的,和安全的文档页面提供有用的标准。

使用.asp扩展名是包含服务器方脚本的页面必须的。为将来可能包含脚本的页面使用.asp扩展名是一个好的策略,即使他们开始不是这样。为了保存服务器资源及在服务业面时最小化延迟,需要为现在和将来都不需要服务器方脚本程序的文件使用.htm扩展。

为了一致性和易于维护,使用包含文件(.inc)使指定的信息对多于一个的相关页面可用;对包含文件的改变被分配到调用他们的所有页面。为包含在页面种的纯文本格式的数据文件,使用文本文件(.txt)。

不要为包含脚本的页面使用.inc。如果一个用户管理显示这样的页面,这个脚本种的所有商业规则都会显露出来。为所有包含脚本的页面或计划使用脚本的文件使用.asp扩展名,来避免显示在ASP脚本中编码的所有权信息。

设置脚本标准  


如果你已经组织,命名,并保护你的ASP应用程序空间,那么计划并设置一个好的ASP的任务就完成了一半。你还将想要为页面脚本建立标准来使他们易于被小组种的所有页面作者阅读。

可读性脚本样式

为了增强可读性,建立为ASP页建立如下脚本样式。这些样式适用于利用Microsoft Visual Basic® Scriptin