文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
asp中有关字符编码转换的几个函数
绝妙的asp生成静态页面html函数
Asp计算页面执行时间
一个简单的用存储过程分页
将asp页面转换成htm页面
ASP网站漏洞解析及黑客入侵防范方法
URL编码与SQL注入
几种常用排序算法(asp)
ASP调用带参数存储过程的几种方式
实用的ASP连接数据库的函数
ASP如何获取真实IP地址
ASP中怎么实现SQL数据库备份、恢复
判断Cookies是否处于开启状态
怎样才能将服务器端文件夹下的文件,..
几行Asp代码实现防止表单重复提交
用ASP设计网站在线人数统计程序
asp论坛在线人数统计研究
如何用ASP远程在数据库中创建Table
用ASP调用SQL Server的视图和存储过程
Asp与XML的关系
ASP读取EXCEL
在ASP中使用Oracle数据库技巧
一个通过web.Mail发送邮件的类
几种打开记录集方式的比较
购物车范例(购物车页面 )
如何使用FSO搜索硬盘文件
GB码和BIG5码的互换技术
用ASP开发WEB日期选择器
一个投票系统的源程序(coveryourasp.c..
列出服务器上的打印机


技术教程 -> ASP教程 ->  
编写自己的组件
来源:转载   人气:963   录入时间:2007-11-8
    您已经熟悉了 ASP 提供的组件,现在该创建自己的组件来满足自己的特殊需要了。
   
    假设您需要创建一个 ASP 程序,以便通过 Web 节点提供特定的财务功能。ASP 没有直接提供这样的功能,不过您可以通过创建自己的 Java 或 ActiveX 组件来解决问题。您将在本模块中学会这些。
   
    如果要学习如何创建并使用组件,首先使用下面的表格进行选择:
   
    要点
   
    若要保存并查看您在本模块中的工作结果,需要:
   
    对 Web 服务器上的 虚拟目录具有“写 (Write)”和“改编 Web 服务器 (Script Web server)”权限。详细信息,请参阅 设置 Web 服务器权限帮助iishelp。
   
    您的 Windows NT 帐号,必须在 DriveLetter:\Winnt\Java 目录及其子目录上具有 Windows NT File System (NTFS) 的读、写和运行程序权限(此处的 DriveLetter 代表 Web 服务器上适当的驱动器号)。
   
    DriveLetter:\Winnt\System32\Inetsrv\ 目录及其子目录上具有 Windows NT File System (NTFS) 的读、写和运行程序权限(此处的 DriveLetter 代表 Web 服务器的适当的驱动器号,如果您没有安装到默认目录下,请用您的安装目录代替 \Winnt\System32)。
   
    要完成本模块,必须在 Web 服务器上安装:
   
    Microsoft? Visual J++? 1.1. Microsoft? Visual Basic 5.0 专业版的 32 位版本或 Visual Basic 5.0 企业版开发系统。
   
    如果已经禁止了 Web 浏览器运行 Java 程序功能,请在开始教程以前启用该功能。
   
    第一课:创建 Java ActiveX 财务组件 
   
    组件将包含一组相关的方法(函数),用来提供脚本语言所不具有的函数。由于 不提供财务函数,所以您必须在外部创建一个财务函数。在本教程中您将学习如何创建一个函数,这个函数在固定利率及等额定期支付的方式下,计算一笔投资的未来价值(也就是年金)。
   
    启动 Visual J++
   
    单击“开始”按钮,指向“程序”,然后指向 Microsoft Visual J++ 1.1
   
    单击子目录中的“Microsoft Developer Studio”,启动编程环境。
   
    开始并命名一个工程
   
    单击“File”。
   
    选择“New”。
   
    单击“Project”选项卡。
   
    选择“Java Project”。
   
    在“Project Name”框中,键入“Finance”,然后单击 “OK”。
   
    将 Finance Class 添加到工程中
   
    选择“Insert”菜单中的“New Class”。
   
    在“Name”框中,键入“Finance”,然后单击 “OK”。在文本编辑器中将出现下列文字:
   
    class Finance {
   
    }
   
    注意 类的名称必须与 Java 服务器组件的工程名相同。
   
    将 CalcFV Function 添加到 Finance Class 中
   
    选择“ClassView”选项卡(默认)。
   
    在树型控件中展开“Finance Classes”工程。
   
    右键单击“Finance”类,然后选择“Add Method”。
   
    在“Return Type”框中,键入“public double”。
   
    在“Method declaration”框中,复制并粘贴下列文字:
   
    CalcFV(double dblRate, double dblNPer,
   
    double dblPMT, double dblPv, boolean bType)
   
    在这一声明中,您定义了一个财务函数,它属于 Finance 类,
   
    用于计算一笔投资的未来价值。
   
    单击“OK”。下列文字将出现在 Visual J++ 的文本编辑器中:
   
    class Finance {
   
    public double CalcFV(double dblRate,
   
    double dblNPer,
   
    double dblPMT,
   
    double dblPv,
   
    boolean bType) {  
    }
    }
   
    在文本编辑器中,将下列 Java 代码复制并粘贴到上面最内层的括号中:
   
    double dblRet, dblTemp, dblTemp2, dblTemp3;
   
    if (dblRate == 0.0) {
   
    dblRet = -dblPv - dblPMT * dblNPer;
   
    } else {
   
    dblTemp = (bType ? 1.0 + dblRate : 1.0);
   
    dblTemp3 = 1.0 + dblRate;
   
    dblTemp2 = Math.pow(dblTemp3, dblNPer);
   
    dblRet = -dblPv * dblTemp2
   
    - dblPMT * dblTemp * (dblTemp2 - 1.0) / dblRate;
   
    }
   
    return dblRet;
   
    不要被这些代码所吓倒,它们不过是定义了计算投资未来价值的数学公式而已,当然使用的是 Java 语法。如果您感兴趣,可以在任何一本讲解财务计算或会计知识的书本上找到这个常用公式。
   
    注意 Java 是大小写敏感的,所以如果您决定将上述代码行键入文本编辑器,请确保键入的文字与显示的内容完全一致。
   
    构造 Finance 组件
   
    选择“Build”菜单中的“Build Finance”。
   
    确保在 Build 窗口中(位于 ClassView 和文本编辑窗口之下),构造过程没有产生任何错误或警告。
   
    将 Finance 组件复制到 Trustlib 目录中
   
    单击 Windows 的“开始”按钮,指向“程序”,然后单击“Windows 资源管理器”。
   
    将 Finance.class 组件从 Program Files\DevStudio\MyProjects\Finance\ 目录复制到 Web 服务器的 Winnt\Java\Trustlib 目录中。
   
    注册 Finance Java 类
   
    您必须在计算机中注册 Finance Java 类,才能在 JScript 以及任何兼容 OLE 的语言中调用它。
   
    打开“命令提示符”(“MS-DOS 方式”)窗口。
   
    在命令提示符后键入 cd DriveLetter:\\Program Files\DevStudio\VJ\Bin\,其中,DriveLetter 是您的计算机上适当的驱动器号。(如果您没有接受默认的安装目录,请用您的安装目录替换 \Program Files\DevStudio\VJ\Bin\。)
   
    按下Enter 键。
   
    键入 javareg /register /class:Finance /progid:MS.Finance.Java。
   
    按下 Enter 键
   
    当出现一个对话框显示“Successfully Registered Java class "Finance" as CLSID”时,单击“OK”按钮。
   
    关闭“命令提示符”窗口。
   
    组件将包含一组相关的方法(函数),用来提供脚本语言所不具有的功能。由于 不提供财务函数,所以您必须通过自己的 Finance 服务器组件来提供对 Visual Basic 财务函数的使用能力。该服务器组件能提供所有的 Visual Basic 财务函数,包括 DDB 函数(双倍余额递减法)、FV 函数(未来值)、IPmt 函数(支付利息)、IRR 函数(内部回报率)以及其他函数。不过,在本教程中,您将只使用 FV 函数,基于固定利率及等额定期支付方式,返回一笔年金。
   
    启动 Visual Basic
   
    单击“开始”按钮,指向“程序”,然后指向“Microsoft Visual Basic 5.0”
   
    单击子菜单中的“Visual Basic 5.0”,运行编程环境。
   
    开始并命名一个工程
   
    在“New Project”对话框中,双击“ActiveX DLL”。
   
    在“Project”菜单上,单击“Project1 Properties”。
   
    在“General”属性页的“Project Name” 框中,键入“MS”。
   
    选择“Unattended Execution”。
   
    注意 选择该选项表明这个工程运行时不需要用户交互,并且将不具有用户交互的基础。  
   
    单击“OK”。
   
    现在工程被命名为“MS”。以后,您将从 ASP 脚本中以 MS.Finance 的形式引用 Finance 服务器组件。
   
    将 Finance Class 添加到工程中
   
    在 Visual Basic 中,若要创建具有一组可以调用的函数组件,必须定义一个 类。一个类包含一组方法和属性。在您的工程中,类就是您说明财务方法的地方。
   
    按下 F4 键打开类模块的“Properties”窗口,双击“Name”属性并键入“Function”,然后按 Enter。
   
    双击“Instancing”。
   
    单击箭头,然后选择“5 - MultiUse”。
   
    进一步学习 Visual Basic 财务函数
   
    Visual Basic 的帮助系统描述了可以使用的财务函数。
   
    单击“Help”。
   
    选择“Microsoft Visual Basic Help Topics”。
   
    选择“Index”选项卡,然后键入“financial functions”作为查找的文字。
   
    双击“financial functions”索引条。
   
    单击“FV Function”,学习该函数。
   
    学习完财务函数后,关闭“Visual Basic Help”对话框。
   
    将 CalcFV 函数添加到 Finance 类
   
    Finance 服务器组件需要一些代码。这些代码让使用您组件的语言可以调用 Visual Basic 内建的未来值函数。
   
    将下列行复制并粘贴到 Finance 类的代码窗口中:
   
    Public Function CalcFV(rate, nper, pmt, Optional pv, Optional whendue)
   
    CalcFV = FV(rate, nper, pmt, pv, whendue)
   
    End Function
   
    添加组件的入口点
   
    所有服务器组件都需要一个入口(起始)点。这是当对象第一次可用于一种语言时,将被调用的代码。在 VBScript 中,当您使用 Server.CreateObject 时,将创建对象的一个实例。当执行 Server.CreateObject 语句时,(由 Visual Basic 创建的)服务器组件上的 Sub Main 过程将被调用。
   
    当您的财务组件被调用时,它不需要任何特殊代码来初始化自身。因此,需要提供一个空的(没有 Visual Basic 语句的)Sub Main 过程。
     
   
    选择“Project”菜单中的“Add Module”。
   
    在“Module 1”对话框中,双击模块图标。
   
    在 Module 1 代码窗口中,键入 Sub Main。
   
    按下 Enter 键。
   
    将自动进入如下代码:  
   
    Sub Main()
   
    End Sub
   
    保存 Finance 工程
   
    当保存所作的工作时,将询问您是否保存 Visual Basic 工程的全部 3 部分。其中包括工程文件、类模块和代码模块。
   
    打开“File”菜单。
   
    选择“Save Project”。
   
    在“File name”文本框中,键入“Finance”。选择 Web 服务器上的如下路径:DriveLetter:\Winnt\System32\Inetsrv\,其中 DriveLetter 是适当的驱动器号。(如果您没有接受默认的安装目录,请用您的安装目录替换 \Winnt\System32。)
   
    单击“Save”按钮。
   
    如果在此以前,另一个用户已经学完了教程的这一部分,将出现一条消息,提示文件已经存在。请用您的文件覆盖旧文件。
   
    双击“File name”文本框中的值 “Project1”,选中它。
   
    为工程文件键入名称“Finance” (.vbp)。
   
    单击“Save”按钮保存工程。
   
    如果在此以前,另一个用户已经学完了教程的这一部分,将出现一条消信息,提示文件已经存在。请用您的文件覆盖旧文件。
   
    成为“进程内 (In-Process)”组件
   
    Visual Basic 允许您创建进程内 ActiveX 组件(通常称为 OLE 自动服务器)和进程外 ActiveX 组件。一个进程内 ActiveX 组件是一个动态链接库(带 .dll 后缀),由调用它的进程进行加载。一个进程外 ActiveX 组件是一个可执行文件(带 .exe 后缀),当它被应用程序调用后,以独立进程的状态运行。由于进程内组件与调用它的程序在同一个进程空间,所以性能比进程外组件要佳。
   
    使 Finance 服务器组件成为进程内 ActiveX 组件
   
    打开“File”菜单。
   
    选定“Make Finance.dll”。
   
    单击“Options”按钮。
   
    选定“Auto Increment”复选框。
   
    单击“OK”。
   
    键入 DriveLetter:\\Winnt\System32\Inetsrv\Finance,其中 DriveLetter 是适当的驱动器号。(如果您没有接受默认的安装目录,请用您的安装目录替换 \Winnt\System32。)
   
    如果在此以前,另一个用户已经学完了教程的这一部分,将出现一条消信息,提示文件已经存在。请用您的文件覆盖旧文件。
   
    退出 Visual Basic。
   
    注册 Finance 服务器组件
   
    所有服务器组件都必须注册。Windows NT 和 Windows 95 用系统注册表来追踪哪个服务器组件是可用的。在您的计算机上将 Finance 服务器组件注册后,就可以在 VBScript 和所有兼容 OLE 的语言中调用它了。
   
    打开一个命令提示符窗口。
   
    在命令提示符后键入 cd Drive Letter:\\Winnt\System32\Inetsrv,其中 DriveLetter 是适当的驱动器号。(如果您没有接受默认的安装目录,请用您的安装目录替换 \Winnt\System32。)
   
    按下 Enter 键。
   
    键入 regsvr32 Finance.dll。
   
    按下 Enter 键。
   
    当出现一个对话框显示“DllRegisterServer in finance.dll succeeded”时,请单击“OK”按钮。
   
    关闭命令提示符窗口。
   
    第二课:从脚本调用 Finance 组件
   
    要测试组件,可以从 ASP、Visual Basic、Microsoft? Office 产品的 Visual Basic for Applications 或任何 OLE 自动控件来调用组件。
   
    要使用 从 ASP 调用 Finance 组件,可以使用一个 HTML 表格作为输入来计算某人存款计划的未来值。
   
    所需的 HTML 表格
   
    我们将使用一个 HTML 表格后,就能用 Request("APR") 的方式引用。HTML 标记 <INPUT TYPE=TEXT NAME=APR> 提供了输入数值所需的字段。
   
    要将表格标记的 ACTION 属性指定的网页。“Submit”按钮的 HTML 标记 (<INPUT TYPE=SUBMIT VALUE=" Calculate Future Value ">) 使用 ACTION 的值,从 HTML 表格标记 (<FORM METHOD=POST ACTION="Financej.asp">) 来调用 ASP 页 Financej.asp。
   
    我们已经为您创建好了表格。用文本编辑器打开 Web 服务器上 Tutorial 目录 () 中的 FVform.asp 文件即可。
   
    脚本
   
    我们使用 来调用您的 Finance 服务器组件。脚本首先确认来自 HTML 表格中任何没有输入的变量赋默认值。一个自定义的函数 IsNumeric,用于检测 HTML 表格中每个框输入的数据是不是合法数字。  
   
    Server.CreateObject 创建一个 Finance 组件的实例(也就是使组件可用),名为 MS.Finance.Java。为组件创建实例以后,就可以使用组件的方法和属性了。在脚本中紧随 Server.CreateObject
   
    Server.CreateObject 创建一个 Finance 组件的实例(也就是使组件可用),名为 MS.Finance。为组件创建实例以后,就可以使用组件的方法和属性了。在脚本中紧随 Server.CreateObject 之后,使用了 CalcFV 方法来计算存款计划的未来值。计算结果将出现在请求这个信息的浏览器中。
   
    要查看脚本,请用文本编辑器打开 Tutorial 目录 () 中的 Financej.asp Finance.asp 文件。
   
    用浏览器进行测试
   
    要运行 Financej.asp Finance.asp ASP 页,请打开 FVform.asp 文件,该文件将绘制一个表格并调用 Financej.aspFinance.asp 脚本来计算表格中描述的存款计划的未来值。
   
    要打开 FVform.htm,请将浏览器导向 http:///iishelp/iis/htm/tutorial/FVform.asp。
   
    在“Savings Plan”表格中输入数值。
   
    单击“Calculate Future Value”按钮。存款计划的结果将会出现。
   
    经过不长时间的学习,您已经创建了一个有用的 JavaActiveX 服务器 组件。如果需要使用其他财务函数,只要通过 Visual J++Visual Basic 将其他方法添加到 Finance 服务器组件中,就可以执行其他财务函数了。我们鼓励您进行尝试并提出创造性的方法来利用自己的 JavaActiveX 组件。您很快将会发现,用组件来开发 Web 应用程序几乎没有任何限制
   
   




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987