| |
引言:
在我前面的那篇《手把手教你使用vb来编写asp组件》中我已详细的介绍了如何使用vb来实现asp组件的编程,其实使用java语言同样可以编写一个性能非常优秀的组件。本文就想介绍一下如何使用microsoft visual j++来编写一个组件来访问asp内置的对象。
实例的提出 :
我们大家都知道,我们可以访问response和request对象来创建组件。这种组件的一个实例就是广告管理系统,它能够通过内部访问数据库并且随机选择一条广告,然后输出它的html旗帜广告代码。在本文中,我不想讨论从java com组件中访问数据库,也不想讨论广告管理系统,因为那是一个非常大的问题。我只想谈谈从java com组件中调用asp的内部对象的方法。 下面我就想教您一步一步的编写这个组件
一、开始新的工程:
1、 打开visual j++ 并且点击 open/new project,创建一个新的工程。
2、 选择“visual j++ projects”中的components选项,然后选择com dll选项 3、 把工程名改名为waynestudio,然后在location 对话框中给出你想保存工程文件和编译组件的路径。
4、 在屏幕右边的project explorer窗口中 ,把class1.java改为javaasp.java。
5、 双击javaasp.java,会出现一个代码框,把下面的代码输入代码框,并保存。
import com.ms.iis.asp.*; import com.ms.mtx.*;
这两句应当出现在程序的最前面,它们是导入命令,导入我们在工程中需要用到的某些java类的包,我下面给出完整的程序
/** * this class is designed to be packaged with a com dll output format. * the class has no standard entry points, other than the constructor. * public methods will be exposed as methods on the default com interface. * @com.register ( clsid=ade14872-9cf6-42a0-a8f2-7a571e51a840, typelib=5e11d496-7229-4283-a40b-139e05def44c ) */ //上面我们看到一个clsid,它是用来标记微软com组件所用的。
import com.ms.iis.asp.*;//导入两个包
import com.ms.mtx.*;
public class javaasp {
public boolean helloworld()
{ response newres = aspcontext.getresponse();//创建一个response newres.write("hello world,maybe it is your first javaasp com!"); return true; }
}
6、 好程序写完了,现在点开工具栏的project,点击waynestudio properties (在最底下)。选择com classes,,在automatically generate type library中选中javaasp'类,并且点击'ok'。
二、编译工程project :
好,现在我们终于要准备编译我们的java com 组件了。点击工具栏中的build/build,在下面的状态栏中,你会看到不同的状态信息显示组件正在被注册而且type library 正在被生成。这之后,你会看到一个成功信息solution update succeeded,恭喜你编译成了你的第一个用来访问asp内部对象的java com组件。
三、在远程服务器上注册组件
当你使用visual studio来编译一个com组件,它会自动的注册组件并且生成type library,但是如果你想在其他服务器上使用你的组件的话,那么你就必须在使用它之前注册你的组件如果你想在别的机器上注册你的组件,你可以在dos状态下使用下列格式:
c:/regsvr32 waynestudio.dll
注意,使用你编写并且编译后的dll文件名代替waynestudio.dll 。
四、创建一个调用组件的asp页
我们已经编译了组件,并且已经注册了它,现在我想介绍一下如何在asp程序中调用我们刚注册的组件。打开一最喜欢使用的asp编辑器,创建一个新的asp页面。取名为firstcom.asp :
<%option explicit response.buffer = true response.expires = 0 %> <html> <head> <title> 你的第一个java com组件 </title> </head> <body> <p align="center" id="com"><b> <%dim javaasp set javaasp = server.createobject("waynestudio.javaasp") javaasp.helloworld set javaasp = nothing %> </b> </p> </body> </html>
上面的程序代码中我们简单的从waynestudio.javaasp组件中创建了一个javaasp 对象,然后我们调用了它的方法helloworld来显示如何从组件中使用response方法。
五、程序设计标示符(progid)
如果用过createobject方法的朋友,都会知道程序设计标示符(progid),它是,它是你给server.createobject的参数,也就是你想使用的组件的标示符。现在就有个问题了,你怎么知道你创建的组件的标示符是什么,你又如何改变它呢?在很简单,在visual j++ 和 visual basic中,你的工程(project)的名字就是你的组件的progid的第一部分,如在本文中工程名为waynestudio,那么progid 以waynestudio开头,然后你的类名是progid的第二部分,如javaasp,所以完整的progid 就是waynestudio.javaasp
六、小结
以上我已经介绍了如何使用java来创建asp com组件,希望对大家有所帮助。本文只是举了一个非常简单的例子,只用到了asp内部对象中的response对象,其实java能实现的远不止这些,如下,我列出一些调用asp内部对象的方法:
response newres = aspcontext.getresponse(); request newreq = aspcontext.getrequest(); server newserver = aspcontext.getserver(); session newsession = aspcontext.getsession(); application newapplication = aspcontext.getapplication();
希望大家能够参考本文完成你们自己的java com编写,这样本文的目的就达到了。
|
|