谈谈asp,php,jsp的优缺点
php网站快速开发谈谈asp,php,jsp的优缺点
asp、php、asp、jsp等主流⽹站开发语⾔⽐较
今天发⼀篇关于主流⽹站开发语⾔的⽂章 — “asp、php、asp、jsp等主流⽹站开发语⾔⽐较”,和⼤家⼀起交流⼀下各种主流⽹站开发语⾔的优缺点,现在主流的⽹站开发语⾔⽆外乎asp、php、asp、jsp等。⽹页从开始简单的hmtl到复杂的服务语⾔,⾛过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语⾔的区别、优势、劣势、开发注意事项!
HTML:当然这是⽹页最基本的语⾔,每⼀个服务器语⾔都需要它的⽀持,要学习,这个肯定是开始,不说了.
主流⽹站开发语⾔之ASP:ASP是微软(Microsoft)所开发的⼀种后台脚本语⾔,它的语法和Visual BASIC类似,可以像
SSI(Server Side Include)那样把后台脚本代码内嵌到HTML页⾯中。虽然ASP简单易⽤,但是它⾃⾝存在着许多缺陷,最重要的就是安全性问题。⽬前在微软的 战略中新推出的ASP 借鉴了Java技术的优点,使⽤C Sharp (C#) 语⾔作为ASP的推荐语⾔,同时改进了以前ASP的安全性差等缺点。但是,
使⽤ASP/ASP仍有⼀定的局限性,因为从某种⾓度来说它们只能在微软
的 Windows NT/2000/XP + IIS的服务器平台上良好运⾏(虽然像ChilliSoft提供了在UNIX/Linux上运⾏ASP的解决⽅案,但是⽬前ASP在UNIX/Linux 上的应⽤可以说⼏乎为0)。所以平台的局限性和ASP⾃⾝的安全性限制了ASP的⼴泛应⽤。
ASP在执⾏的时候,是由IIS调⽤程序引擎,解释执⾏嵌在HTML中的ASP代码,最终将结果和原来的HTML⼀同送往客户端。
主流⽹站开发语⾔之PHP:PHP 的全名⾮常有趣,它是⼀个巢状的缩写名称——“PHP: Hypertext Preprocessor”,打开缩写还是缩写。PHP 是⼀种HTML 内嵌式的语⾔ (就像上⾯讲的ASP那样)。⽽ PHP 独特的语法混合了C,Java,Perl以及 PHP 式的新语法。它可以⽐ CGI 或者 Perl 更快速地执⾏动态⽹页。
PHP的源代码完全公开,在 Open Source 意识抬头的今天,它更是这⽅⾯的中流砥柱。不断地有新的函数库加⼊,以及不停地更新,使
得 PHP ⽆论在 UNIX 或是 Win32 的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计⽅⾯有着更好的资源。⽬前PHP的最新版本为4.1.1 ,它可以在Win32以及UNIX/Linux等⼏乎所有的平
台上良好⼯作。PHP在4.0版后使⽤了全新的Zend引擎,其在最佳化之后的效率,⽐较传统 CGI 或者 ASP 等技术有了更好的表现。
平台⽆关性是PHP的最⼤优点,但是在优点的背后,还是有⼀些⼩⼩的缺点的。如果在PHP中不使⽤ODBC,⽽⽤其⾃带的数据库函数(这样的效率要⽐使⽤ ODBC⾼)来连接数据库的话,使⽤不同的数据库,PHP的函数名不能统⼀。这样,使得程序的移植变得有些⿇烦。不过,作为⽬前应⽤最为⼴泛的⼀种后台语⾔,PHP的优点还是异常明显的。
ASP.NET:ASP是Microsoft的⼀部分,作为战略产品,不仅仅是 Active Server Page (ASP) 的下⼀个版本;它还提供了⼀个统⼀
的 Web 开发模型,其中包括开发⼈员⽣成企业级 Web 应⽤程序所需的各种服务。ASP.NET 的语法在很⼤程度上与 ASP 兼容,同时它还提供⼀种新的编程模型和结构,可⽣成伸缩性和稳定性更好的应⽤程序,并提供更好的安全保护。可以通过在现有 ASP 应⽤程序中逐渐添加 ASP.NET 功能,随时增强 ASP 应⽤程序的功能。ASP.NET 是⼀个已编译的、基于 .NET 的环境,可以⽤任何与 .NET 兼容的语⾔(包括 Visual Basic .NET、C# 和 JScript .NET.)创作应⽤程序。另外,任何 ASP.NET 应⽤程序都可以使⽤整个 .NET Framework。开发⼈员可以⽅便地获得这些技术的优点,其中包括托管的公共语⾔运⾏库环境、类型安全、继承等等。ASP.NET 可以⽆缝地
与 WYSIWYG HTML 编辑器和其他编程⼯具(包括 Microsoft Visual Studio .NET)⼀起⼯作。这不仅使得 Web 开发更加⽅便,⽽且还能提供这些⼯具必须提供的所有优点,包括开发⼈员可以⽤来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试⽀持。微软为ASP设计了这样⼀些策略:易于写出结构清晰的代码、代码易于重⽤和共享、可⽤编译类语⾔编写等等,⽬的是让程序员更容易开发出Web应⽤,满⾜计算向Web转移的战略需要。
主流⽹站开发语⾔之JSP:JSP和Servlet要放在⼀起讲,是因为它们都是Sun公司的J2EE(Java 2 platform Enterprise Edition)应⽤体系中的⼀部分。
Servlet的形式和前⾯讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进⾏应答。不同的是,CGI对每个客户请求都打开⼀个进程(Process),⽽Servlet却在响应第⼀个请求的时候被载⼊,⼀旦Servlet被载⼊,便处于已执⾏状态。对于以后其他⽤户的请求,它并不打开进程,⽽是打开⼀个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过⽣成⾃⼰的⽗线程(Parent Thread)来实现资源共享,这样就减轻了服务器的负担,所以,Java Servlet可以⽤来做⼤规模的应⽤服务。
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执⾏⽅式和ASP或PHP完全不同。在JSP被执⾏的时候,JSP⽂件被JSP解释器(JSP Parser)转换成Servlet代
码,然后Servlet代码被Java编译器编译成 .class 字节⽂件,这样就由⽣成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语⾔(Script Language)版。
由于JSP/Servlet都是基于Java的,所以它们也有Java语⾔的最⼤优点——平台⽆关性,也就是所谓的“⼀次编写,随处运⾏
(WORA – Write Once, Run Anywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊⼈的。因此,JSP/Servlet虽然在国内⽬前的应⽤并不⼴泛,但是其前途不可限量。
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显⽰。这时,由于JSP是先被转换成Servlet后再运⾏的,所以,浏览器中所显⽰的代码出错的⾏数并不是JSP源代码的⾏数,⽽是指转换后的Servlet程序代码的⾏数。这给调试代码带来⼀定困难。所以,在排除错误时,可以采取分段排除的⽅法(在可能出错的代码前后输出⼀些字符串,⽤字符串是否被输出来确定代码段从哪⾥开始出错),逐步缩⼩出错代码段的范围,最终确定错误代码的位置。
主流⽹站开发语⾔之CGI:CGI就是公共⽹关接⼝ (Common Gateway Interface) 的缩写。它是最早被⽤来建⽴动态⽹站的后台技术。这种技术可以使⽤各种语⾔来编写后台程序,例如C,C++,Java,Pascal等,但是⽬前在CGI 中使⽤的最为⼴泛的是Perl语⾔。所以,狭义上所指的CGI程序⼀般都是指Perl程序,⼀般CGI程序的后缀都是.pl或者.cgi 。
CGI程序在运⾏的时候,⾸先是客户向服务器上的CGI程序发送⼀个请求,服务器接收到客户的请求后,就会打开⼀个新的Process(进程)来执⾏CGI程序,处理客户的请求。CGI程序最后将执⾏的结果(HTML页⾯代码)传回给客户。
由于CGI程序每响应⼀个客户就会打开⼀个新的进程,所以,当有多个⽤户同时进⾏CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执⾏效率变得越来越低下。这也就是最近⼏年来随着各种新的后台技术的诞⽣,CGI应⽤在Internet上越来越少的原因。CGI⽅式不适合⼤访问量的应⽤。
如今主流的Web服务器软件主要由IIS或Apache组成。IIS⽀持ASP且只能运⾏在Windows平台下,Apache⽀持 PHP,CGI,JSP且可运⾏于多种平台,虽然Apache是世界使⽤排名第⼀的Web服务器平台,但是众所周知,Windows以易⽤⽽出名,也因此占据不少的服务器市
场。
我们常⽤的开发组合:
IIS环境下
1.ASP+ACCESS
2.ASP+SQL SERVER
3.ASP.NET+ACCESS
4.ASP.NET+SQL SERVER
APACHE环境下
5.jsp+Oracale
6.JSP+MYSQL
7.PHP+MYSQL
ASP,PHP,JSP,ASP.NET 这是当前⽐较流⾏的四种WEB⽹站编程语⾔,现在做⽹站⼤部分都是使⽤这⼏种语⾔中的其⼀ .
ASP是基于WINDOWS平台的,简单易⽤,由于是运⾏在WINDOWS平台上,所以移植性不好,不能跨平台运⾏.但是国内现在⼤部分的⽹站都是使⽤它来开发的.
PHP是当前兴起备受推崇的⼀种WEB编程语⾔,开源且跨平台,在欧美都⽐较的流⾏,最近在国内也很
受许多⽹站开发者的欢迎.开发效率⾼,成本低!
JSP是了SUN公司推出的⼀种⽹络编程语⾔,⽐较难学(是⽹上公认的),跨平台运⾏.安全性⽐较⾼,运⾏效率也⽐较的快.备受企业级的公司及银⾏⾦融机构使⽤.
主流⽹站开发语⾔之ASP.NET从某种意义上说应该是ASP版本的升级,但是它⼜不完全是从ASP上升级来的,ASP.NET的推出是微软为了
与 SUN公司的JSP在⽹络上的迅猛发展抵抗的,.NET架构现在有许多⼈都在学习,主要是开发的效率⽐较的⾼.但是还是基于WIN平台运⾏,不能跨平台.
可以说,asp确实快过时了,在未来jsp和asp将会有巨⼤的潜⼒,但php凭借其开源的特性也会占有⼀定份额,并且现在国内外多数⽹站都是⽤php,说明其优越性已经得到了相当的考验.
vb⼀般指vb6.0,是传统的win32编程。vb和asp是基于微软平台的语⾔。
说java好主要是因为java的j2ee部分做企业级开发很强⼤,⽽且跨平台。
c#是平台上最好⽤的语⾔,现在只能运⾏在windows系统。
web开发⽅⾯和j2ee的竞争很激烈,难说以后⿅死谁⼿。
现在做⽹站⼤部分都是asp或jsp的,asp容易上⼿,⽐较普及,但是平台单⼀,jsp虽然上⼿难,但是跨平台,安全性⾼
⼤型⽹站很少有⽤windows系统的
下⾯⽐较⼀下ASP、ASP、JSP和PHP的优点和缺点:
ASP优点:
1. ⽆需编译
2. 易于⽣成
3. 独⽴于浏览器
4. ⾯向对象
5. 与任何ActiveX scripting 语⾔兼容
6. 源程序码不会外漏
缺点:
1、Windows本⾝的所有问题都会⼀成不变的也累加到了它的⾝上。安全性、稳定性、跨平台性都会因为与NT的捆绑⽽显现出来。
2、ASP由于使⽤了COM组件所以它会变的⼗分强⼤,但是这样的强⼤由于Windows NT系统最初的设计问题⽽会引发⼤量的安全问题。只要在这样的组件或是操作中⼀不注意,哪么外部攻击就可以取得相当⾼的权限⽽导致⽹站瘫痪或者数据丢失。
3、由于ASP还是⼀种Script语⾔所没除了⼤量使⽤组件外,没有办法提⾼其⼯作效率。它必须⾯对即时编绎的时间考验,同时我们还不知其背后的组件会是⼀个什么样的状况。
4、⽆法实现跨操作系统的应⽤。当然这也是微软的理由之⼀,只有这样才能发挥ASP最佳的能⼒。可是我却认为正是Windows限制了ASP,ASP的概念本就是为⼀个能让系统运⾏于⼀个⼤的多样化环境⽽设计的。
5、还⽆法完全实现⼀些企业级的功能:完全的集、负载均横。
ASP.NET优点:
1.简洁的设计和实施。
2.语⾔灵活,并⽀持复杂的⾯向对象特性。
3.开发环境。
缺点:
1.数据库的连接复杂。
JSp优点:
1、⼀处编写随处运⾏。
2、系统的多台平⽀持。
3、强⼤的的可伸缩性。
4、多样化和功能强⼤的开发⼯具⽀持。
缺点:
1、与ASP⼀样,Java的⼀些优势正是它致命的问题所在。
2、缺少系统性的资料。
3、速度超慢
PHP优点:
1、⼀种能快速学习、跨平台、有良好数据库交互能⼒的开发语⾔。
2、简单轻便,易学易⽤。
3、与Apache及其它扩展库结合紧密。
4、良好的安全性。
缺点:
1、数据库⽀持的极⼤变化。
2、不适合应⽤于⼤型电⼦商务站点
3、安装复杂。
4、缺少正规的商业⽀持。
5、⽆法实现商品化应⽤的开发。