java和php在web开发方面对比分析

简介:

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

java和php在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开发的系统的价格要高。

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


来源:51CTO

相关文章
|
6天前
|
缓存 JavaScript Java
常见java OOM异常分析排查思路分析
Java虚拟机(JVM)遇到内存不足时会抛出OutOfMemoryError(OOM)异常。常见OOM情况包括:1) **Java堆空间不足**:大量对象未被及时回收或内存泄漏;2) **线程栈空间不足**:递归过深或大量线程创建;3) **方法区溢出**:类信息过多,如CGLib代理类生成过多;4) **本机内存不足**:JNI调用消耗大量内存;5) **GC造成的内存不足**:频繁GC但效果不佳。解决方法包括调整JVM参数(如-Xmx、-Xss)、优化代码及使用高效垃圾回收器。
59 15
常见java OOM异常分析排查思路分析
|
1天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的旅游景区管理系统
基于Java+Springboot+Vue开发的旅游景区管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的旅游景区管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
14 4
基于Java+Springboot+Vue开发的旅游景区管理系统
|
1天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的体育用品商城管理系统
基于Java+Springboot+Vue开发的体育用品商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的体育用品商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
12 2
基于Java+Springboot+Vue开发的体育用品商城管理系统
|
1天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的体育场馆预约管理系统
基于Java+Springboot+Vue开发的体育场馆预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的体育场馆管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
11 2
基于Java+Springboot+Vue开发的体育场馆预约管理系统
|
1天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统
基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的口腔预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
11 1
基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统
|
11天前
|
缓存 JavaScript Java
常见java OOM异常分析排查思路分析
Java虚拟机(JVM)遇到 OutOfMemoryError(OOM)表示内存资源不足。常见OOM情况包括:1) **Java堆空间不足**:内存被大量对象占用且未及时回收,或内存泄漏;解决方法包括调整JVM堆内存大小、优化代码及修复内存泄漏。2) **线程栈空间不足**:单线程栈帧过大或频繁创建线程;可通过优化代码或调整-Xss参数解决。3) **方法区溢出**:运行时生成大量类导致方法区满载;需调整元空间大小或优化类加载机制。4) **本机内存不足**:JNI调用或内存泄漏引起;需检查并优化本机代码。5) **GC造成的内存不足**:频繁GC但效果不佳;需优化JVM参数、代码及垃圾回收器
常见java OOM异常分析排查思路分析
|
1天前
|
架构师 前端开发 Java
Java开发工程师的职业规划应该是什么样的?
Java开发工程师的职业规划涵盖多个阶段,包括初入行业(0-1年)、技能提升(1-3年)、技术专家(3-5年)及管理或专家路线选择(5年以上)。各阶段设定了明确的技能要求与职业目标,从掌握Java基础、常用框架到深入研究高级技术、微服务架构乃至担任管理职务或成为技术专家。通过持续学习与实践,结合个人兴趣,Java工程师可在技术或管理领域找到合适的发展方向,最终实现职业成功。
171 82
|
1天前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
28 18
|
4天前
|
SQL JavaScript 前端开发
用Java来开发Hive应用
用Java来开发Hive应用
18 7
|
4天前
|
SQL JavaScript 前端开发
用Java、Python来开发Hive应用
用Java、Python来开发Hive应用
18 6