quercus记录:php和java的混合型项目建立手记
浏览:2061次 出处信息
创业公司参与项目的人口众多、背景不一,目前市场上的主流方向为php与java,很多时候java工程师恨铁不成钢,php工程师也无可奈何。于是便有了此文,讲述如何使用quercus创建php java混合型项目。
quercus是什么?
quercus是Caucho公司针对php语言的java实现,100%完成了php5的解析。是resin内建支持的功能。同时,因为使用了resin,使得php可以很容易得到连接池、分布式session、负载均衡等功能。使用resin的php项目可以更加安全,不存在很多fastcgi的问题。
性能如何?
官方:用mediawiki与drupal来做实验,要比mod_php快4倍。
有一个编译选项,在resin专业版里支持,可以把php转成java class,得到更高性能。
- 新建一个java项目混合php项目
web.xml是关键,里面声明了*.php文件的访问都以com.caucho.quercus.servlet.QuercusServlet来执行。<?xml version="1.0" encoding="UTF-8"?> - <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- id="WebApp_ID" version="2.5">
- <display-name>testquercus</display-name>
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.php</welcome-file>
- </welcome-file-list>
- <servlet>
- <servlet-name>Quercus Servlet</servlet-name>
- <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>Quercus Servlet</servlet-name>
- <url-pattern>*.php</url-pattern>
- </servlet-mapping>
- </web-app>
所有的php文件放在webapp下,所有的java文件还放到java目录里。
如何混合java到php中?
在java目录新建类Test54Chen,生成后位置:
WEB-INF/classes/com/chen/FrameWork.class
- /**
- * @author 54chen(陈臻) [chenzhen@xiaomi.com czhttp@gmail.com]
- * @since 2011-10-25 下午08:40:49
- */
- package com.chen;
- public class FrameWork {
- public String go(String who) {
- return who + " gogogo!";
- }
- }
在webapp新建php文件:
test.php
- <?php
- import com.chen.FrameWork;
- $f = new FrameWork();
- var_dump($f->go("ohohoh"));
- ?>
配置到resin中:
目标文件夹指到webapp。
访问:test.php
截图:
1.整个项目的情况
2.访问的结果
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:结对编程实践
后一篇:数据驱动销售――个性化推荐引擎 >>
文章信息
- 作者:54chen 来源: 五四陈科学院-坚信科学,分享技术
- 标签: quercus
- 发布时间:2011-11-13 21:34:00
近3天十大热文
- [66] Go Reflect 性能
- [66] Oracle MTS模式下 进程地址与会话信
- [65] 如何拿下简短的域名
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [59] android 开发入门
- [59] 图书馆的世界纪录
- [58] 【社会化设计】自我(self)部分――欢迎区
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 界面设计速成
- [47] 读书笔记-壹百度:百度十年千倍的29条法则