随着计算机行业的发展,以后到底谁才是 web 网站开发的主宰者呢?

1. 说说JSP。(本人工作中用的最多的就是JSP) 
JSP, JavaServer Pages 是Java技术的一部分,可以说是Java Platform Enterprise Edition的一部分(JAVA主要3个大技术,Java SE, Java EE, Java ME)。软件开发者可以用JSP来动态生成HTML,XML或者其他的文档。然后把文档response给网页用户。这项技术,可以用Java里的所有定义过的library来支持它的功能,所以JSP的API和普通Java EE的API一样。

JSP里还有很多有功能的XML tag(如:<jsp:include>,<jsp:useBean)。这些都是JAVA内置功能,不需要导入新的外置 library。这些XML tag,可以在很多Web Server里使用(如:Apache, Apache TomCat, WebLogic等)。

JSP在编译后就完全和Servlet一样了。JSP页面在第一次被用户访问的时候,首先被JAVA 编译器,编译成Java Servlet Class。然后编译后Servlet Class,在以后被用户访问时,直接在JVM里运行,由JSP Web Container来输出HTML给用户。JSP这种“首次访问-预编译”的运行方式比传统PHP(PHP 4和PHP以前版本),过时的ASP(所有版本的ASP),要快很多。(百度一位网友作过一个1万次For Loop,循环的测试,结果发现JSP比传统PHP,ASP快尽10被的速度就完成运算)。预编译的运行方式后来被PHP5效仿,ASP.NET也是预编译的。当然JSP还有一个好处,就是可以直接用纯Java (无HTML),来写一个Servlet,直接在JVM运行后,由JSP Web Container输出HTML给用户。只是Servlet有的时候写一些presentation tier的东西很麻烦,因为它不能融合XML和输出逻辑在一起。所以一般Servlet用于纯Java的business logic逻辑。

JSP的tag还可以由用户自己来创造和使用,这个和ASP.NET里的user-defined controls差不多。

MVC, Model-View-Controller,是JSP的普遍开发架构,用来把JSP技术中的presentation, business logic, data storage三层清楚的分开。这样使开发过程更佳清楚明了,便于开发,维护。常用的MVB架构有:Barracuda, Apache Struts和Spring。JSF,JavaServer Faces是一个由SUN官方开发的Framework,是模仿ASP.NET的event-driven开发模式,和ASP.NET非常相似。但SUN 并没有让JSF替代JSP,相反JSF的开发者少之又少,但是据说现在JSF或JSP配合RAD(AJAX)开发很流行(校内网就是这样,而且结合 Struts)。

2. ASP(Active Server Pages), ASP.NET 两个分别是 动态网页开发语言,动态网页开发语言和结构 
(1) 关于ASP的淘汰 
ASP, Active Server Pages已经过时了, 但因为其出现的早,96年就有了,所以现在有些中小网站还用(但,使用最多最广的是PHP,最初于95年现世。ASP是微软第一代动态网页开发语言,只能在Windows系统 + MS IIS服务器平台下运行。

Wikipedia, Facebook, 百度等都用PHP,PHP学习的简单度和ASP差不多;JSP稍微难点,JSP用的一般都是银行,购物等安全性较高的网站,Google也用JSP)。但随着开发者的各种需求,ASP以后可以被ASP.NET取代,因为微软停止对其的一切技术维护与功能更新。ASP.NET是革新版本的ASP(注意是“革新版本”,而非“改进版本”),或者说是完全新一代的Dynamic Web Scripting。

ASP代表着传统的dynamic web scripting,与ASP.NET没什么关系,学了确实也没用。因为ASP不象CGI(Common Gateway Interface),CGI是动态网站制作的始祖,所有ASP,JSP,PHP什么的都根据CGI演化而来,而且ASP,PHP,JSP都包含了些 CGI的东西;而ASP却没有被衍生出任何新技术,ASP.NET也不算基于ASP,只能说ASP.NET开发理念,library,功能完全是基于.NET的其它组件。

其实PHP,JSP,ASP明白其中一种,其它的都很容易学会了。如果非要学学传统的dynamic web scripting,那就学学PHP吧,不比ASP难,但比ASP功能多,稳定性好,PHP5运行速度也比ASP快很多(JSP稍难因为要学点 Java)。学了PHP或JSP什么的,对学ASP.NET有好处,而且还可以直接用PHP,JSP进行开发。去google差差英文资源,有评价PHP 最好的,有评价JSP最好的,还从没有听谁说过ASP最好。

ASP.NET毕竟在.NET中,所以ASP.NET还是有相当地位的。

(2). 关于ASP.NET的优势 
ASP.NET是微软.NET Framework的一部分。伴随.NET 1.0在2002的问世,ASP.NET也出现在动态网页开发语言的家族中(与PHP,JSP,ColdFusion, Ruby, SHTML等并行了)。

