换个角度谈JSP和PHP(摘)
最近一段时间,有人老是问:JSP是否要代替PHP? 那我们就来了解一下
什么是JSP? 大家知道JSP是由Sun Microsystem公司与1999、6月推出的最新
技术,是基于Java Servlet以及整个java体系的web开发技术,是Servlet 2.1
API的扩展。利用这一技术可以建立先进,安全和跨平台的动态网站。
JSP与微软的Active Server Pages 兼容,所不同的是它使用类似HTML
的标记以及java 程序代码段而不是VBScript.当你所使用的网站服务器没有
提供本地的ASP支持,可以考虑使用JSP.
JSP和SERVLET到底在应用上有什么区别,很多人搞不清楚。简单的说,SUN
首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出
HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML
非常不方便。后来,sun推出了类似于ASP的同类JSP,把JSP TAG镶嵌到html语句
中,这样,就大大和方便了网页的设计和修改。所以说,它和ASP,PHP是完全
一样的嵌入型的脚本语言。
从网络的结构来看,一个网络项目最少分为三层:数据层,逻辑层,用户层。
servlet用来写逻辑层,但用来写用户层就很不方便。jsp则主要是为了方便
写用户层的,当然也可以写逻辑层。现在有好多人,经常会不自觉的把用户层和
逻辑层混在一起。
其实,根据sun自己的推荐,jsp中应该仅仅存放于逻辑层有关的东西,
也就是,只放输出html网页的部分。而所有的计算,分析等,统统放在逻辑层
,应该放在java bean中,通过jsp调用java beans,实现两层的整合。
所以,学了jsp,不会用java bean并进行整合,等于没学。所以jsp在本质
上和php, asp是类似的一个脚本语言。只不过,它是用java写的。
php在用户层上的表现是有目供睹的,现在唯一的问题就是它缺少一个逻辑
层,但这个逻辑层是可以用其它语言来写的,就向COM/DCOM是用VB,VC写的,
java bean是用java写的,所以,php不一定非要用某个语言写这个组件,
它完全可以调用其它语言写的组件,用来实现比较复杂的逻辑功能。
不知大家注意到没有,微软提出的三层模型是:用户层用asp,asp+,
逻辑层是com/com+,数据层是ado,而sun 提出的三层模型是:用户层用jsp,
逻辑层是java bean,数据层是jdbc,而php呢,没有以上的部分,这是为什么呢?
这就是因为,它不是有某个公司来制定的,因为它是开放源阿。所以,php将来
的发展方向应该是如何做到和用其它组件完美结合的能力,完善与各个数据库
有个统一的接口问题。也就是发挥我们在用户端的优势,结合各种组件和数据库
,从另一方面到达真正的跨平台,高效率,安全等要求。
其实,我们不难发现,sun开发了三类产品, 它们分别是客户端用java applect
,服务器端用servlet, 数据库端用jdbc,但大家也知道,客户端采用applet已经
很少了。说明,applet并不成功。也许将来在带宽无限大的时候,也许会真正
实现它吧。
另外,说些局外的话,如果微软被分拆,操作系统将战火纷飞,那时,想我们
这些软件的开发人员必要找一个通用语言进行开发,到时java会一统天下。而且
从微软分出的应用软件公司将成为java的新领导者。目前的java大头sun和ibm都
死气沉沉,令人失望。希望新公司能注入新活力。不过,这样会影响java的跨
平台,因为要展开java标准大战。
最后,要说的是,jsp并不能完全代替php。