Servlet对JSP

 
JSP SERVLET 到底在应用上有什么区别,很多人搞不清楚。我来胡扯几句吧。简单的说, SUN 首先发展出 SERVLET ,其功能比较强劲,体系设计也很先进,只是,它输出 HTML 语句还是采用了老的 CGI 方式,是一句一句输出,所以,编写和修改 HTML 非常不方便。 后来 SUN 推出了类似于 ASP 的镶嵌型的 JSP ,把 JSP TAG 镶嵌到 HTML 语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如 ASP PHP JSP 都是镶嵌型的 SCRIPT 语言。
从网络三层结构的角度看,一个网络项目最少分三层: data layer,business layer, presentation layer 。当然也可以更复杂。 SERVLET 用来写 business layer 是很强大的,但是对于写 presentation layer 就很不方便。 JSP 则主要是为了方便写 presentation layer 而设计的。当然也可以写 business layer 。写惯了 ASP PHP CGI 的朋友,经常会不自觉的把 presentation layer business layer 混在一起。就象前面那个朋友,把数据库处理信息放到 JSP 中,其实,它应该放在 business layer 中。
  
根据 SUN 的推荐, JSP 中应该仅仅存放与 presentation layer 有关的东东,也就是说,只放输出 HTML 网页的部份。而所有的数据计算,数据分析,数据库联结处理,统统是属于 business layer ,应该放在 JAVA BEANS 中。通过 JSP 调用 JAVA BEANS ,实现两层的整合。
实际上,微软前不久推出的 DNA 技术,简单说,就是 ASP+COM/DCOM 技术。与 JSP+BEANS 完全类似,所有的 presentation layer ASP 完成,所有的 business layer COM/DCOM 完成。通过调用,实现整合。
   
为什么要采用这些组件技术呢?因为单纯的 ASP/JSP 语言是非常低效率执行的,如果出现大量用户点击,纯 SCRIPT 语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。
  另外一方面,纯 SCRIPT 语言将 presentation layer business layer 混在一起,造成修改不方便,并且代码不能重复利用。如果想修改一个地方,经常会牵涉到十几页 CODE ,采用组件技术就只改组件就可以了。综上所述, SERVLET 是一个早期的不完善的产品,写 business layer 很好,写 presentation layer 就很臭,并且两层混杂。
  所以,推出 JSP+BAEN ,用 JSP presentation layer, BAEN business layer SUN 自己的意思也是将来用 JSP 替代 SERVLET
  可是,这不是说,学了 SERVLET 没用,实际上,你还是应该从 SERVLET 入门,再上 JSP ,再上 JSP+BEAN
  强调的是:学了 JSP ,不会用 JAVA BEAN 并进行整合,等于没学。大家多花点力气在 JSP+BEAN 上。 在补充几句:
  我们可以看到,当 ASP+COM JSP+BEAN 都采用组件技术后,所有的组件都是先进行编译,并驻留内存,然后快速执行。所以,大家经常吹的 SERVLET/JSP 先编译驻内存后执行的速度优势就没有了。
  反之, ASP+COM+IIS+NT 紧密整合,应该会有较大的速度优势呈现。而且, ASP+COM+IIS+NT 开发效率非常高,虽然 BUG 很多。
  那么,为什么还用 JSP+BEAN ?因为 JAVA 实在前途远大。微软分拆后,操作系统将群雄并起,应用软件的开发商必定要找一个通用开发语言进行开发, JAVA 一统天下的时机就到了。如果微软分拆顺利,从中分出的应用软件公司将成为 JAVA 的新领导者。目前的 JAVA 大头 SUN IBM 都死气沉沉,令人失望。希望新公司能注入新活力。不过,新公司很有可能和旧 SUN 展开 JAVA 标准大战,双方各自制定标准,影响 JAVA 夸平台。
  另外,现在的机器速度越来越快, JAVA 的速度劣势很快就可以被克服。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值