功能上,ASP.NET比ASP有更强大的library, 更好的稳定性。 ASP.NET可以使用.NET Framework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现),功能上显然强大于传统功能单调的ASP。最强的技术支持Web Service, 而且有.NET的所有library做后盾。而且ASP.NET 在.NET 3.5中还有微软专门为AJAX开发的功能--ASP.NET AJAX。

结构上,传统的ASP把所有代码混为一团,简单的用<%%>把HTML和VBScript(或JScript)分开,实现动态输出 HTML。因为ASP.NET模仿JSP的MVC网页结构,微软为ASP.NET开发了自己的Code-Behind结构,将 presentation(文件拓展名:.aspx)和business logic(文件拓展名:.cs或.vb等)分离。同时Code-Behind模式也实现了让ASP.NET开发者用.NET中最普通Winform的开发模式来开发网站,方便非网页开发者制作动态网站。所以ASP.NET更容易维护,比ASP更适合于Enterprise Level 的大网站开发。

由于ASP.NET比JSP,PHP等更接近于.NET Winform的开发。如Tree View, Datagrid View(即高级Table)等高级UI,都可以直接用ASP.NET中的Web Control来实现,这比传统的使用JavaScript + XTHML + CSS的DHTML开发方式简单不少,也更好维护。同时ASP.NET开发这可以定义自己的User Control,制作自己特别的一种UI(如网站LOGO,版权等部分),而且此User Control可以被存为.ascx文件,方便让每一页(.aspx)来使用。

运行速度上,ASP.NET模仿了JSP的预编译机制(Pre-Compile)。使编译好的代码(MSIL语言)在网页服务器上运行。这样比传统的ASP,传统PHP(PHP4以前版本)更快,因为传统的ASP是直接运行开发者写的Script,相当于每运行一次,就得编译一次那么慢。 ASP.NET可以用VB, C#, J#等所有.NET Framework的语言开发.(但其实每种语言做的东西都一样... 就象山东话, 东北话, 写出来都是中文:)

不过ASP.NET对出学者可能有点难. 因为它其实在模拟desktop application development,即Winforms开发的模式, 不象传统的JSP,PHP, ASP这样容易明白。传统的Dynamic Server Scripting, 象PHP 5, 这是现在最简单的, 最有效的了。( 那个JSP也不难. 如果有钱还可以考虑下Adobe ColdFusion。)

3. 从使用率看优势 
不经过实践考验,仅仅看微软和SUN的广告或者分析家的评论是无法准确看出JSP, ASP.NET二者优势谁大。那么我们看看,国内外知名网站都选择什么技术开发。

用JSP的,最强代表就是Google(Google提供给开发者搜索服务的API,Google提供的AJAX技术,这两者全是Java且只有 Java,所以可以断定Google用的就是JSP),光看Google多牛B,就知道JSP多厉害了吧。另外国际上最有名气的“百度知道”-- Answers.com也是用JSP。Network Solutions域名注册与查询服务,也是用JSP。大品牌最牛的牛仔裤Levi's,包Louis Vuitton都用JSP。国内的“校内网”也是JSP。

由于ASP.NET在2002年才刚刚被微软推出,JSP(1999)早了几年,因此使用ASP.NET的大网站,还找不到太多。而且 ASP.NET有很多用于企业内部的管理网页软件开发,只在公司内部网络上,不向外部网络(Internet)上公开。Hotmail最强E-Mail系统之一, www.hotmail.com (另两者现为yahoo mail, gamil)。ViewTrip旅行服务,旅行服务,酒店订房,机票查询( www.viewtrip.com )。IELTS,雅思英语测试官方网站( www.ielts.org )。微软旗下所有技术的官方网站全是用ASP.NET的,这就不用说了。

用PHP的,与本主题无关,但因为其技术使用率在所有技术 (JSP,JSF,ASP,ASP.NET,PHP,ColdFusion,Ruby,Perl,Python,CGI,SHTML)中最高,所以也那来谈。国外最权威的知识网站“维基百科”是用PHP,知道PHP很牛了吧。国外成名已久的校内网(国内校内网就是抄它的)Facebook也是PHP的。索尼 Sony,百事Pepsi, 街机游戏公司SNK都是用PHP的。百度也是PHP的。太多了这里PHP不一一举出了。

