网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.AWT和Swing的概述.
.JAVA链接DB2数据库的例子.
.数组在Java编程中的应用.
.Struts模块化编程经典实战教程(三.
.setFullYear 方法.
.J2EE全实例教程.
.使用Java技术在Cocoon中实现商业.
.怎样做Tomcat4.1.31的数据库连接.
.J2ME程序开发全方位基础讲解汇总.
.我常用的邮件发送类.
.java Singleton模式.
.Java 进阶:分享 Struts 多模块的.
.JAVA虚拟机实例学习笔记一.
.JDK开发工具包.
.javac-----Java编程语言编译器.
.程序员杂谈:Ajax优于JSF的几个原.
.java中传值和传址及其引伸深度克.
.线程的理解.
.让你学习控制住Web2.0的方向盘一.
.解析Java类和对象的初始化过程.

PHP调用java类的两种方法

发表日期:2008-1-5


Java语言功能强大,因此在许多情况下在PHP中来调用Java的功能将十分有用。在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现。下面我们来比较一下这两种方法各自的特点。

1.php的Java模块

php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如:

<?php

$system=new Java("java.lang.System");

print "Java version=".$system->getProperty("java.version")." <br>\n";

?>

使用这种方法的优点是比较方便,只要用new Java()来创建一个Java对象,就可以同php类一样来调用Java对象。但是这种方法也有以下明显的缺点:

1.由于php的Java模块根据php的数据类型选择最适合的Java方法,因此无法调用Java过载的函数。

2.php的Java模块将在当前Web Server的进程中载入JVM(Java虚拟机),因此系统开销极大,影响Web Server进程的执行效率。

3.在某些操作系统和Web Server环境中,php的Java模块将使Web Server进程僵死。见http://www.php.net/bugs.php?id=6122。

由于这些原因,php的Java模块一直无法应用到实际的的软件系统中。

2.minij2ee应用服务器SJOP协议实现

在介绍minij2ee应用服务器SJOP协议实现之前,先简单介绍一下minij2ee应用服务器。minij2ee应用服务器是第一款支持php的J2EE应用服务器产品,使php能够用于开发企业级应用系统。SJOP全称是Sample Java ORB Protocol(简单Java对象请求代理协议),是一种简单高效的对象请求代理协议。比如:

<?php

$conn=minij2ee_fetch_connection();

print "Java version=".minij2ee_callstatic_javaobj ($conn,"java.lang.System","getProperty", "java.lang.String","java.version")." <br>\n";

?>

minij2ee应用服务器实现SJOP协议的主要目的是使php中能够访问EJB企业级组件,因此minij2ee提供了一个EJB-PHP编译器,可以把EJB组件编译成php的类,使php程序中能够方便的调用EJB组件,例如:

<?php

require("Cart.php");

file://Cart.php是编译Cart EJB后生成的Cart EJB的php类定义。

$home=new CartHome(); file://创建EJB的Home接口。

$objref=$home->create($cart_name); file://创建Cart EJB。

$cart=new Cart($objref);

$cart->add("some goods");file://向购物车中添加一个物品。

?>

使用minij2ee应用服务器的php支持,就可以开发出基于php和J2EE技术的,面向对象的,稳定高效的企业级应用系统。关于更具体的PHP-J2EE技术的介绍,请访问http://www.minij2ee.com/document/document_index_6_0.Html。


上一篇:Java调试教程--多线程调试 人气:692
下一篇:Java动画编程基础第四部分 人气:627
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