仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 419|回复: 9
打印 上一主题 下一主题

[学习教程] ASP网页编程之在Visual J++中编写ASP COM组件(转)

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:58:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;visualJava是一种以收集为中央的编程言语,很多只利用ASP剧本难以完成的义务能够用Java轻松地完成。同时,扩大ASP使用最好的办法莫过于到场COM组件。那末,能够使用Java为ASP开辟组件吗?本文经由过程实例,申明了在VisualJ++情况下开辟COM组件的详细历程。
1、概述

  自Java问世以来,各类开辟工具、开辟情况不休呈现。这些情况和工具面向分歧条理的用户,具有各自的长处。那末,利用VisualJ++作为Java开辟平台又有哪些长处呢?大略地讲,这些长处包含:

熟习的开辟情况。Microsoft的很多开辟工具,在作风、利用办法上都十分类似。熟习VisualBasic和VisualC++开辟情况的用户很快能够学会VisualJ++的利用。
与其他开辟情况的合作。比方,VisualJ++能够与VisualInterDev无缝合作,一切HTML、ASP和JavaScript代码的编写都可以在一样的情况内完成。
调试器。利用集成开辟情况(IDE)最明显的长处之一在于可使用内置的调试器。与一切其他Microsoft开辟情况一样,VisualJ++的调试器功效也十分壮大。
固然,VisualJ++的IDE也具有其他很多长处,好比关头词黑色显现、代码主动格局化、使用布局全局视图等等。
  出格地,关于那些在Java门外伎痒,却又不知从何入手下手的开辟者,我们以为VisualJ++是一个十分好的出发点。但是我们晓得,Sun和Microsoft已经由于后者对Java的“扩大”而产生争议。不论我们是不是把Java类封装成COM工具,Java程序都是扩大ASP使用的一种好办法。但思索到Microsoft公有的扩大不成能失掉一切Java平台或情况的撑持,因而,在VisualJ++编程中应该稳重思索是不是利用Microsoft的Java扩大。

  接上去我们将用VisualJ++创立一个可用于ASP情况的组件。这个组件只包括一个办法,它的参数是字符串URL,功效是提取并前往由URL指定的HTML文档的内容。

  本文将慢慢先容全部组件开辟历程。包含怎样在VisualJ++中创立工程,输出需要的Java代码并注释这些Java代码的感化,和怎样在ASP剧本内使用这个组件。

  注重:本文将利用VisualJ++6.0,但也能够利用更早版本的VisualJ++,需要的时分我们会指出分歧版本之间的差别。

  2、创立VisualJ++工程

  启动VisualJ++,呈现以下对话框:



  



              【】

  在这个对话框当选择新建工程,输出这个工程的名字FetchURL和符合的事情目次,然后选择COMDLL图标,最初单击“翻开”按钮。

  VisualJ++将主动为新建工程创立一个Java文件,名为Class1.java。在ProjectExplorer窗格,双击工程名字,按右键,然后将Class1.java更名为FetchURL.java。双击FetchURL.java文件名便可看到文件内容。FetchURL.java中由VisualJ++主动到场的代码是创立ASP组件必须的骨架代码,内容以下:

 /**
 *ThisclassisdesignedtobepackagedwithaCOMDLLoutputformat.
 *Theclasshasnostandardentrypoints,otherthantheconstructor.
 *PublicmethodswillbeexposedasmethodsonthedefaultCOMinterface.
 *@com.register(clsid=600455A0-B534-11D3-A434-0080AD38C188,
 *typelib=600455A1-B534-11D3-A434-0080AD38C188)
 */
 publicclassClass1
 {
 //TODO:Addadditionalmethodsandcodehere
 
 /**
 *NOTE:Toaddauto-registrationcode,refertothedocumentation
 *onthefollowingmethod
 *publicstaticvoidonCOMRegister(booleanunRegister){}
 */
 }
  起首要做的是变动类的名字,即把内容为“publicclassClass1”的行改成“publicclassFetchURL”。Java请求每个类的名字与其对应的Java文件名完整不异(巨细写敏感)。

  请注重上述代码中的COM指令,它由“@com.register”入手下手(在正文内)。该指令告知VisualJ++编译器把以后Java类包装成响应的COMDLL文件。将编译后的代码以DLL情势包装使得我们能够在ASP剧本中间接利用它。

  接上去,我们要修正主动天生的初始代码,使其具有后面提出的功效。完全的代码工程见本文前面的链接,此处我们顺次先容所输出代码的寄义。

 importjava.io.*;
 importjava.net.*;
  这两行代码导进了本组件要用到的Java包。JavaAPI由一系列的包构成,这些包供应的是间接可使用的代码,相似于C++中的库。在Java程序中利用import关头字有点相似于在C++程序中利用#include命令。

  要检察所导进的包界说了哪些类,能够在ClassOutline窗格内扩大响应的目次。FetchURL将使用java.io包中界说的类从翻开的收集毗连读进数据,使用java.net包供应的类创建与远程服务器的毗连并哀求文档。

 publicStringFetch(StringstrURL)
  FetchURL包括独一的办法Fetch,它的参数是一个字符串,该字符串指向请求提取的HTML文档的URL。

 StringstrInputLine=newString();
 StringstrResponse=newString();
 try
 {
 URLobjURL=newURL(strURL);
 try
 {
 URLConnectionobjConnection=objURL.openConnection();
  变量strInputLine将作为程序从远程服务器读取数据的缓冲区,变量strResponse将保留方针页面的全部文档,Fetch办法最初前往的就是这个strResponse变量。在这几行代码中,程序创立了一个URL工具并实验用该工具创建毗连。这两行代码都封装在try...catch块内以处置任何大概呈现的非常。Java使用“非常”来处置任何程序碰到的破例情形(一般是毛病)。比方,假如传送给Fetch办法的URL参数格局毛病,或程序运转时未能与指定服务器创建毗连,城市激发非常,此时程序将把非常信息前往给挪用Fetch办法的使用。非常处置代码见响应的catch关头字。

 BufferedReaderobjInReader=newBufferedReader(
 newInputStreamReader(
 objConnection.getInputStream()));
  这一行代码有点庞大,以是在完整弄懂它的意义之前先不要发急。在这行代码中,程序使用了象Java如许完整面向工具编程言语所供应的上风。起首,它用objConnection工具创立了一个InputStream类的工具,这实践上是一个能够从服务器读取数据的流;然后,又把这个InputStream类的工具传送给InputStreamReader,后者将卖力从InputStream工具读取数据;最初,又用这个InputStreamReader类的工具创立BufferedReader类的工具,也就是objInReader。程序将使用这个objInReader工具完成实践的数据读取操纵,并将了局保留为一个字符串。

 while((strInputLine=objInReader.readLine())!=null)
 strResponse+=strInputLine+"
";
 objInReader.close();
  在这部分代码中,程序利用了一个while轮回读进一切数据,直至输出为空(null)。objInReader是一个BufferedReader类的工具,它将缓冲读进的字符,整块地前往给strInputLine变量。然后,又把这个strInputLine和一个“”加到strResponse的开端。“”是Java的一个本义字符,暗示一个新的文本行。在读进方针文档的一切内容后,程序挪用objInReader工具的close()办法显式地封闭输出流。

  在一切代码输出终了以后就能够编译这个FetchURL工程了。VisualJ++不但将从Java源文件天生一般的类文件,还将天生一个DLL文件。这个DLL文件封装了Java类文件,它使得我们能够从任何COM情况(包含ASP)会见Java类文件所供应的功效。

  假如利用VisualJ++6,将.java文件编译成.class文件和响应的.dll文件很复杂,只需从Build菜单选择Build命令就能够了。假如测试FetchURL.dll的呆板和编译是统一台盘算机,则不必要任何附加的事情了;假如不在统一台呆板上,则还必要在测试呆板上用regsvr32FetchURL.dll命令注册它,就像其他COM工具的注册一样。
</p>asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。
兰色精灵 该用户已被删除
沙发
发表于 2015-1-20 06:52:10 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
若天明 该用户已被删除
板凳
发表于 2015-1-23 18:27:34 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
分手快乐 该用户已被删除
地板
发表于 2015-1-25 13:41:13 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
小女巫 该用户已被删除
5#
发表于 2015-2-2 22:16:38 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
深爱那片海 该用户已被删除
6#
发表于 2015-2-8 12:31:32 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
海妖 该用户已被删除
7#
发表于 2015-2-25 13:55:21 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
简单生活 该用户已被删除
8#
发表于 2015-3-7 21:38:10 | 只看该作者
那么,ASP.Net有哪些改进呢?
蒙在股里 该用户已被删除
9#
发表于 2015-3-15 14:38:33 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
admin 该用户已被删除
10#
发表于 2015-3-22 01:24:48 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-26 03:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表