比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。(百度主要用PHP)
一、语言本身比较:
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来访问数据库,通过不同的数据库厂商提供的数据库驱动,方便地访问数据库。访问数据库的接口比较统一。(hibernate)
PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。
三、 系统设计架构比较
采用Java的Web开发技术,需要使用的是面向对象的系统设计方法;PHP还是采用面向过程的开发方法。所以用Java进行开发前期需要做大量的系统分析和设计的工作。
四、 跨平台性
Java和PHP都有很好的跨平台的特性。几乎都可以在不作任何修改的情况下运行在Linux或者Windows等不同的操作系统上。
五、 开发成本比较
PHP最经典的组合就是:Linux + Apache + MySQL + PHP,简称(LAMP,兄弟连)。非常适合开发中小型的Web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。
LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。当一起使用的时候,它们表现的像一个具有活力的解决方案包。其他的方案包有苹果的WebObjects(最初是应用服务器),Java/J2EE和微软的.NET架构。
LAMP包的脚本组件中包括了CGIweb接口,它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序,并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流,甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言。
Linux
Linux 是免费开源软件,这意味着源代码可用的操作系统。
Apache
Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。
MySQL
MySQL 已拥有由Oracle公司自 2010 年 1 月 27 日通过SUN购买。SUN 最初于 2008 年 2 月 26 日收购 MySQL。
PHP,Perl 或 Python
PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件。Perl 和 Python 类似。
Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web logic。
六、 分布式多层架构比较
PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用java的Web开发技术实现了MVC的设计模式,而在业务逻辑层也有spring框架,数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学地架构多层的商业应用。
下面简要的说一下Struts。它实质上是在JSP Model2的基础上实现的一个MVC(Model-View-Controller)框架。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 |
可复用性 |
低 |
高 |
开发速度 |
快 |
慢 |
易维护性 |
差 |
优 |
可移植性 |
优,移植在Linux,window,Unix |
|
安全性 |
低 |
高 |
开发费用 |
低 |
高 |
多层架构 |
差 |
优 |
数据库访问 |
接口不统一 |
接口统一 |
可扩展性 |
差 |
优 |
面向对象 |
差 |
优 |
综上所述及比较,作者认为,PHP适合于快速开发中小型应用系统,开发成本低,能够对变动的需求作出快速的反应;而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。
相关推荐
Android C# Css Java PHP Python HTML C语言 八大编程语言知识点汇总: Android各知识点详细总结.pdf C#知识点详细总结.pdf Css知识点归纳总结.pdf C语言各知识点详细总结.pdf HTML知识点汇总.pdf Java各知识点详细...
### Java和PHP在Web开发方面的比较 #### 一、语言特性对比 - **PHP**:作为解释型语言,PHP在服务器端直接解释执行脚本,无需事先编译为中间代码。这种特性使得PHP具备快速入门的优势,特别是对于那些熟悉C语言的...
综上所述,这份Java培训大纲旨在为企业培养具备实战经验的高级软件开发工程师,通过系统的理论学习与实践操作相结合的方式,帮助学员掌握最新的Java技术栈,提高解决实际问题的能力,从而顺利进入软件开发行业并成为...
整个系统共分为八大模块: 运营中心 :客户、客群、会话等全功能数据报表,数据一目了然; 引流获客 :活码、群活码、公海、客服等多渠道引流,实现精准获客; 客户中心 :助力企业搭建私域流量池,高效运营客户; ...
比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较:PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过...
**Java的编译与解释**:Java程序既编译又解释。源代码首先被编译成Java字节码,这是一种针对JVM优化的中间语言。在运行时,JVM解释并执行这些字节码,使得Java具有了动态解释的能力。Java平台包括三个主要版本: 1....
* NetBeans IDE是一个集成开发环境(IDE),提供了一个综合的开发平台,支持Java、PHP、Ruby、Python等多种编程语言。 * NetBeans IDE提供了许多功能强大且易用的功能,例如项目管理、代码编辑、调试、版本控制等。 ...
Java学习笔记:全面掌握Java编程的核心知识与技能 在当今的软件开发领域,Java作为一种流行的、功能强大的面向对象编程语言,被广泛应用于各种场景,包括Web应用、移动应用、企业级应用等。本篇Java学习笔记旨在为...
"Java基础知识点总结" 本文总结了Java面试基础知识的重要概念和技术点,涵盖了异常处理机制、接口和虚类、垃圾回收机制、线程同步、析构函数和虚函数、Error和Exception的区别、final类型的类、编程风格、堆和栈的...
【Java学习计划详解】 在制定2018年的Java学习计划时,首先需要明确学习的目标和路径。以下是一个详细的步骤指南,旨在帮助你系统性地掌握Java编程。 **第一部分:Java基础知识** 1. **入门准备**:安装Java开发...
【标题】八大编程语言知识点汇总 【描述】本资料涵盖了八种主流的编程语言,旨在为初学者和有经验的开发者提供一个全面的参考指南,深入理解每种语言的核心概念、语法特性以及实际应用。 【标签】编程语言,基础...
Java 面试基础知识 Java 是一种广泛使用的编程语言, Java 面试基础知识是 Java 开发者必须掌握的基础知识。本文将概括 Java 面试基础知识,涵盖异常解决机制、接口和虚类、垃圾回收机制、线程同步、析构函数和虚...
整个系统共分为八大模块: 运营中心 :客户、客群、会话等全功能数据报表,数据一目了然; 引流获客 :活码、群活码、公海、客服等多渠道引流,实现精准获客; 客户中心 :助力企业搭建私域流量池,高效运营客户; ...
八、性能比较 在性能测试中,Java通常在循环和数据库操作上表现出更高的效率。例如,在特定测试中,Java在回圈性能和Oracle数据库操作上的速度显著快于PHP。 综上所述,Java适合大型、企业级的Web应用,其面向对象...
Java提供了八种基本数据类型,分为数值类型和非数值类型两大类: 1. **数值类型**: - `byte` - `short` - `int` - `long` - `float` - `double` 2. **非数值类型**: - `char` - `boolean` #### 五、...
- **纠结于语言的选择**:初学者往往会花费大量时间在选择编程语言上,比如是否应该选择PHP、Java、Python等,而不是专注于掌握一门语言的基础知识。 - **忽视语言特性和应用场景**:每种编程语言都有其独特的优势和...
以上是使用ASP、PHP、Java、C语言、C++、Javascript、VB、易语言等八种不同语言编写的九九乘法表的实现示例。这些示例涵盖了从网页开发到桌面应用开发的不同领域,展示了各种编程语言的特点和优势。通过比较这些示例...
Java与数据库的交互通常涉及到以下方面: - **JDBC**:Java 数据库连接的标准接口。 - **O/R Mapping**:对象关系映射,用于将对象模型与数据库模型进行转换。 - **DAO**:数据访问对象,封装了对数据源访问的底层...