主题 : 以开源精神看Php和Jsp/Java--二者开*系统的区别[转载]
级别: 超级版主
UID: 2
积分:3036 加为好友
威望: 24 精华: 5
主题:206 回复:1328
注册时间:2009-06-02
在线时长:2.89
1#   发表于:2010-01-14 17:37:21  IP:115.175.*.*
开源是开放源代码Open Source的简称,开源的精神是自由.Java已经受到开源力量的欢迎.特别是微软的.net推出后,开源领域需要一套与之抗衡的系统,Java无疑是首选,Jakarta.apache.org专门的java开源开发组织.

PHP诞生于开源世界中,是开源力量使之迅速普及,但是Jsp/java出现后,就开始越来越不同了.

首先,如果把Jsp等同于PHP,认为只不过多了一种脚本工具的选择,那就大错特错了.

首先我们来看PHP,"PHP已经是一种没有前途的嵌入式脚本语言了",它应该只适合小型站点的开发和使用.虽然目前PHP项目还排列在SourceForge.net排行榜前列,但是大量的Jsp/Java开源项目正在不断涌现.

同时我也注意到,SourceForge.net排行榜中的这些PHP项目是如此复杂,不堪更改,我只能下载使用他们,当做一件艺术品欣赏他们.我觉得这已经开始背离开源的精神宗旨-自由,一个软件应该让其他人自由的更改,尤其当一个系统变得复杂时,无疑Java/jsp是最能胜任的.

从系统架构上看,PHP属于下列传统的架构:
 

而Jsp虽然也经过上述传统的过程,但是Jsp是在发展的,现在Jsp是如下架构
 
 

Jsp只是多层系统中负责前台显示的模板语言了.

下图是显示一个多层的Jsp/servlet/Java的系统:


应用系统是一个多层结构的,中间层的JSP通过其它的对象或者Enterprise JavaBean来访问后台资源。EJB服务器和EJB提供访问访问资源的方法,支持事务,支持安全管理(后两者是EJB和Javabeans的区别)。 
在JSP中使用JavaBean和用Enterprise JavaBean是有区别的。使用JavaBean的时候,通常只是使用简单的类来包装数据信息。JavaBean通过简单的get或者set方法来存取JavaBean的属性值。允许用jsp:usebean标签来动态的设定属性值。用Enterprise JavaBean的话,过程比较复杂一些,首先要初始化上下文,然后通过名字根据名字服务找到所需要的EJB,创建一个实例之后,就可以使用了。

我个人认为,复杂及高安全性的系统就需要使用EJB,因为EJB是一个容器,目前调试不是很方便,等大量EJB工具出来后,再使用它也不迟到,目前先掌握Javabeans已经足够对付中小型系统(访问量不是很大).

开源系统中的EJB是Jboss,Jboss和tomcat可以很好的协同工作,Jboss现在开始频繁出现在sourceforge,net的排行榜上了.


有种MVC(Model-View-Control) 模型,在这个模型中,Jsp只担任View工作,完全就是html了,控制view的功能封装在Servlet中.



可见上图中,将request和reponse分开了.但我在中小系统的实践中,我倾向与将request和reponse合并,将view的控制功能还是封装在Jsp中,这样主要是为了快.但开发大型系统,就不能贪图开始之快了.如果你要研究MVC,可以下载Jakarta.apache.org的Struts来研究.

由上可见,除非PHP直接来调用Javabeans(Ejb),否则PHP实际已经在架构上落后了.

另外,从维护协同工作上看,PHP将大量代码混同在HTML之中,增加系统复杂性,使得网页设计人员无法自由的修改PHP,这当然是违反自由的宗旨,而Jsp通过Javabeans Ejb 等中间层的使用,大大纯洁了Jsp代码,Jsp基本就是Html,网页设计人员可以任何时候自由的更改Jsp,最好的Jsp系统是在Jsp中很少看到Java代码.

我揣测,以后PHP程序员,一部分能接受新的概念,升级跃居到Java程序员,主要以面向对象概念从事大量中间件开发,另外一部分,将无法赶上发展的潮流,"沦落"为一个 Jsp(Php)程序员,进行html Javascript代码开发及简单的view控制功能的jsp开发.
朝闻道,夕死可矣。
级别: 白丁
UID: 1613
积分:2 加为好友
威望: 0 精华: 0
主题:0 回复:3
注册时间:2010-01-14
在线时长:0
2#   发表于:2010-01-14 17:43:23  IP:116.93.*.*
不错
级别: 童生
UID: 94
积分:18 加为好友
威望: 0 精华: 0
主题:1 回复:15
注册时间:2009-06-09
在线时长:0
3#   发表于:2010-01-14 17:45:27  IP:58.206.*.*
PHP的CMS系统比较多哟。。
级别: 秀才
UID: 1497
积分:92 加为好友
威望: 0 精华: 0
主题:5 回复:58
注册时间:2009-12-30
在线时长:0
4#   发表于:2010-01-14 18:10:56  IP:124.152.*.*
好文章,收益颇深。
级别: 举人
UID: 1401
积分:90 加为好友
威望: 0 精华: 0
主题:14 回复:17
注册时间:2009-12-19
在线时长:0
5#   发表于:2010-01-16 21:24:18  IP:221.246.*.*
这篇文章我很早就读过了,但目前开源的cms,还是php的天下,jeecms如果要超越主流的cms ,好有很长的路要走
级别: 白丁
UID: 3
积分:2415 加为好友
威望: 0 精华: 0
主题:23 回复:1614
注册时间:2009-06-02
在线时长:0
6#   发表于:2010-01-16 23:04:46  IP:117.90.*.*
楼上朋友说的是实情,我们也会不断的完善jeecms,开发工程师已经预言jeecms v3.0至少要达到主流cms的水平,希望大家继续支持!
生命在于折腾!
1 共1页