我想请教下各位前辈,前端用PHP,后端用Java,怎么进行交互额?


我想请教下各位前辈,前端用PHP,后端用Java,怎么进行交互额?
AJAX的话可以用JSON
可是如果只是页面跳转的话,用啥额,PHP不可能懂得SpringMVC吧

java json php 交互

我吃金坷垃 10 years ago

有必要用java嘛,PHP是世界上最好的语言,并且PHPNG 也快出来了

kexin answered 10 years ago

php不是用来做后端程序的吗?

zhanghe answered 10 years ago

涼宫ハルヒ answered 10 years ago

前端php。。。真够纠结的,谁这样设计的。。2个语言随便哪个都行了。
交互方式多了,http、socket、rpc,随便选吧

简单.LB answered 10 years ago

目前我公司就是这种架构,但是也不是说让php只负责前端,跟淘宝UED的那篇文章,多少有点出入。php当然可以只负责前端来调用java数据接口。但是也可以去负责一些php擅长的逻辑。

java负责大数据的处理之类的。从业务上与PHP分离开。

楼主的问题是如何交互, @seanlook 说的几种方式,比较完整了。大致就是webservice、RPC,soap这几种方式。用java虚拟机跑php,我觉得要比rpc调用会坑很多。

我们公司是用的RPC,但是是自己实现的RPC框架,数据转为二进制的,使用google 的 protobuffer。

rpc调用也很方便。几行代码就搞定了。因为数据传输使用二进制,所以效率上是比soap之类的快。应该是最优的选择了。希望能帮到题主。


更新!


 我去,没仔细看楼主的问题,原来只是要交互啊,最简单的,如果你用springmvc,那么你直接把action作为接口暴露出来,php发起http请求调用java的接口就哦了~!

天体D孤云 answered 10 years ago

1、可以使用http的方式进行RPC(这也是最基础的方式啦)
2、利用yac等RPC框架(虽然也是基于HTTP的,但是反序列化和序列化会更爽)。
3、使用RabbitMQ等队列。
4、socket。。。。。。(这个比较底层,如果你对连接有特殊需求的话,建议自定义化,当然会复杂以及难度变大)

专业loli控 answered 10 years ago

前端用PHP,后端用java的话,由java提供相关的接口就可以了啊,用curl请求接口信息。

Acchan answered 10 years ago

后端的话 直接请求连接嘛 , 如果跳转需要带参数就ajax值写入连接里面

Bolo喵 answered 10 years ago

java只暴露api,然后php拿到json数据,渲染页面,页面跳转放到php呢?


突然想起来之前看到过淘宝ued的一篇文:

前后端分离

主要思想也就是酱紫吧:


前端:负责View和Controller层。
后端:只负责Model层,业务处理/数据等。

文中前端是:node+js+html
你换成:php+js+html

然后看到楼下说的rpc,也不是很懂,就查了一下,可以看这个回答理解一下:

什么是RPC

对应的就可以用php的rpc框架了,比如yar,当然不用也是可以的吧

zrsad answered 10 years ago

基本就是 http+json.当然也可以使用现成的rpc框架

彻斯鲁·梅耶 answered 10 years ago

很有意思,我曾经也是老大让我做过这个调研,当时还用php与java结合做了一个项目。看到这里前面的回答,大部分都是说通过RESTfull API或json去调用java处理业务逻辑的结果,而我想题主可能更需要的是 Quercus PHP/Java Bridge SOAP 这三种技术的一种。

Quercus 是一个完全以java实现的PHP5引擎,可以让PHP程序在JVM上执行,前端php代码就像引入java包一样,然后就可以直接new一个java对象来使用。这也是我在调研项目中选用的。

PHP/Java Bridge 本质上也是通过XML去前后端交互数据的,但是它实现的PJB协议不需要我们自己去解析XML获取数据,php-java-bridge帮我们做好了数据类型映射这类功能。

SOAP具有与程序语言、平台和硬件无关的特性,不仅可以引用于php和java之间,但是据说效率不怎么高。

实际测试结果,个人真觉得没必要把一个项目用这种实现方法,一个字,zuo。

有了上面这些信息,我相信谷歌可以告诉你更多。

-伊吹萃香- answered 10 years ago

Your Answer