已经有一些帖子在讨论这种架构是好主意还是坏主意。由于公司内部的许多原因,包括现有的编程人才,我们决定使用java作为后端,php作为前端。我们的目标是。。。
java-模型/控制器
php-视图
我们正在构建glassfish和apache之间交互的原型。我们还在研究的一件事是当用户访问http://domain.com/login.html 他们登录,这个登录将被发送到glassfish控制器,这个控制器存在于类似的地方 /login.java
. 我们可以做到这一点没有问题,麻烦的是让视图呈现在该url。
有没有人用php或其他技术来实现这一点?
3条答案
按热度按时间slsn1g291#
您是否考虑过在java中设置soap/rest服务器,并让php与之对话?我想这比你想要的要简单得多。
6vl6ewon2#
我在两家使用java服务层和php客户机层技术栈的公司有过第一手的经验,尽管它不是专门使用的。为了清晰地划分层,构建了一个定义良好的jsonrestapi,这样每个层都有一个可以编码的契约。
java层在持久层之间使用springmvc生成json视图,其中包含定义良好的路由(即url结构),以便php层
GET/PUT/POST/DELETE
资源。具体到登录问题,实际上有两个java服务,一个专门用于登录/注销,另一个用于常规后端。
访问时
/login
我想这是一个.php
文件。登录的提交<form>
“登录”服务导致添加了会话cookie,但也添加了加密的“用户id”cookie。然后可以使用加密的cookie来保护对产品的java服务层的访问。从php到java的每个rest请求都可以访问cookie,然后java层可以解密“用户id”并响应php rest调用(如果它是有效的)。然后,java层可以访问真实的用户id,以便从持久存储返回特定于用户的数据。laawzig23#
我很抱歉提出这个问题,但似乎只要坚持使用其中一种语言,事情就会简单得多。如果您正在使用php向视图中添加更多逻辑,那么您可能需要了解一下velocity。它允许您访问和创建变量,遍历列表,使用条件,定义宏,进行方法调用,等等。这似乎可以使事情变得更干净。但是,通常最好尽量避免模板中的逻辑。
如果您想使用php,因为这是必需的,我建议您看看如何使用web服务进行通信。看看谷歌gson图书馆。它是将json对象Map到模型(反之亦然)的非常好的工具(在java方面)。
在您的前端,它可能也值得一看 Backbone.js 。它是一种工具,可以简化对模型对象的模拟,并将事件绑定到它们,或者将它们直接添加到字段等。