aspã€phpã€asp.netã€jsp介ç»åŠä¼˜ç¼ºç‚¹æ¯”较
网页从开始简å•çš„hmtl到å¤æ‚çš„æœåŠ¡è¯è¨€ï¼Œèµ°è¿‡äº†10多个年头,å„ç§æŠ€æœ¯å±‚出ä¸ç©·ï¼Œå•ä¸ªçš„主æµæŠ€æœ¯ä¹Ÿåœ¨ä¸æ–翻新的版本,现在分æžä¸‹å„ç§è¯è¨€çš„区别ã€ä¼˜åŠ¿ã€åŠ£åŠ¿ã€å¼€å‘注æ„事项ï¼
HTML:当然这是网页最基本的è¯è¨€,æ¯ä¸€ä¸ªæœåŠ¡å™¨è¯è¨€éƒ½éœ€è¦å®ƒçš„支æŒ,è¦å¦ä¹ ,这个肯定是开始,ä¸è¯´äº†.
主æµç½‘站开å‘è¯è¨€ä¹‹ASP:ASP是微软(Microsoft)所开å‘的一ç§åŽå°è„šæœ¬è¯è¨€ï¼Œå®ƒçš„è¯æ³•å’ŒVisual BASIC类似,å¯ä»¥åƒSSI(Server Side Includeï¼‰é‚£æ ·æŠŠåŽå°è„šæœ¬ä»£ç 内嵌到HTML页é¢ä¸ã€‚ 虽然ASP简å•æ˜“用,但是它自身å˜åœ¨ç€è®¸å¤šç¼ºé™·ï¼Œæœ€é‡è¦çš„就是安全性问题。目å‰åœ¨å¾®è½¯çš„ .net 战略ä¸æ–°æŽ¨å‡ºçš„ASP.net 借鉴了Java技术的优点,使用C Sharp (C#) è¯è¨€ä½œä¸ºASP.net的推èè¯è¨€ï¼ŒåŒæ—¶æ”¹è¿›äº†ä»¥å‰ASP的安全性差ç‰ç¼ºç‚¹ã€‚但是,使用ASP/ASP.netä»æœ‰ä¸€å®šçš„å±€é™æ€§ï¼Œå› 为从æŸç§è§’度æ¥è¯´å®ƒä»¬ åªèƒ½åœ¨å¾®è½¯çš„ 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.net是Microsoft.net的一部分,作为战略产å“,ä¸ä»…仅是 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.netè®¾è®¡äº†è¿™æ ·ä¸€äº›ç–略:易于写出结构清晰的代ç ã€ä»£ç 易于é‡ç”¨å’Œå…±äº«ã€å¯ç”¨ç¼–译类è¯è¨€ç¼–写ç‰ç‰ï¼Œç›®çš„是让程åºå‘˜æ›´å®¹æ˜“å¼€å‘出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确实快过时了,在未æ¥jspå’Œasp.net将会有巨大的潜力,但phpå‡å€Ÿå…¶å¼€æºçš„特性也会å 有一定份é¢ã€‚
vb一般指vb6.0,æ˜¯ä¼ ç»Ÿçš„win32编程。vb.netå’Œasp.net是基于微软.netå¹³å°çš„è¯è¨€ã€‚说java好主è¦æ˜¯å› 为javaçš„j2ee 部分åšä¼ä¸šçº§å¼€å‘很强大,而且跨平å°ã€‚c#是.netå¹³å°ä¸Šæœ€å¥½ç”¨çš„è¯è¨€ï¼ŒçŽ°åœ¨åªèƒ½è¿è¡Œåœ¨windows系统。 webå¼€å‘æ–¹é¢.netå’Œj2ee的竞争很激烈,难说以åŽé¹¿æ»è°æ‰‹ã€‚ 现在åšç½‘站大部分都是asp.net或jsp的,asp.net容易上手,比较普åŠï¼Œä½†æ˜¯å¹³å°å•ä¸€ï¼Œjsp虽然上手难,但是跨平å°ï¼Œå®‰å…¨æ€§é«˜ã€‚
下é¢æ¯”较一下ASPã€ASP.netã€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ã€ æ— æ³•å®žçŽ°å•†å“化应用的开å‘。
Source : http://bbs.phpchina.com/thread-211359-1-13.html
RELATED
0 COMMENT
No comment for this article.