下面黄色底色部分是否有误?
去掉通用事件头
我们知道,很难严格区分静态网页和动态网页,因为动态生成的网页,也需要使用不少静态的文件,例如图片、js、css等等。
所以我们总是在HtttpRequest事件的开始位置加上代码:
'通用事件头,用于发送已经存在的常见文件
Dim fl As String = "d:\web\" & e.path
If filesys.FileExists(fl)
Dim idx As Integer = fl.LastIndexOf(".")
Dim ext As String = fl.SubString(idx)
Select Case ext
Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar"
e.WriteFile(fl)
Return '这里必须返回
End Select
End If
'以下是动态生成网页的代码
'...
这有点繁琐,实际上这个事件头可以去掉的,只需将Httprequest事件代码改为:
HttpServer.Prefixes.Add("http://*/")
HttpServer.WebPath = "d:\web" '指定静态文件存储位置
HttpServer.Start()
现在HtttpRequest不需要任何代码, 当用户访问某个文件时,系统会自动判断"d:\web"目录是否存在此文件,如果存在,则自动发送此文件,否则触发HttpRequet事件。
我们只用了3行代码,这应该是史上最简单的web服务搭建方法了。
从现在开始,我们的HttpRequest事件代码将不再包括通用事件头了,我们假定你已经使用上述代码启动了Web服务。