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 相关文章推荐
用Zend Encode编写开发PHP程序
Oct 09 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
PHP number_format() 函数定义和用法
Jun 01 PHP
php实现最简单的MVC框架实例教程
Sep 08 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
php中get_object_vars()方法用法实例
Feb 08 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
WordPress中用于检索模版的相关PHP函数使用解析
Dec 15 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 26 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
php安全配置 如何配置使其更安全
2011/12/16 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
法律进社区实施方案
2014/03/21 职场文书
公证书样本
2014/04/10 职场文书
跳蚤市场口号
2014/06/13 职场文书
临床专业自荐信
2014/06/22 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
Python中for后接else的语法使用
2021/05/18 Python
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript