相信很多小伙伴們對于ASP應用的了解都不是非常清楚的,那么今天今天錯新小編為大家分享經典的ASP應用,感興趣的小伙伴們不妨收藏起來吧,相信對你一定會有多幫助的。
1.?下面的代碼演示了如何在服務端獲取來自客戶端瀏覽器中某一個圖片的x,y坐標,注意input控件的類型是image類型。?
?<form>
<Input?Name="ImageMap"?Type="Image"?Src="ImageMap.jpg"?Alt="Click?Anywhere">
</form>?
<%ImageMap.x?=?<%=Request("ImageMap.x")
ImageMap.y?=?<%=Request("ImageMap.y")%>?
??2.?利用ADODB.Stream對象,在IE瀏覽器中下載服務端上的各類文件。?
??即直接提示用戶下載而不是由瀏覽器打開某些文件。注意,下面的代碼拷貝到ASP文件中后,不要再添加一些非ASP代碼在頁面中:如HTML和Javascript客戶端的代碼。
?<%
'--------------------------------------------
Response.Buffer?=?True
Dim?strFilePath,?strFileSize,?strFileName
Const?adTypeBinary?=?1
strFilePath?=?"文件路徑?"
strFileSize?=?...?文件大小,可選
strFileName?=?"文件名"
Response.Clear
'*******************************************8
'?需要在你的服務器上安裝?MDAC?2.6?或MDAC2.7
'8*******************************************8
Set?objStream?=?Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type?=?adTypeBinary
objStream.LoadFromFile?strFilePath
strFileType?=?lcase(Right(strFileName,?4))?'文件擴展名
'?通過文件擴展名判斷?Content-Types
Select?Case?strFileType
Case?".asf"
ContentType?=?"video/x-ms-asf"
Case?".avi"
ContentType?=?"video/avi"
Case?".doc"
ContentType?=?"application/msword"
Case?".zip"
ContentType?=?"application/zip"
Case?".xls"
ContentType?=?"application/vnd.ms-excel"
Case?".gif"
ContentType?=?"../../image/gif"
Case?".jpg",?"jpeg"
ContentType?=?"../../image/jpeg"
Case?".wav"
ContentType?=?"audio/wav"
Case?".mp3"
ContentType?=?"audio/mpeg3"
Case?".mpg",?"mpeg"
ContentType?=?"video/mpeg"
Case?".rtf"
ContentType?=?"application/rtf"
Case?".htm",?"html"
ContentType?=?"text/html"
Case?".asp"
ContentType?=?"text/asp"
Case?Else
'Handle?All?Other?Files
ContentType?=?"application/octet-stream"
End?Select
Response.AddHeader?"Content-Disposition",?"attachment;?filename=?strFileName
Response.AddHeader?"Content-Length",?strFileSize
Response.Charset?=?"UTF-8"?'?客戶端瀏覽器的字符集UTF-8
Response.ContentType?=?ContentType
Response.BinaryWrite?objStream.Read
Response.Flush
objStream.Close
Set?objStream?=?Nothing
%>?
??3.提升ASP頁面的響應速率?
??在你的ASP頁面的第一行加入:
?<%?ENABLESESSIONSTATE?=?False?%>?
?這會關閉session對象,提升你的服務器響應速率,比較常見的問題是一個html頁面包含了兩個框架頁面(至少有一個是ASP頁面,并使用了session),這將使得必須等待某一個框架頁(當然這個框架頁中使用了session)加載完后,另一個框架頁面才會顯示。
??如果你使用代理訪問,?默認情況下,許多代理服務器不會動態緩存ASP頁面內容,加入下面的代碼:
?<%
?????Response.CacheControl?=?"Public"
?%>?
??這行代碼會將ASP頁面緩存在代理服務器上,從而加快客戶端請求動態頁面的響應速率,一些不經常變化的ASP頁面將直接從代理服務器上取得。?
??4.?要知道瀏覽器(IE為例)不會解析回車和換行字符,如果你用Response.write方法寫一行包含了回車和換行字符的字符串到動態頁面中,其結果可想而知,你需要做的是:?
?<%
??????Response.Write(Replace(body,?vbCrLf,"<br>"))
?%>?
??用<br>來代替回車和換行。注意:如果回車和換行字符出現在form中的input/textarea等控件中,可以不必這么做。
??5.?用ASP代碼寫IIS日志?
?<%
?????Response.AppendToLog?"數據庫正在被訪問"
?%>?
??執行這段代碼后,在你的IIS日志中可能會出現下面的字符串:
127.0.0.1,?-,?01/01/00,?12:00:34,?W3SVC1,WEBSERVER,?
127.0.0.1,?161342,?485,?228,?200,?0,?get,?/somefile.asp,?數據庫正在被訪問?
??注意:由于日志文件中的內容是按逗號分隔,所以寫入的日志內容應避免使用逗號。
??6.?如何訪問遠程計算機上MDB數據庫文件?
??如果你用ODBC連接(DSN方式或其它方式)到遠程計算機的MDB文件,這將產生一個錯誤:
Microsoft?OLE?DB?Provider?for?ODBC?Drivers?error?'80004005'?
大致意思是該文件可能被其他用戶訪問或無足夠的權限訪問。?
??下面有兩種方式,避免這個錯誤:
????方式a.?使用DAO引擎訪問
???Dim?File,?Conn,?RS
??Const?ReadOnly?=?False?
??File?=?"http://server/share/file.mdb"
??Set?Conn?=?CreateObject("DAO.DBEngine.35").Workspaces(0).OpenDatabase(File,,ReadOnly)
??Set?RS?=?Conn.OpenRecordset(SQL)?
??方式b.?ADO?+?Jet?OLE?DB?provider方式
??Dim?Conn,?RS
??Set?Conn?=?CreateObject("ADODB.Connection")
??Conn.Provider?=?"Microsoft.Jet.OLEDB.4.0"
??Conn.Open?"http://server/share/file.mdb"
??Set?RS?=?Conn.Execute(SQL)?
???確定在運行ASP頁面時有足夠的訪問權限以訪問遠程計算機上的MDB文件,在訪問MDB文件前需要先
??登錄到遠程計算機,添加下面的代碼
?????Set?UM?=?CreateObject("UserManager.Server")
????UM.LogonUser?"帳號",?"口令",?"域"
...
open?database
...
????UM.RevertToSelf
本文中主要介紹的就是經典的ASP應用,有何經驗歡迎您來錯新技術頻道與小編分享,也可以在留言給小編,寫出您對ASP的心得體會。
新聞熱點
疑難解答