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


Posted in PHP onMarch 01, 2015

比较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 秒。

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

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

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

PHP 相关文章推荐
使用PHP维护文件系统
Oct 09 PHP
discuz安全提问算法
Jun 06 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
php中函数前加&符号的作用分解
Jul 08 PHP
php数组随机排序实现方法
Jun 13 PHP
php计算税后工资的方法
Jul 28 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
Jan 15 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
php中return的用法实例分析
Feb 28 #PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 #PHP
Windows7下的php环境配置教程
Feb 28 #PHP
php数组使用规则分析
Feb 27 #PHP
php中stdClass的用法分析
Feb 27 #PHP
php中explode的负数limit用法分析
Feb 27 #PHP
php数组键值用法实例分析
Feb 27 #PHP
You might like
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
jQuery 开天辟地入门篇一
2009/12/09 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
document.createElement()用法
2013/03/13 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
python列表推导式操作解析
2019/11/26 Python
python time()的实例用法
2020/11/03 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
什么时候用assert
2015/05/08 面试题
金融专业个人求职信
2013/09/22 职场文书
自动一体化专业求职信
2014/03/15 职场文书
优秀应届生求职信
2014/06/16 职场文书
诚信教育主题班会
2015/08/13 职场文书
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
keepalived + nginx 实现高可用方案
2022/12/24 Servers