- 浏览: 484881 次
- 性别:
- 来自: 南阳
文章分类
最新评论
-
yuanhongb:
这么说来,感觉CGI和现在的JSP或ASP技术有点像啊
cgi -
draem0507:
放假了还这么勤啊
JXL操作Excel -
chenjun1634:
学习中!!
PHP/Java Bridge -
Jelen_123:
好文章,给了我好大帮助!多谢!
hadoop安装配置 ubuntu9.10 hadoop0.20.2 -
lancezhcj:
一直用job
Oracle存储过程定时执行2种方法(转)
连接php和 java -- php/java bridge [2]
(三)为什么要使用 PHP/Java Bridge?<o:p></o:p>
PHP中的组件都是短暂,非持久化的。如果是复杂应用体系,我们需要提供中间层组件(像java beans/EJB)或者企业级的提供缓存,连接池或商业逻辑给PHP组件生成的页面。例如解析XML文件就是一个比较耗资源的工作,需要缓存;连接数据库也是个比较耗资源的工作,所以需要能够重用。标准的PHP XML和DB抽象层都是比较没效率的,因为它们都不能通过一个中间层来实现缓存和连接池。<o:p></o:p>
即使是一些小任务,也可能需要用到Java Class或Java类库,例如需要跨平台地生成Word,Excel或PDF文档。<o:p></o:p>
PHP,PHP/Java Bridge和php代码可以打包成标准的J2EE档案包格式,用户可以方便地布置到一个J2EE应用服务器或servlet引擎中去。用户不需要安装PHP,而且从他们的角度来说,他们看不到这些用JSP,servlet和PHP生成的页面有什么区别。由于Bridge允许PHP和J2EE间的session共享,开发者可以一步步地把基于JSP的程序和PHP集成起来。<o:p></o:p>
上面是说为什么PHP需要Java。而对于Java程序员来说,PHP和PHP/Java Bridge也可能是有用的。 现在有许多基于JSP模板系统的技术如jakarta Struts及更新一代技术Java Server Faces。JSP和自定义标签库有很多缺陷,把它们整合在一起去建立一个面向对象的WEB Framework暴露了这些问题。即使JSF的作者也承认了这样的系统是有严重缺陷的,并推荐像tapestry或facelets 这样用Java类定义组件并通过他们的ID来绑定到XML/HTML模板中。PHP/Java Bridge version 3.0可以嵌入PHP代码到JSF Framework中,这样用户界面设计师集中精力在设计HTML模板,而程序员可以用PHP建立原型,并使用已有的开发框架。现在不少大型站点就在前端使用PHP,而核心使用Java来构建系统。<o:p></o:p>
PHP/Java Bridge添加了下面这些原始类型和函数到PHP中,以使PHP可以方便地访问Java对象。在表格1中可以看到数据类型的分布情况。
new Java("CLASSNAME"): References and instanciates the class CLASSNAME. After script execution the referenced classes may be garbage collected. <o:p></o:p>
- new JavaClass("CLASSNAME"): References the class CLASSNAME without creating an instance. The object returned is the class object itself, not an object of the class. After script execution the referenced classes may be garbage collected. Example: <o:p></o:p>
java_require("JAR1;JAR2"): Makes additional libraries available to the current script. JAR can either be a "http:", "ftp:", "file:" or a "jar:" location. On "Security Enhanced Linux" (please see the README) the location must be tagged with a lib_t security context. <o:p></o:p>
java_context(): Makes the javax.script.ScriptContext available to the current script. Available since PHP/Java Bridge version 3.0.<o:p></o:p>
java_closure(ENVIRONMENT, MAP, TYPE): Makes it possible to call PHP code from java. It closes over the PHP environment and packages it up as a java class. If the ENVIRONMENT is missing, the current environment is used. If MAP is missing, the PHP procedures must have the same name as the required procedures. If TYPE is missing, the generated class is "generic", i.e. the interface it implements is determined when the closure is applied. <o:p></o:p>
The java_closure can also be used to emulate try/catch functionality in PHP4. <o:p></o:p>
$session=java_session(): Creates or retrieves a session context. When the backend is running in a J2EE environment, the session is taken from the request object, otherwise it is taken from PHP. <o:p></o:p>
$session=java_session(SESSIONNAME): Creates or retrieves the session SESSIONNAME. This primitive uses a "private" session store with the name SESSIONNAME. <o:p></o:p>
The java_session primitive is meant for values which must survive the current script. If you want to cache data which is expensive to create, bind the data to a class. <o:p></o:p>
- JavaException: A java exception class. Available in PHP 5 and above only. Example:<o:p></o:p>
<o:p> </o:p>
foreach(COLLECTION): It is possible to iterate over values of java classes that implement java.util.Collection or java.util.Map. Available in PHP 5 and above only. <o:p></o:p>
[index]: It is possible to access elements of java arrays or elements of java classes that implement the java.util.Map interface. Available in PHP 5 and above only. <o:p></o:p>
java_instanceof(JAVA_OBJ, JAVA_CLASS): Tests if JAVA_OBJ is an instance of JAVA_CLASS. <o:p></o:p>
- java_last_exception_get(): Returns the last exception instance or null. Since PHP 5 you can use try/catch instead.<o:p></o:p>
- java_last_exception_clear(): Clears the error condition. Since PHP 5 you can use try/catch instead. <o:p></o:p>
<o:p> </o:p>
Table 1. 数据类型映射表<o:p></o:p>
PHP<o:p></o:p> |
Java<o:p></o:p> |
Description<o:p></o:p> |
Example<o:p></o:p> |
object<o:p></o:p> |
java.lang.Object<o:p></o:p> |
An opaque object handle. However, we guarantee that the first handle always starts with 1 and that the next handle is n+1 for all n < 1024 (useful if you work with the raw XML protocol, see the python and scheme examples).<o:p></o:p> |
$buf=new java("java.io.ByteArrayOutputStream"); |
null<o:p></o:p> |
null<o:p></o:p> |
NULL value<o:p></o:p> |
$outbuf->println(null);<o:p></o:p> |
exact number<o:p></o:p> |
long<o:p></o:p> |
64 bit integer<o:p></o:p> |
$outbuf->println(100);<o:p></o:p> |
boolean<o:p></o:p> |
boolean<o:p></o:p> |
boolean value<o:p></o:p> |
$outbuf->println(true); <o:p></o:p> |
inexact number<o:p></o:p> |
double<o:p></o:p> |
IEEE floating point<o:p></o:p> |
$outbuf->println(3.14); <o:p></o:p> |
string<o:p></o:p> |
byte[]<o:p></o:p> |
binary data, unconverted<o:p></o:p> |
$bytes=$buf->toByteArray();<o:p></o:p> |
string<o:p></o:p> |
java.lang.String<o:p></o:p> |
An UTF-8 encoded string. Since PHP does not support unicode, all java.lang.String values are auto-converted into a byte[] (see above) using UTF-8 encoding. The encoding can be changed with the java_set_file_encoding() primitive.<o:p></o:p> |
$string=$buf->toString();<o:p></o:p> |
array (as array)<o:p></o:p> |
java.util.Collection or T[]<o:p></o:p> |
PHP4 sends and receives arrays as values. PHP5 sends arrays as values and receives object handles which implement the new iterator and array interface.<o:p></o:p> |
// pass a Collection to Vector |
array (as hash)<o:p></o:p> |
java.util.Map<o:p></o:p> |
PHP4 sends and receives hashtables as values. PHP5 sends hashtables as values and receives object handles which implement the new iterator interface.<o:p></o:p> |
$h=array("k"=>"v", "k2"=>"v2"); |
JavaException<o:p></o:p> |
java.lang.Exception<o:p></o:p> |
A wrapped exception class. The original exception can be retrieved with $exception->getCause();<o:p></o:p> |
... |
本文地址:http://www.newbooks.com.cn/info/8934.html
发表评论
-
mysql 定时任务
2015-11-03 09:57 778定时任务 查看event是否开启: show variabl ... -
tomcat服务器大数量数据提交Post too large解决办法
2015-10-29 11:05 738tomcat默认设置能接收HTTP POST请求的大小最大 ... -
Tomcat启动内存设置
2015-10-20 15:40 696Tomcat的启动分为startupo.bat启动和注册为w ... -
Java串口包Javax.comm的安装
2015-10-12 16:32 698安装个java的串口包安装了半天,一直找不到串口,现在终于搞 ... -
在 Java 应用程序中访问 USB 设备
2015-10-10 17:49 961介绍 USB、jUSB 和 JSR- ... -
mysql定时器
2015-08-04 14:01 6065.1以后可以使用 ALTER EVENT `tes ... -
oracle安装成功后,更改字符集
2015-07-23 11:53 641看了网上的文章,乱码有以下几种可能 1. 操作系统的字符集 ... -
利用html5调用本地摄像头拍照上传图片
2015-05-18 09:36 2610测试只有PC上可以,手机上不行 <!DOCTYPE ... -
必须Mark!最佳HTML5应用开发工具推荐
2015-05-15 22:50 964摘要:HTML5自诞生以来,作为新一代的Web标准,越来 ... -
Mobl试用二
2015-05-13 14:28 648最近有空又看了一下Mobl的一些说语法,备忘一下: 1 ... -
Nginx配置文件详细说明
2015-05-08 19:58 616在此记录下Nginx服务器nginx.conf的配置文件说明 ... -
axis调用cxf
2015-04-23 13:51 5571、写address时不用加?wsdl Service s ... -
mysql 获取第一个汉字首字母
2015-03-18 17:48 651select dmlb, dmz, dmsm1, CHAR ... -
failed to install Tomcat6 service解决办法
2015-02-12 09:20 537最近我重装了一下tomcat 6.0,可不知为什么,总是安装 ... -
tomcat 分配java内存
2015-02-11 10:37 604//首先检查程序有没有限入死循环 这个问题主要还是由这个问 ... -
[Android算法] Android蓝牙开发浅谈
2014-12-15 15:27 670对于一般的软件开发人 ... -
Android 内存溢出解决方案(OOM) 整理总结
2014-11-21 10:12 753原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出 ... -
《HTML5从入门到精通》中文学习教程 PDF
2014-11-19 21:26 1130HTML5 草案的前身名为Web Applications ... -
mysql字符串函数(转载)
2014-11-13 12:05 572对于针对字符串位置的操作,第一个位置被标记为1。 AS ... -
MySQL中tinytext、text、mediumtext和longtext详解
2014-11-07 11:37 867、数字类型 类型 范围 说明 ...
相关推荐
2. **Java.inc**:这是一个PHP扩展文件,包含PHP端的接口,用于在PHP代码中调用JavaBridge.jar中的类和方法。 三、集成与使用 在项目中使用PHP-Java-Bridge通常涉及以下步骤: 1. **安装JavaBridge.jar和Java.inc...
2.把下载的JavaBridge.jar直接用winrar打开,把这个jar包拷到 你的php目录的ext/下。 3.打开war包,里面有个java的文件夹,把他全部拷到你的项目下,如/demo/java 4.目前的版本是VMBridge了,要php调用java类,要先...
这个技术的关键在于它的几个核心组件,其中包括JavaBridge.jar、php-servlet.jar和php-script.jar,这些都是在Java和PHP集成环境中不可或缺的部分。 1. **JavaBridge.jar**: JavaBridge.jar是PHP/Java Bridge的...
2. **部署JavaBridge.jar**:将JavaBridge.jar放在服务器的适当位置,并确保Java守护进程可以访问。 3. **配置PHP**:将Java.inc添加到PHP的include_path中,以便PHP脚本可以轻松地引入和使用。 4. **启动Java守护...
有时,开发者需要在Java平台上运行PHP代码,这就需要用到JavaBridge和Tomcat的支持。本文将详细讲解标题和描述中涉及的知识点,以及如何在Tomcat服务器上配置这些jar包以实现PHP与Java的集成。 首先,我们来看一下...
"将PHP/Java Bridge的JavaBridge.jar、php-servlet.jar和php-script.jar"这个话题,就是关于如何实现PHP与Java之间的无缝集成。以下是这些组件的详细解释和相关知识点: 1. **JavaBridge.jar**:这是PHP/Java ...
JavaBridge.war是PHP-Java Bridge的服务端组件,包含了处理PHP请求的Java代码。部署后,这个WAR文件会被解压并运行,提供PHP调用Java的接口。开发者可以通过HTTP GET或POST请求来调用Java方法。 5. PHP端调用Java ...
2. **放置到lib目录**: 将JavaBridge.jar, php-script.jar, php-servlet.jar, 和 script-api.jar 放入Tomcat安装目录下的`lib`子目录。这样,Tomcat在启动时会自动加载这些库。 3. **配置Tomcat**: 需要在Tomcat的`...
基于java的开发源码-PHPJava Bridge.zip 基于java的开发源码-PHPJava Bridge.zip 基于java的开发源码-PHPJava Bridge.zip 基于java的开发源码-PHPJava Bridge.zip 基于java的开发源码-PHPJava Bridge.zip 基于java的...
在PHP Java Bridge中,`birtreportlib`可能是用于连接和执行BIRT报表的相关库,它使得PHP能够调用BIRT的功能,例如创建、运行和渲染复杂的报表。 2. **META-INF**:在Java世界中,`META-INF`目录是包含元数据的特殊...
PHP/Java bridge , call php in java and call jacva in php. Java as backend and php as a front end.
JavaBridge.jar 和 php-servlet.jar 是两个在 PHP 与 Java 集成环境中常见的库文件,主要用于在 Apache Tomcat 或其他 Java 应用服务器上运行 PHP 脚本。这两个组件构成了一个桥梁,使得 PHP 可以利用 Java 的强大...
tomcat运行php项目必须的jar包:JavaBridge.jar、php-servlet.jar和php-script.jar 将下载好的JavaBridge.jar、php-servlet.jar和php-script.jar复制到tomcat的lib目录下; 并且完成配置, 教程链接:...
1. **JavaBridge**:JavaBridge是Java和PHP之间的一个桥梁,它允许PHP代码调用Java类和方法,反之亦然。通过JavaBridge,PHP可以利用Java的性能和功能,例如访问数据库、使用Java库或服务。在Tomcat中配置JavaBridge...
JavaBridge.jar、php-script.jar和php-servlet.jar是将PHP集成到Java应用服务器,特别是Tomcat中的关键组件。这些JAR文件允许在Java环境中运行PHP脚本,为开发者提供了混合使用这两种语言的能力,从而利用Java的稳定...
2. **请求处理**:Servlet接收到请求后,通过JavaBridge.jar解析和转换请求数据。 3. **调用Java**:JavaBridge.jar执行相应的Java代码,并捕获结果。 4. **结果返回**:Servlet将Java代码执行的结果转换回PHP可理解...
本篇文章将详细讲解如何通过PHP的JavaBridge 6.2.1版本来调用Java代码,并提供一个可运行的实例和源代码。 首先,JavaBridge是PHP与Java之间的一个桥梁,它允许PHP脚本直接调用Java类和方法,从而实现PHP应用与Java...
JavaBridge.jar ... PHP/Java Bridge的JavaBridge.jar、php-servlet.jar和php-script.jar复制到tomcat的lib目录下. http://www.laokboke.net/2011/12/04/how-to-deploy-php-app-to-tomcat/
找到`JavaBridge.war`文件,使用WinRAR打开并提取`WEB-INF/lib/JavaBridge.jar`到PHP的`ext`目录下。 接下来,将`JavaBridge.war`中的`java`文件夹复制到PHP项目的相应位置,例如`/demo/java`。当前版本的桥接器为...