PHP与JSP

为什么好多网站是JSP,到底学那个能好点了?

PHP:

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,

主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,

PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

PHP的特性:

1、 PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。

2、PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比。

PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;

PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。

3、PHP支持几乎所有流行的数据库以及操作系统。

4、最重要的是PHP可以用C、C++进行程序的扩展!

ThinkPHP是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,

在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

PHP安全:

PHP其实不过是Web服务器的一个模块功能,所以首先要保证Web服务器的安全。当然Web服务器要安全又必须是先保证系统安全,这样就扯远了,无穷无尽。常见的web安全漏洞有:注入攻击,跨站攻击,服务器自身漏洞等。

PHP的优点学习过程和方法:

PHP的语法类似于C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。你只需要很短的时间内将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,

甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。

JSP:

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 [1]  是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,

它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,

也能在其他操作系统上运行。它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,

支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

JSP将内容的生成和显示进行分离:

用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。

生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。

在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。

几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。

JSP语音特点:

优点:

1、一次编写,到处运行。除了系统之外,代码不用做任何更改。

2、系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。

3、强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

4、多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

5、支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

缺点:

1、与ASP也一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。

2、 Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。

扩展资料:

PHP认证级别:

PHP课程由初级(IFE)、中级(IPE)和高级(IAE)三个部分。

1、IFE即Index Front-end Engineer的缩写,指数前端工程师的意思。

2、IPE即 Index PHP Engineer 的缩写,意思是指数PHP工程师。

3、IAE即 Index architecture/advanced engineer 的缩写,意思是:指数高级/架构工程师。

参考资料:

PHP-百度百科   

JSP-百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-26
目前,最常用的三种动态网页语言有ASP,JSP,PHP 。 本文是对这3者的比较和讨论。
简 介 :

ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。ASP采用脚本语言VBScript(Java script)作为自己的开发语言。

PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http: //www.php.net)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。

JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和Java Applet之外,又有新的硕果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。

三者都提供在 HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成 Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。在ASP 、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML页面只依赖于Web服务器,而ASP 、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP 、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。

技术特点

ASP:

1. 使用VBScript 、 JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。

2. 无须compile编译,容易编写,可在服务器端直接执行。

3. 使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。

4. 与浏览器无关(Browser Independence), 客户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。Active ServerPages 所使用的脚本语言(VBScript 、 Jscript)均在WEB服务器端执行,客户端的浏览器不需要能够执行这些脚本语言。

5.Active Server Pages能与任何ActiveX scripting语言兼容。除了可使用VB Script或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其它脚本语言,譬如REXX 、Perl 、Tcl等。脚本引擎是处理脚本程序的COM(Component Object Model) 对象。

6. 可使用服务器端的脚本来产生客户端的脚本。

7. ActiveX Server Components(ActiveX 服务器组件 )具有无限可扩充性。可以使用Visual Basic 、Java 、Visual C++ 、COBOL等程序设计语言来编写你所需要的ActiveX Server Component 。

PHP:

1. 数据库连接

PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松地更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。但PHP提供的数据库接口支持彼此不统一,比如对Oracle, MySQL,Sybase的接口,彼此都不一样。这也是PHP的一个弱点。

2. 面向对象编程

PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。

JSP:

1. 将内容的产生和显示进行分离

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来产生页面上的动态内容。产生内容的逻辑被封装在标识和JavaBeans群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。如果核心逻辑被封装在标识和Beans中,那么其它人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的产生。在服务器端,JSP引擎解释JSP标识,产生所请求的内容(例如,通过存取JavaBeans群组件,使用JDBC技术存取数据库),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。

2. 强调可重用的群组件

