比较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开发的系统的价格要高。

Web开发——PHP vs Java相关推荐

  1. java web开发myeclipse_【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)...

    首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成,只要在安装配置成功之后才可以进入下面的java Web项目开发环境的搭建. 1.安装工具 第一步,下载并安装JDK,到官网 ...

  2. 《Java Web开发实战》Java工程师推荐的进阶之路

    <Java Web开发实战>一书更加趋于实战性.此教材由浅入深.循序渐进,在语法阐述时尽量避免术语和公式,使初学者能够快速入门,全面掌握实战技能.它既可以作为高等院校本.专科计算机相关专业 ...

  3. web开发为什么用java的多_java与php做web开发 最大的区别在那 为什么好多用java的...

    PHP做的Web应用性能就比Java差吗? 就拿查询MySQL获取结果集并在页面上显示数据为例来分析. HTTP请求由C级别的程序比如Apache/Nginx处理(Java的HTTP服务用的是Java ...

  4. WEB 开发异常:java.lang.ClassNotFoundException

    于eclipse 服务器内启动tomcat服务器运行web项目,出现如题异常. java.lang.ClassNotFoundException 信息: Set web app root system ...

  5. web开发中的JAVA字符转码

    2019独角兽企业重金招聘Python工程师标准>>> 二.基本概念 2.1 JAVA中字符的表达 JAVA中有char.byte.String这几个概念. char 指的是一个UN ...

  6. 【Java Web开发指南】Java插入中文到数据库中文变成问号解决

    private static String connURL = "jdbc:mysql://" + serverName + ":" + port + &quo ...

  7. Eclipse 创建web项目后没有 Java EE 5 Library,没有web开发相关基础java包,myeclipse中有。...

    右键单击工程-build path-cfg build path-libraries-add library-Server Runtime前提是你已经配置了server,如果没有这个选项请确认你的ec ...

  8. Java Web开发小结

    Web漏洞 Web常见的漏洞原理和攻击手法 JAVA Web开发基础知识 Java常见开发框架 JAVA WEB应用目录 JSP页面 Servlet Tomcat容器.JSP和Servlet Java ...

  9. Java Web开发技术方案

    Java Web开发技术方案 Java Web开发分前端.后端: Java Web前端: -就是在Web应用中用户可以看得见碰得着的东西.包括Web页面的结构.Web的外观视觉表现以及Web层面的交互 ...

最新文章

  1. mysql5.6.7多实例安装、配置的详细讲解分析及shell启动脚本的编写
  2. java枚举类使用 == 还是equals来进行比较
  3. 马路军团求职平台用户需求
  4. linux自动挂载windows磁盘
  5. World Wind Java开发之十二——加载粗制三维模型(ExtrudedPolygon)(转)
  6. 直接说,我要怎样才能做到年薪 50 万?
  7. 让应用程序支持emoji字符 廖雪峰 / 编程 / 2017-4-20 22:01 / 阅读: 5051 什么是emoji?就是这些表情和符号:
  8. ScrollView
  9. 解决VirtualBox无法安装增强工具
  10. time库:Python的时间时钟处理
  11. AI公开课:03月26日未来十年 AI如何进化—圆桌探讨(乌镇智库理事长、CSDN 创始人董事长、智源人工智能研究院副院长)之《AI:昨天 · 今天 · 明天》
  12. 进阶篇:2)DFMA方法的运用
  13. 动态规划-剪绳子问题
  14. 离职通知邮件主题写什么好_“辞职”发邮件标题怎么写?
  15. c++11新特性--decltype
  16. 计算机考研复试操作系统题库
  17. 6.网络io模型及阻塞模型
  18. 一个小巧好用的windows端口映射管理控制工具
  19. MATLAB | 入门——学习笔记
  20. 伤疤好了有黑印怎么办_伤疤好了有黑印怎么办 轻松拥有平滑肌

热门文章

  1. [.Net 4.0]泛型的协变,以及高阶函数对泛型的影响 Part 1
  2. $Django redis内存数据库 (知识回顾cmd切换目录)
  3. HDU 6165 FFF at Valentine
  4. 不加载,手动实例化Service
  5. salt 文件push使用方法
  6. Tomcat类载入器(转载)
  7. chrome调试本地项目, 引用本地javascript文件
  8. 对象注册表 Zend_Registry
  9. 在SpringBoot2.0及Spring 5.0 WebMvcConfigurerAdapter已被废弃,目前找到解决方案就有两种...
  10. Bootstrap Datatable 简单的基本配置