ASP编程:asp编程中的测试打印、无效性反省及毛病...
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了编程|毛病|毛病处置|打印常常看到一些初学asp的伴侣为了测试一个值各处用response.write来打印,而要看页面效果时再删除这些语句或加上正文,在正式版本出来之前要云云重复
屡次。而有些工资了削减贫苦,爽性全当它是准确的,不做测试输入,像如许极
易呈现林林总总的成绩,最多见的是假如要天生一条sql语句,必要利用变量,如
果不做测试打印,很难做到一次准确,在chinaasp论坛里常常见到这类成绩,老
是有人问这条语句为何会堕落等成绩,实践上他只需打印出这条语句看一下语
法是不是准确就好了,而不用各处追着人问。现实上好的编程习气应当是在本人没
有很年夜掌控的情形下把天生的语句或变量值打印出来,但如许做又费时吃力,有
没有对照好的办理办法呢?
在C里可使用_DEBUG如许的测试开关来把持debug版本和release版本,但
asp中并没有相似#define这类语句,那末是否是我们就没有举措了呢?实在我们
能够模仿c的这类做法,那就是在global.asa文件里界说一个application变量来
把持,象上面这个例子:
在global.asp里加上:
application("DEBUG")=1
然后做这么一个历程:
--------------------------------------------------------
Name:PRINT
Argument:a_strPrint:打印字符串
Return:
Description:打印(仅在DEBUG形态下运转)
Hitory:Createbybigeagle
--------------------------------------------------------
SubPRINT(a_strPrint)
ifApplication("DEBUG")=1then
Response.Write("<Paling=center>"+a_strPrint+"</P>")
endif
EndSub
这个历程的功效就是当测试开关翻开时(application("DEBUG")=1)打印
,而当测试开关封闭(application("DEBUG")=0)就不会有打印输入了。如许
在程序调试时代,你能够翻开测试开关,以察看变量的值,而当要看页面效果或
公布release版本时就能够封闭测试开关,如许一切的测试输入就不会呈现在页面
上。
以上谈到的是变量的测试输入,上面要谈谈准确性检测成绩。常常见到良多
人把页面提交过去或数据库掏出的值想都不想就用,基本不做准确性检测,那你
怎样能包管这些值的准确性呢?好比有一个input,提交后它的值应当是一个值包
含数字的字符串,但假如用户的输出包括其他字符,若不做准确性检测,那当你
用cint或clng转换时就会产生毛病,全部程序溃散。别的一种情形是如许,当你
从数据库中取值或诸云云类的操纵,应当是不会产生成绩,但假如呈现数据库出
错等成绩,那末用户也只能见到一个诸如odbc毛病等等的提醒信息,关于一个
成熟的商品程序来讲,这点是很欠好的,实在如今包含国际良多出名站点也呈现
这类成绩。以是应当养成如许一个习气,那就是任何大概出成绩的变量、参数在
利用之前都应当做准确性检测,而且对数据库操纵后应该判别否乐成。这是就又呈现一个版本成绩,假如是DEBUG版则应显现堕落信息以备修正,而release版则应当引诱到一个一致页面,如“本站临时呈现未知妨碍,请稍候再来"等等,准绳上永久不要给用户一个体系堕落信息页面。要完成上述功效,请看以下几个函数和历程。
--------------------------------------------------------
Name:ASSERT
Argument:a_blnConditon:断言前提
a_FunctionName:挪用函数
a_ErrorString:毛病描叙
Return:
Description:断言
Hitory:CreatebyBigeagle
--------------------------------------------------------
SubASSERT(a_blnConditon,a_FunctionName,a_ErrorString)
ifApplication("DEBUG")=0then
ifa_blnConditonTRUEthen
response.redirect("../include/bigerror.asp")
endif
else
ifa_blnConditonTRUEthen
callprint("断言毛病:在<fontcolor=red>"+a_FunctionName+"</font>呈现:"+a_ErrorString)
response.end
endif
endif
EndSub
这个历程的感化是检测变量或参数无效性,假如前提a_blnConditiontrue,那末假如测试开关翻开,则显现毛病信息,假如测试开关封闭,则重定向到毛病处置页面bigerror.asp。
--------------------------------------------------------
Name:CheckError
Argument:
Return:
Description:反省毛病
Hitory:CreatebyYaozhigang
--------------------------------------------------------
FunctionCheckError()
DimintErrNumber
intErrNumber=Err.Number保留毛病代码,由于在ERROR中将实行Err.Clear
ifintErrNumber0thenCallERROR(-1,"")Err毛病的毛病码为-1
CheckError=intErrNumber
EndFunction
--------------------------------------------------------
Name:ERROR
Argument:a_intErrCode:毛病码(-1时暗示是体系毛病,即Err.Number0)
a_strErrText:毛病形貌
Return:
Description:毛病处置
Hitory:CreatebyYaozhigang
--------------------------------------------------------
SubERROR(a_intErrCode,a_strErrText)
DimstrMsg
DimstrLogMsg
假如是Err毛病,则必定实行毛病页
ifa_intErrCode=-1then
strMsg=strMsg+"*********************************************************************************************"+"<BR>"
strMsg=strMsg+"毛病工夫:"+CStr(Now())+"<BR>"
strMsg=strMsg+"毛病范例:Err毛病"+"<BR>"
strMsg=strMsg+"毛病号:"+CStr(Err.Number)+"<BR>"
</p>源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码 Session:这个存储跟客户端会话过程的数据,默认20分钟失效 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。 那么,ASP.Net有哪些改进呢? ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。 因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。 先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
页:
[1]