绝大多数JSP页面依赖于可重用且跨平台的组件(如:JavaBeans或者Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。

3. 采用标识简化页面开发

Web页面开发人员不会都是熟悉脚本语言的程序设计人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容产生所需要的。标准的JSP标识能够存取和实例化 JavaBeans组件,设定或者检索群组件属性,下载Applet,以及执行用其它方法更难于编码和耗时的功能。

通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其它人员可以为常用功能建立自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。

JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2EE的一个成员,JSP技术能够支持高度复杂的基于Web的应用。

由于JSP页面的内置脚本语言是基于Java程序设计语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。

作为Java平台的一部分,JSP拥有Java程序设计语言“一次编写,各处执行”的特点。随着越来越多的供货商将JSP支持加入到他们的产品中,您可以使用自己所选择的服务器和工具,修改工具或服务器并不影响目前的应用。

应用范围

ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统,只能执行于微软的服务器产品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 9上。Unix下也有ChiliSoft的组件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的群组合来扩充,Unix下的COM实现起来非常困难。

PHP3可在Windows,Unix,Linux的Web服务器上正常执行,还支持IIS,Apache等一般的Web服务器,用户更换平台时,无需变换PHP3代码,可即拿即用。

JSP同PHP3类似,几乎可以执行于所有平台。如Win NT,Linux,Unix。在NT下IIS通过一个外加服务器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的执行平台。虽然现在NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很大,而新崛起的Linux更是来势不小。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关的。

性能比较

有人做过试验,对这三种语言分别做回圈性能测试及存取Oracle数据库测试。

在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。而ASP、PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒和84秒。(参考PHPLIB)。

数据库测试中,三者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP则 需要 73 秒。

前景分析

目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。

采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,群组成二维数组。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。

ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windowsd的COM/DCOM获得ActiveX规模支持,通过DCOM和Transcation Server获得结构支持;JSP可以通过SUN Java的Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。

三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere。它们都是通过CGI来提供支持的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再开发传统软件。

总之,ASP,PHP,JSP三者都有相当数量的支持者,由此也可以看出三者各有所长。正在学习或使用动态页面的朋友可根据三者的特点选择一种适合自己的语言。

评论一:

PHP的强大在于灵活,支持所有的数据库,所有的系统,除了可以安装在APACHE中而且可以安装在IIS里。并且APACHE天生就是一对好搭档,甚至可以编译在一起。

PHP程序可以编译后运行也可以不编译运行,编译后除了保护了源代码外还可以起到大大提速作用,都可以跨平台直接使用。支持WIN API,DLL,JAVA等等。

PHP的代码非常书写简单易懂。

ASP现在已经被微软所抛弃,改为全新的ASP.NET,新的ASP.net也非常强大,可以和微软的C#、VB.NET等搭配扩充功能,具有.net所赋予的优点。但还是不能跨平台。微软的强大在于编程工具的强大,傻瓜式的编程工具和编程思想非常适合软件刚刚起步的地区,因此在国内拥有极多的支持者。ASP在国内的应用最广泛,这在国际上PHP占主导地位的情况刚好相反。

JSP是后推出的脚本语言,由于大家常常把JAVA和JSP当成一会事所以在国内JSP的队伍正在迅速扩张,另外也是由于JSP的后台也比较硬,经常有厂家的宣传因此对于那些不满ASP却又消息闭塞的人提供了选择的余地。JSP能够支持JAVA也是获得众多支持的原因之一。

楼主帖子中给出的ORACLE的数据调用对比把PHP和ASP放到了后面这样未免太偏,ASP由于WIN系统的缘故当然会慢,这个傻子都知道。而在WIN系统中PHP访问ORACLE肯定要比同在WIN系统中的JSP要快得多,并且PHP还要区分是否为编译运行,如果同在在UNXI系统中那么PHP肯定也要比JSP快的多。

PHP在大型网站的应用已经非常明显,很多国内大型的门户网站都用PHP,而用JSP的则要花费大量的财力来打造性能,否则就非常可怜了。目前我还没有见过那个用JSP的网站能比ASP.NET快多少的,更不用说和PHP比了。

当然搞电子商务这样的东东,需要的其实并不是那个语言而是工具的好坏,在这方面背靠大树当然好乘凉了,如果是我就会选择现ASP.NET次而考虑JSP,因为如果在微软的系统上跑,JSP绝对是实际上最慢的。等哪天PHP的工具能赶上微软的VS那么我会毫不犹豫的采用PHP。采用好的IDE编程工具可以进行高效的编程,但ASP.net和JSP往往只起到了处理一些WEB信息的工作,真正的主角则是背后的C#等和JAVA。说白了他们只是冰山上的一角,还是背后的主角好。而PHP对JAVA的支持其实甚至超过JSP,只是PHP对于初学者确实没有微软他们亲,毕竟开源世界尴尬并不是初学者能够理解的。

很多初学者搞不懂JS和JSP的区别,以为ASP和PHP中有时要调用JS就感觉JSP非常棒,其实JSP也一样要借助JS来完成一些特殊的功能,说白了JSP和JS根本就是两回事,这也等于是JS为JSP打了免费广告。

其它就不多说了,任何一个程序员如果只会一两门语言也不能算是合格的程序员,要学会不同的程序用不同语言,这样才高效。

评论二:

JSP慢主要是受JVM的牵制所致(JAVA的强大与JVM也互成因果),JSP的迅速普及与JAVA阵营的强大不无关系,同时也跟你说的JS误解有一定关系。ASP依赖无处不在的M$系统还在继续发挥余热,ASP.NET技术先进但要真正普及起来尚需时日,关键是一般小型Web应用上ASP已经可以勉强应付,在企业级应用上由于JAVA占了一定先机,所以目前还不足于称雄。

而PHP受到大力吹捧的灵活与速度同时也逐渐构成PHP5以及后续版本发展的壁垒。PHP要想获得更大的发展,必须重视其商业价值,而主要的商业价值在于企业级应用上。PHP5扩展了更好的类支持,这只是它小心翼翼朝这个方向迈出的第一步,估计以后还会在这方面做出更多的尝试,之所以它比较保守,是因为它在靠近JAVA或ASP.NET的同时人们担心它会丧失灵活与速度上面的优势,如果在这方面处理失败,它不仅无法从其他阵营里面拉到人,反而自身的人马会逐渐流失。
第2个回答  2009-11-26
说白了就是PHP简单易学,JSP在学周期和开发周期都比较长,但JSP比PHP运行速度快。PHP适合一般应用,中小型的网站应用。JSP适合中大型网站的应用。另外JSP比较安全,像那些银行网站和电子商务网站都是用JSP写的。

JSP为什么相对难一点,因为JSP是JavaEE中的一部分,所以学JSP必须先学Java。PHP是解释型程序,JSP是编译型程序,所以JSP比PHP快。

学程序不能说哪个会好点,只能说各有特色,各自的擅长功能不同。在中国PHP用的应该比较多,因为它易学,还是开源的,PHP本身发展的也比较快。功能强大。JSP更适合企业级。

如果你没有什么特殊要求,就学PHP吧,容易上手,易学。官方说最快半个小时就可以写出个小程序来。的确是,前两天我用PHP进行个计算,配合函数手册,很容易就写出来了,的确很轻松,但JSP就没那么容易了。我现在在学Java,目地是以后写网页的同时,还能写个小程序,所以Java就是最好选择,学一种语言,两方面都实现了。我都断断续续学好几个月了,基础书籍才看到一半,而且刚是基础,还没学JSP的部分。如果你没这耐力的话,PHP是不错的选择。本回答被提问者采纳
第3个回答  2019-06-27
PHP是开源的,且免费,一般LAMP(Linux+Apache+Mysql+Php)组合基本上是不花钱的。这是主要原因,还有一个就是PHP加上ZENDOPTIMIZER后执行速度也快。现在国外大多数网站都是用这种组合,包括国内前十大门户,有七家也是用PHP,你可以从这里知道PHP的好处,再说你从51JOB上找一下,招聘PHP的一大把。不过JSP也有JSP的优点,最主要的就是执行速度快,效率高。JSP对于网站开发来讲不像PHP和ASP那样易学易用,支持JAVA的主机也少于支持PHP的主机,这从一定程度上限制了Java技术在网站上的发展。话说回来都是各有所长啦。
语言这东西,互通性很强,学了PHP对学JSP肯定会有帮助的
第4个回答  2019-10-22
PHP程序的优点:

1.首先他是免费的,对于许多要考虑运行成本的商业望站来说,尤为重要

2.开放源码,所有的源码和稳当都可以买南非复制、编译和传播。

3.多平台支持,可以运行在UNIX、Linux或Windows操作系统下

4.由于在服务器端运行,是将PHP文件解释成标准的HTML稳当发送过去,因此不受客户端浏览器的限制

5.效率高,PHP占用的系统资源叫少,执行速度教快

PHP程序的缺点:

1.因为没有大公司的支持,可能前途不如ASP、JSP辉煌

2.运行环境安装相对教复杂

3.相对ASP来说,学习起来可能要稍微复杂些

JSP程序的优点:

1.多平台支持,可以在几乎所有的服务器系统上运行。无论在哪里都可以迅速转化使用

2.编译后运行,能够大大提高执行效率

3.JSP采用JAVA技术,而JAVA作为一个成熟的跨平台的程序设计语言,几乎可以实现任何想要实现的功能,对于众多的已有的JAVA程序员来说,学习起来非常容易

JSP程序的缺点:

1.开发运行环境相对于ASP来说,稍显复杂

2.相对 于ASP的VBScript脚本语言来说,JAVA学习起来稍难些。