2020年了,居然还有人在用asp
事件起因
近日,一个风和日丽的上午,忽然接到老大安排的一个任务:给一个asp的小项目添加判断文件是否存在,如存在就跳转显示的功能。
嗯...是的,你没看错,不是php、也不是asp.net,就是asp,可能有些年轻的小伙伴们都不知道asp是啥了,毕竟懂ASP开发的应该都是7080后了吧~~ ̄▽ ̄
下面给大家xue微科普下:
ASP是Active Server Page的缩写,意为“活动服务器网页”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,常用于各种动态网站中。ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。
百度百科
以上来自百度百科,简单的说ASP就是微软很久之前开发的一个曾经很流行web脚本应用,但因为计算机发展太快,已经不能满足现代高并发,大数据量的需求了,所以现在基本已经没落了。
那么,重点来了!为啥我们还在用呢?
领导的心思怎么能是我们想问就能问的,所以只能脑补下,领导可能是这么想的:
这样能显示出来我们的公司历史比较久远(06年)!
可能当时只会asp....
额...偏题了,言归正传,开始干活!
关键词ERR_INVALID_REDIRECT
这功能随意写个小函数不就行了么?这有什么难度,虽然咱asp是个野路子,但还不是小case么
三下五除二,搞定!代码如下:
Function CheckFile(FilePath)
Dim fso
FilePath=Server.MapPath(FilePath)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
If fso.FileExists(FilePath) then
CheckFile = True
Else
CheckFile = False
End if
Set fso = nothing
End Function
兴冲冲就加了个判断代码,开始测试
dim filepaths
filepaths="/a/"&id&".htm"
if CheckFile(filepaths) then
Response.Redirect "http://test.jb51.net"&filepaths
Response.End
end if
这不就实现了吗?正在得意时,没想到浏览器童鞋直接给泼了盆冷水
额( ̄□ ̄;),大意了,不敢耽误,赶紧调试下
打开IIS中asp的调试,将错误返回至浏览器,刷新浏览器,结果依然让我惊喜
这是什么鬼,我特么。。。(以下省略十万八千字)好了,提醒自己认真点,继续调试,一顿操作之后
行吧行吧,野路子果然是个野路子,还是不行,我是解决不了了,总有人能解决,还是向老大请教下,该问就问,这是个学习的好习惯。
“老大老大,帮忙看看这是啥情况,我感觉代码没写错呢。”
代码和截图打包给发过去,10秒后,老大回复:你用谷歌浏览器调试!
不敢耽误,立马打开谷歌调试,果然,不一样了...
关键词ERR_INVALID_REDIRECT,明显是跳转地址有问题,输出下
if CheckFile(filepaths) then
Response.Write filepaths
Response.End
Response.Redirect "http://test.jb51.net"&filepaths
Response.End
end if
咋输出绝对路径了呢?CheckFile函数的问题?于是开始搜索各种解决办法,正抓头呢,老大回复:“找到原因了吧,你这排错能力有点差啊。”
赶紧老实交代:“找到出错的地方了,但不知道为啥会出错。”老大二话不说,给发来个网址:https://www.jb51.net/article/1339.htm
核心内容如下图:
ByVal是传递值 源数据不会被修改,你可以把这个值当作自己的局部变量来使用;
根据提示,成功将CheckFile代码修改为
Function CheckFile(ByVal FilePath)
Dim fso
FilePath=Server.MapPath(FilePath)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
If fso.FileExists(FilePath) then
CheckFile = True
Else
CheckFile = False
End if
Set fso = nothing
End Function
测试,完美解决问题。
自我反省
笔者这野路子asp缺乏对细节知识的掌握,简单的一个小错误,半天都没发现问题所在,学习语言还是需要系统的学习方能掌握的比较全面。好了,不说了,我要补习去了~