Java和PHP在Web开发方面对比分析

  本文主要从8个方面对php和java在做web开发方面的优劣性做了分析对比,非常不错的一篇文章,这里推荐给小伙伴们。

  比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较:

  一、 语言比较

  PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法。所以java不如php好学。

  Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行。Java的Web开发首先最容易想到的就是JSP(现在已经到JSP2.0),原来的java的Web开发都是用servlet来实现的,用servlet来开发需要程序员在java的源文件中嵌入大量的html代码。所以后来就出现了JSP,JSP可以方便的嵌入到html文件当中,其实jsp文件在服务器上执行的时候首先会被应用服务器转换成servlet,然后再编译执行。Jsp可以通过servlet和JavaBean的支持产生强大的功能。JavaBean 是一种可复用的、跨平台的软件组件。使用javabean可以方便的实现java代码和html的分离,能够增强系统的功能和软件的复用性。

  Java的Web开发属于SUN公司定义的J2EE其中的规范。而且在J2EE中包括了java的Web开发的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特别适合于做大型的企业级的应用。

  二、 数据库访问比较

  Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。

  PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。

  三、 系统设计架构比较

  采用Java的Web开发技术,需要使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。所以用Java进行开发前期需要做大量的系统分析和设计的工作。

  四、 跨平台性

  Java和PHP都有很好的跨平台的特性。几乎都可以在不作任何修改的情况下运行在Linux或者Windows等不同的操作系统上。

  五、 开发成本比较

  PHP最经典的组合就是:PHP + MySQL + Apache。非常适合开发中小型的Web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。

  Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web logic。

  六、 分布式多层架构比较

  PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用java的Web开发技术实现了MVC的设计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。

  下面简要的说一下Struts,它实质上是在JSP Model2的基础上实现的一个MVC(Model、View、Controler)框架。JSP Model2体系结构是一种联合使用JSP 与Servlet 来提供动态内容的方法。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由Servlet实现的,视图由一组JSP文件组成。采用Struts可以明确角色的定义和开发者与网页设计者的分工。而且项目越复杂,其优势越明显。

  七、 源代码安全

  PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。

  Java开发的程序,最后用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。

  八、性能比较

  有人做过试验,对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。

  在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。而PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒。

  数据库测试中,二者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒。


  综上所述,我个人认为,PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。

  以上就是本文的全部内容了,希望对大家能够有所帮助。

 

时间: 2024-10-31 10:54:30

Java和PHP在Web开发方面对比分析的相关文章

Java和PHP在Web开发方面的比较

问题描述 比较PHP和JSP是目前比较流行的Web开发技术,关于两种技术的优劣,我这里从几个方面进行一个比较,供大家参考.一.语言比较PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点.语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发.而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法.所以java不如php好学.Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行.Java的Web开发首先最容易想到的就是J

使用Axis2和JiBX将Java类转换成Web服务,第2部分

使用Axis2和JiBX将Java类转换成Web服务,第2部分: 把XML转换成功能全面的Web服务 本文配套源码 简介 Apache Axis2 提供了好几种 XML 解决方案,可以轻松的开发功能强大的 Web 服务.Axis2 是实现 Web 服务的一个非常不错的选择.由于 Apache Axis2 和 Apache Geronimo duo 是免费而且开放源码的,因此可以考虑使用这两者. 在本系列的前一部分中,我向您介绍了在本系列两篇文章中使用到的 Java 类.我们通过 WSDL 将这些

使用Axis2和JiBX将Java类转换成Web服务,第1部分

使用Axis2和JiBX将Java类转换成Web服务,第1部分: 使用XML通过Java类定义Web服务 本文配套源码 简介 Web 服务在日常开发中重要性与日俱增,Axis2 也成为了倍受人们欢迎的开发Web 服务的开放源码平台.Axis2 使用Java 语言编写,它能利用了 JiBX(一种框架,用于将XML和Java绑定在一起)的自由性.假设您有一个含有大量 Java 类和数据结构的 Java 项目,而且不想打乱或者更改它们.JiBX 会帮助您实现这一切,它把在 Axis2 中使用的 XML

Java EE:迎合Web 2.0

很多成功的企业应用程序都是使用 Java EE 平台构建的.但是,Java EE 的设计原理并不能够有效地支持 Web 2.0 应用程序.深入了解 Java EE 和 Web 2.0 原理之间的脱节可帮助您制定明智的决策,从而使用各种方法和工具在一定程度上解决这种脱节.本文将解答 Web 2.0 和标准 Java EE 平台缘何成为失败的组合,并演示为何由事件驱动的异步架构更适合 Web 2.0 应用程序.本文还介绍了一些框架和 API,它们通过支持异步设计使得 Java 平台更加适合 Web

java-使用JAVA调用ASP.NET web应用程序

问题描述 使用JAVA调用ASP.NET web应用程序 有一个ASP.NET web应用程序(网站),现在可以正常使用了.现在要求将这个ASP.NET web应用程序使用JAVA调用(是不是这样描述的我也不太清楚),大概的意思是:这个ASP.NET web应用程序提供一个类似接口的东西,能够让JAVA调用,运行JAVA程序后,能将原来ASP.NET web应用程序的页面和功能展现出来. 要求说要使用socket方式来实现,我只对JAVA比较了解,至于ASP.NET和socket这两者,都没有接

java菜鸟:动态web项目 一用servlet就404

问题描述 java菜鸟:动态web项目 一用servlet就404 两个文件:web.xml和Test.java import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.

文档预览-java如何实现Office Web Apps Server的WOPI Server端

问题描述 java如何实现Office Web Apps Server的WOPI Server端 WOPI Client即Office Web App在收到请求后向WOPI Server发送了两次请求, 1.Tell me about the file 2.Give me the file 所以服务端要实现两个 1.CheckFileInfo服务 2.GetFile服务 具体怎么实现的?刚刚开始搞这个,google了一下,都是C#的实现方式,没有java的 解决方案 1.CheckFileInf

JAVA防止重复提交Web表单的方法_java

本文实例讲述了JAVA防止重复提交Web表单的方法.分享给大家供大家参考,具体如下: package cn.com.form; import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Random; import javax.servlet.ServletException; import java

Play! v1.1发布 建立Java播放框架在Web中应用

Finally a Java framework made by Web developers. Discover a clean alternative to bloated enterprise Java stacks. Play focuses on developer productivity and targets http://www.aliyun.com/zixun/aggregation/14172.html">RESTful architectures. Fix the