温故知新:几个经典的ASP应用

 1. 下面的代码演示了如何在服务端获取来自客户端浏览器中某一个图片的x,y坐标,注意input控件的类型是image类型。
 <form>
<Input Name="ImageMap" Type="Image" Src="http://edu.cnzz.cn/NewsInfo/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*******************************************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 = "\\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 "\\server\share\file.mdb"
  Set RS = Conn.Execute(SQL)

    确定在运行ASP页面时有足够的访问权限以访问远程计算机上的MDB文件,在访问MDB文件前需要先

  登录到远程计算机,添加下面的代码

     Set UM = CreateObject("UserManager.Server")
    UM.LogonUser "帐号", "口令", "域"
...
open database
...
    UM.RevertToSelf

时间: 2024-10-29 13:33:29

温故知新:几个经典的ASP应用的相关文章

经典的asp整理

1.关闭窗口在图片的连接上写javascript:window.close(); 提交的图片连接写javascript:document.Form1.submit(); 删除之前出现确认对话框: <a href="del.asp?id=<%=rs("rowid")%>" ONCLICK="javascript:return confirm('真的要删除数据吗?')">删除</a>2.用VBScript弹出提示框

几个经典的ASP应用_应用技巧

1. 下面的代码演示了如何在服务端获取来自客户端浏览器中某一个图片的x,y坐标,注意input控件的类型是image类型.   <form> <Input Name="ImageMap" Type="Image" Src="ImageMap.jpg" Alt="Click Anywhere"> </form>  <%ImageMap.x = <%=Request("Im

几个经典的ASP应用

1. 下面的代码演示了如何在服务端获取来自客户端浏览器中某一个图片的x,y坐标,注意input控件的类型是image类型. <form> <Input Name="ImageMap" Type="Image" Src="ImageMap.jpg" Alt="Click Anywhere"> </form> <%ImageMap.x = <%=Request("Image

当ASP.NET撞上JSF之框架比较

asp.net|js|比较 使用经典的ASP或JSP技术构建应用程序经常意味着与HTML标注混合编码.然而,在创建这些技术的初期,与其以前使用的方法相比,这些平台为构建web应用程序提供更多的优势.JSP和ASP都提供了相似的对象模型,例如在JSP和ASP应用程序中都可以使用包括Request,Response和Session等对象.现在,在隐蔽处理HTTP协议的无状态特征所带来的复杂性方面还没有出现真正的软件尝试. ASP.NET和JSF框架都是基于组件和事件驱动的.也就是说,在一个表单上的组

维护ASP的会话状态

HTTP是一种无状态协议.当客户机向服务器发送一个请求时,服务器并不知道这是客户机的第1个还是第42个请求.这对ASP开发来说无异带来了比较严重的问题,因为经常有必要给特定的客户机关联服务器方变量.比方说,网站在向我发送我订购的Jethro Tull CD同时向其他人发送Barry Manilow CD就是因为这一关联的重要作用.ASP通过称为会话ID的唯一的客户标识符处理这种关联关系,当客户在开始他或她的浏览器会话时就会被分配这种会话ID. 现在让我们看看传统的ASP和现代的ASP.NET围绕

第八篇 ASP内建对象

在上一篇中作者给大家详细介绍了 ASP 内建对象之一 Request 的使用方法,相信各位通过一系列的实践已经能够熟练掌握,本篇将继续给大家介绍 ASP 的另一个内建对象 Response. 最近,有很多朋友来"妹儿"催我加快 ASP 篇一文的写作速度,并急切地询问哪里有关于 ASP 的教材.我深深地被大家的学习热情所打动,因此决定将自己平时所搜集的一些 ASP 信息资料拿出来和大家共享,也希望所有的朋友能慷慨地将自己搜集的有关 ASP 的资料告诉作者,谢谢.由于目前国内有关 ASP

ASP教程:第八篇 ASP内建对象Response

在上一篇中作者给大家详细介绍了 ASP 内建对象之一 Request 的使用方法,相信各位通过一系列的实践已经能够熟练掌握,本篇将继续给大家介绍 ASP 的另一个内建对象 Response. 最近,有很多朋友来"妹儿"催我加快 ASP 篇一文的写作速度,并急切地询问哪里有关于 ASP 的教材.我深深地被大家的学习热情所打动,因此决定将自己平时所搜集的一些 ASP 信息资料拿出来和大家共享,也希望所有的朋友能慷慨地将自己搜集的有关 ASP 的资料告诉作者,谢谢.由于目前国内有关 ASP

ASP.NET下MVC设计模式的实现

asp.net|设计 ASP.NET是微软最新推出的新型体系结构.NET框架的一部分,它为构造新一代动态网站和基于网络的分布式应用提供了强有力的支持.与以前的 Web 开发模型相比,ASP.NET 提供了许多重要的优点例如: 简易性:安全性:可管理性等.而且与基于过程的ASP页面技术相比,面向对象技术在ASP.NET中得到了完全实现.用传统ASP技术建立的Web应用实例中,在页面中同时实现显示,业务逻辑和流程控制,这从工程化的角度考虑,它有许多不足之处.用户界面承担着向用户显示问题模型和与用户进

ASP.NET中的HTMLControl和WebControl

asp.net|web 与以前的ASP版本相比,ASP.NET有了很大的改进.这些改进之中,主要的一点就是新引入的服务端控件.现在我们就来一起研究ASP.NET中的HTMLControl和WebControl这两类服务端控件. 回忆:一个不使用服务端控件的例子 为了说明服务端控件所能带来的好处,我们现在用传统的ASP来做一个页面.这个页面的功能是根据用户选择的电吉它和功放组合,显示一些对这个组合的评论信息.这个页面完成后将如图1所示: 图1 从组合框里选择好吉它和功放的类型,然后按Informa