史永哲
摘要:为解决ASP动态网页调试平台的安装和配置较为复杂的问题,方便学习者使用,该文设计了一个能够在线调试动态网页编码的B/S型动态网页调试平台。学习者可以在此平台上进行ASP动态网页的编写和调试,并能够运行和看到运行结果。该平台用ASP技术实现,使用方便,实用性强。
关键词:B/S型;动态网页;asp技术;编码调试
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)36-8777-02
最初的互联网页面都是静态的,即网页内容固定,如要改变网页内容就要修改网页的源代码,并重新上传。随着网络技术的不断发展,出现了动态网页技术。所谓动态网页技术,就是服务器端根据客户端的不同请求动态产生网页内容,并发送到客户端。Asp技术即是一种常见的动态网页技术。ASP的全名是Active Server Pages,是一种在http协议下产生的可以和服务器进行交互的网页技术,利用Asp技术可以制作和运行动态的、交互的、高性能的WEB服务应用程序。在国内,大约七成以上的网站都采用了asp动态网页技术。动态网页的制作调试一般要在iis服务器上进行,而iis组件的安装和配置较为复杂,因此给这门课程的学习者造成了客观上的困难,针对此问题,笔者设计了一种能在网页上直接运行的asp代码的动态网页调试平台,使用此平台,学习者可以在网页上完成一般的语句编写和调试,并能得到代码的运行结果。
1 Asp在线调试平台的设计思路
目前,还没有出现可以运行asp网页的专门控件,因此,暂时不可能通过控件方式来实现asp动态网页的在线运行调试。经过不断地思考和摸索,我们找到了一个能够实现这一功能的替代方法。该方法主要利用动态网页本身能够生成文件的功能,在服务器端动态地生成具有asp后缀的临时文件,通过在服务器端运行临时生成的动态网页文件来查看代码的运行效果,从而进行网页编码的调试。在具体实现上,我们采用多行文本输入框textarea来输入asp代码,然后将textarea中的内容生成一个给定名称的临时文件,并使这个文件具有“asp”后缀。将这个动态生成的asp文件存放在服务器的某个子目录内,通过前面已经预先给出的固定链接,将这个临时生成的动态网页运行起来。这样,我们就能看到编写的代码在真实的网络环境下运行的实际效果。运用这个方法,可以巧妙地实现asp动态网页代码的在线调试和运行。
2 平台的实现方法
Asp在线调试平台的实现主要有界面设计和底层代码设计两个部分。因为在线调试系统是运行在浏览器和服务器体系之上,每一次的提交都会打开一个独立的网页,而网页多了不便于学习者使用,所以在界面计上我们尽量将调试和显示功能放在同一个界面内,为此,我们在界设计上采用框架网页的方法,即运用框架网页,将多个独立的网页显示在同一个界面上。在底层代码设计上,我们采用Vbscript脚本语言作为后台编码设计语言,并运用“FileSystemObject”对象在服务器端动态生成给定名称的asp动态网页文件,然后根据预先给定的网页链接来运行这个文件。
1) 基于框架网页的界面设计
在主界面设计上,我们采用框架网页设计的方法,每个框架的子窗体都是由单独的页面构成的。这就便于我们通过网页数据的传递及调用来实现我们的动态网页调试功能。在框架选择上,我们采用了左右窗口的框架类型,即在左面的框架内显示的是代码编辑窗口,该窗体没有别的内容,全部内容就是一个可以多行显示并能进行文本编辑的textarea输入框,用户在这里能够输入要调试的编码。在右面的框架内是我们产生的临时动态网页显示窗体,在这里显示我们临时生成的动态网页。学习者在使用时,在左边的窗口编写动态网页代码,编写完成后,点击下面的“调试运行”链接,将编写的代码在右面的框架窗体中运行。
2) 平台实现的关键代码
在平台的实现上,我们采用VBscript脚本语言进行编码。左边框架内的网页名称为left.asp,left.asp中的textarea文本编辑框的名称设为“aspcode”,右边框架内的网页名称为right.asp,临时动态网页的处理页面是aspcode.asp。Left.asp将编译运行请求提交给aspcode.asp页面,由该页面处理并生成临时网页文件。Left.asp提交完成后要回到原网页,这样才不会出现左边网页内容的改变。右边框架内显示临时生成的动态网页文件。Aspcode.asp网页是最为关键的处理页面,下面给出该文件内的核心代码,并加以说明。
<%
code=request.form("aspcode")‘将从left.asp传来的数据赋给code变量。
session("code1")=code ‘设置标志
function fsohtml() ‘定义生成动态网页的子函数
filename=filename & ".asp" ‘设置动态生成的网页名称
set fso=Server.CreateObject("Scripting.FileSystemObject") ‘产生文件对象
set fout=fso.CreateTextFile(Server.Mappath("" & filename & "")) ‘用文件对象生成文件
fout.write thistext ‘给文件写入内容
Fout.close ‘关闭文件对象
set fout=nothing ‘撤消文件
set fso=nothing ‘撤消文件对象
end function ‘函数结束
fsohtml() ‘调用上面的函数
response.write("")‘返回endprint
%>
3) 在线使用方法
Asp在线调试平台已经由笔者前期编写调试完成,上传到西安电大的在线学习平台上,支持在线使用。限于篇幅,该文中对该平台的界面和布局不作展现,有兴趣的读者可以访问超链接http://222.91.161.202:8822/files/index4.asp打开该平台的页面,并可在打开的页面上进行asp动态网页的编码输入和调试。可点击页面下方的“解释运行”来执行输入的编码,运行结果在网页界面的右侧显示。也可以点击“新窗口显示运行结果”,在新建窗口中显示运行结果。当编码中有错误时,则不能显示正常的结果,此时网页上会给出大致的错误原因和提示,使用者可根据网页上的错误提示进行相关的修改,直到代码能够正常运行为止。
3 平台运行的安全保障
由于asp动态网页在线调试平台采用在服务器中直接生成动态网页的方式,所以容易被一些“不怀好意”的使用者用来作一些危险的尝试。这些尝试如果不加以防范将会对整个网站的运行产生不良影响。针对此问题,笔者从以下两方面来解决平台潜在的安全问题。
1) 将平台中网页的操作范围限制在子目录内
动态网页服务器的核心组件为IIS,IIS中提供了限制网页向目录外执行“写”操作的功能。我们采用在目录内限制网页向外执行写操作的方法,来处理平台隐藏的安全问题。具体方法是,在平台的网站属性中选择“主目录”,然后选择“配置”,在打开的选项卡中点击“选项”,在该选项卡中勾掉“启用父路径”复选框。这样就可以将平台中所有带有“写”功能的操作限制在该目录内,就可以防范一些“危险”的操作扩大到目录外。
2) 为每个用户设置自有文件夹
我们采用为每个注册用户动态生成服务器文件夹的方式,来解决使用者互相干扰的问题。系统为每个注册用户生成一个目录及相关文件,使用者在该目录中进行网页编码和调试,所有的影响仅限于自己所在的目录内,不会扩大,也不会影响他人。这样就保障了网站运行的安全。
4 结束语
本文采用在服务器端生成临时动态网页的方式,设计了一个ASP动态网页的在线调试平台,供用户在线调试asp代码。该平台运行速度快,使用方便,用户不需要进行iis的安装和处理相关配置,就可在线调试运行自己编写的asp代码。该平台自调试完成并上传互联网后,主要供西安电大的学生使用。投入使用以来平台运行稳定,受到了学生的普遍认可,同时取得了良好的教学效果。
参考文献:
[1] 严为,吉晓民.制造业信息化中ASP应用服务平台结构探讨[J].机械设计,2013(5).
[2] 俞国燕,郑时雄.基于ASP模式的产品设计支持系统开发[J].机床与液压,2012(01).
[3] 周华民,张宜生,李德群.电子商务模式ASP及其在模具CAE软件中的应用[J].锻压机械,2011(6).endprint