JSP和ASP.NET到底谁才是未来的主宰相关推荐

  1. php分页类 seo,HTML_写一个对搜索引擎友好的文章SEO分页类,使用jsp/php/asp等动态程序生成 - phpStudy...

    写一个对搜索引擎友好的文章SEO分页类 使用jsp/php/asp等动态程序生成的页面如何对搜索引擎友好呢?你可能想使用url_rewrite.不过,最好还是让同一个网址在任意时间对应的页面内容都是一 ...

  2. 到底什么才是商业智能(BI)?数字化时代你应该了解这些

    前不久,国际数据公司IDC发布了<2021下半年中国商业智能软件市场跟踪报告>,其中显示2021年下半年中国商业智能软件市场规模为4.8亿美元,2021年度市场规模达到7.8亿美元,同比增 ...

  3. 到底什么才是真正的商业智能(BI)

    随着人工智能.云计算.大数据.互联网.物联网等新一代信息化.数字化技术在各行各业内开始大规模的应用,社会上的数字化.信息化程度不断加深,而数据价值也在这样的刺激下成为了个人.机构.企业乃至国家的重要战 ...

  4. bootjar打包没有jsp_网页设计制作JSP与ASP的对比

    通常,JavaSever PagesTM(JSP)和Microsoft的Active Sever Pages(ASP)在技术上有许多相似之处.两者都是基于WEB应用程序的动态交互式网页创建的技术环境支 ...

  5. 我们学习到底是为了什么,到底什么才是我们真正想要的

    原创 科大云炬 科大云炬 2019-04-26 . 今天看到一句话,感慨颇多:"现在的教育只是一味的强调一定要好好学习,却没有强调为什么要好好学习. 我们学习到底是为了什么,到底什么才是我们 ...

  6. php java 架构_JAVA和PHP到底谁才是老大?

    原标题:JAVA和PHP到底谁才是老大? 大家还记得PHP和JAVA的那些梗吗?有一天JAVA说我是世界上最好的语言!!!啦啦啦啦!我是老大,所有的编程语言都给我靠边站,激动!学习了JAVA的孩子们心 ...

  7. 北大教授:到底什么才是有效的教育?

    "为什么我们的学校总是培养不出杰出人才?"这是著名科学家.两弹一星功勋奖章获得者钱学森生前留下的问题,被称为"钱学森"之问. >>>> ...

  8. 年龄到底怎么算才对_如意甘霖vs嘉和保,到底谁才是最佳男性重疾险

    · 这是优选保第471篇原创首发文章 · 最近上线的号称旧规重疾险最后绝杀:信泰如意甘霖,然后再过几天12月12号国富嘉和保复活.在停售潮最后阶段,可谓是龙争虎斗了,最近要连续出几篇细节化的测评,今天 ...

  9. Apache、Tomcat、IIS(PHP、JSP、ASP)共存及安装Tomcat

    1. 安装 Tomcat apt-get install tomcat7 apt-get install tomcat7-admin apt-get install tomcat7-docs apt- ...

最新文章

  1. Django 分页和使用Ajax5.3
  2. mysql5.7 高可用_基于MySQL 5.7多源复制及Keepalived搭建三节点高可用架构
  3. /etc/rc.local 与 /etc/init.d Linux 开机自动运行程序
  4. 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年
  5. winlogon.exe病毒的查杀方法
  6. LDA-math-神奇的Gamma函数
  7. 动静分离和前后端分离
  8. Cnblogs自定义皮肤css样式-星空观测者
  9. spring注入私有字段_Spring字段依赖注入示例
  10. C++ std::iota递增
  11. 推荐 6 个不错的JavaScript动画库
  12. onvif学习笔记10:获取RTSP流地址
  13. ps图层组快捷键 一次打开或关闭所有的顶级图层组
  14. 微信小程序添加字体图标
  15. filezilla显示乱码(已解决)
  16. 计算机环境变量怎么恢复默认,环境变量怎么还原
  17. MATLAB中的特殊图像显示
  18. 详解服务器CPU和GPU技术区别和联系
  19. 即时通讯源代码,im源码功能全套
  20. 【项目分享】还有谁不服??这款随机表情包生成器征服你!!

热门文章

  1. android热更新bugly
  2. 港科百创|北京决赛成功举办!“香港科大-杰瑞集团”2022【人工智能】百万奖金国际创业大赛决赛成功举办!...
  3. 硬件知识:红外感应电路
  4. 605元买了Java教程自学半年后…… How2J怎么样?我的Java自学心得
  5. Java阿里巴巴开发手册与JDK1.8API中文版下载
  6. mysql建表时插入中文_Mysql新建表,插入中文时报错“Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column”问题...
  7. sam音高修正_音乐中的音高修正简史
  8. 杜克大学计算机科学博士,杜克大学计算机科学CS博士学位申请介绍
  9. MicrobiomeAnalyst 文件配置及使用
  10. springboot毕设项目古诗词鉴赏与交流平台04ps3(java+VUE+Mybatis+Maven+Mysql)