比较PHP和JSP这两个Web开发技术在目前的情况是其实是比较PHP和Java的Web开发以下是我就几个主要方面进行的比较
一 语言比较
PHP是解释执行的服务器脚本语言首先php有简单容易上手的特点语法和c语言比较象所以学过c语言的程序员可以很快的熟悉php的开发而java需要先学好java的语法和熟悉一些核心的类库懂得面向对象的程序设计方法所以java不如php好学
Java首先要编译成字节码class文件然后在java虚拟机上解释执行Java的Web开发首先最容易想到的就是JSP(现在已经到JSP)原来的java的Web开发都是用servlet来实现的用servlet来开发需要程序员在java的源文件中嵌入大量的html代码所以后来就出现了JSPJSP可以方便的嵌入到html文件当中其实jsp文件在服务器上执行的时候首先会被应用服务器转换成servlet然后再编译执行Jsp可以通过servlet和JavaBean的支持产生强大的功能JavaBean 是一种可复用的跨平台的软件组件使用javabean可以方便的实现java代码和html的分离能够增强系统的功能和软件的复用性
Java的Web开发属于SUN公司定义的JEE其中的规范而且在JEE中包括了java的Web开发的所有方面如JSPServletJDBCJNDIJAVABEANEJB等等JEE就特别适合于做大型的企业级的应用
二 数据库访问比较
Java通过JDBC来访问数据库通过不同的数据库厂商提供的数据库驱动方便地访问数据库访问数据库的接口比较统一
PHP对于不同的数据库采用不同的数据库访问接口所以数据库访问代码的通用性不强例如用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改而PHP则需要做大量的修改工作
三 系统设计架构比较
采用Java的Web开发技术需要使用的是面向对象的系统设计方法而PHP还是采用面向过程的开发方法所以用Java进行开发前期需要做大量的系统分析和设计的工作
四 跨平台性
Java和PHP都有很好的跨平台的特性几乎都可以在不作任何修改的情况下运行在Linux或者Windows等不同的操作系统上
五 开发成本比较
PHP最经典的组合就是PHP + MySQL + Apache非常适合开发中小型的Web应用开发的速度比较快而且所有的软件都是开源免费的可以减少投入
Java的Web应用服务器有免费TomcatJBoss等如果需要更好的商业化的服务有Web Sphere和 Web logic
六 分布式多层架构比较
PHP只能实现简单的分布式两层或三层的架构而JAVA在这方面就比较强大可以实现多层的网络架构数据库层(持久化层)应用(业务)逻辑层表示逻辑层彼此分开而且现在不同的层都已经有一些成熟的开发框架的支持例如Struts就是利用java的Web开发技术实现了MVC的设计模式而在业务逻辑层也有Spring框架数据库持久化层有Hibernate等框架这些框架可以方便开发者高效合理科学得架构多层的商业应用
下面简要的说一下Struts它实质上是在JSP Model的基础上实现的一个MVC(ModelViewControler)框架JSP Model体系结构是一种联合使用JSP 与Servlet 来提供动态内容的方法在Struts框架中模型由实现业务逻辑的JavaBean或EJB组件构成控制器由Servlet实现的视图由一组JSP文件组成采用Struts可以明确角色的定义和开发者与网页设计者的分工而且项目越复杂其优势越明显
七 源代码安全
PHP开发的程序的源代码都是公开的他人拿到php开发的程序后都可以进行修改
Java开发的程序最后用户拿到的是只是一些编译好的class类无法看到完整的源代码安全性高
八性能比较
有人做过试验对这两种种语言分别做回圈性能测试及存取Oracle数据库测试
在循环性能测试中JSP只用了令人吃惊的四秒钟就结束了*的回圈而PHP测试的是*循环(少一个数量级)却分别用了秒
数据库测试中二者分别对 Oracle 进行 次 InsertUpdateSelect和Delete JSP 需要 秒PHP 需要 秒
项目
PHP
JAVA
可复用性
低
高
开发速度
快
慢
易维护性
差
优
可移植性
优-Linux
WindowsUnix
安全性
低
高
开发费用
低
高
多层架构
差
优
数据库访问
接口不统一
接口统一
可扩展性
差
优
面向对象
差
优
综上所述我个人认为PHP适合于快速开发中小型应用系统开发成本低能够对变动的需求作出快速的反应而Java适合于开发大型的应用系统应用的前景比较广阔系统易维护可复用性较好还有同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高