【java】jsp-servlet -portlet

【背景】

        今天看spring mvc 官方文档,看到一句话     注解特性既支持基于Servlet的MVC,也可支持基于Portlet的MVC。

比较好奇portlet是什么。然后就百度了一下。 看到一些有趣的说法给大家分享一下。

【正文】

       1.sun 公司的起名规则:servlet的命名可以看出 sun 命名的特点,如 Applet 表示小应用程序;Scriptlet = Script + Applet,表示小脚本程序;同样Servlet = Service + Applet,表示小服务程序。 

       同理,portlet 其实 是 Portal+applet。

       2.  那么 portal是什么?

      

        Portal是一个基于Web的应用,它能提供个性化,单点登陆,不同源的内容聚合,和信息系统的表示层集中。聚合是整合不同Web页面源数据的过程。为了提供用户定制的内容,Portal可能包含复杂的个性化特征。为不同用户创建内容的Portal页,可能包含不同的Portlet集。表示了Portal的基本架构。

        Portal Web应用处理客户请求,找回用户当前页中的Portlet,然后调用Portlet容器,重新获取各个Portlet的内容。Portlet容器提供Portlet的运行时环境,并通过Portlet API调用PortletPortal通过Portlet Invoker API调用Portlet容器。Portlet容器通过PortletProvider SPIService Provide Interface)获取Portal信息。表示了基本的Portal页面组件。

        Portal页面本身代表一个完整的标记文档,并且聚集了一些Portlet窗口。除Portlet外,页面可能还包含导航区和标志区(Navigation Area and Banners)。一个Portlet窗口包含一个标题栏,装饰,和Portlet产生的内容。装饰可以包括改变Portlet窗口状态和模式的按钮(后文将解释这些概念)。

          ————来自百度百科, 我自己也是似懂非懂的。  猜测和servlet是同一个级别的。

           3. 什么是servlet

           先上百度百科

        

          JSP Servlet 的区别到底在应用上有哪些体现,很多人搞不清楚。简单的说,SUN 首先发展出 Servlet,其功能比较强劲,体系设计也很先进,只是,它输出 HTML 语句还是采用了老的 CGI 方式,是一句一句输出,所以,编写和修改 HTML 非常不方便。

         Java Server Pages(JSP)是一种实现普通静态HTML 和动态 HTML 混合编码的技术,JSP并没有增加任何本质上不能用 Servlet 实现的功能。但是,在 JSP 中编写静态HTML 更加方便,不必再用 println语 句来输出每一行 HTML 代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行 HTML设计,同时留出供 Servlet 程序员插入动态内容的空间。

        后来 SUN 推出了类似于 ASP 的镶嵌型的 JSP,把 JSP TAG 镶嵌到 HTML 语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如 ASPPHPJSP 都是镶嵌型的语言。这是 JSP Servlet 区别的运作原理层面。

    从网络三层结构的角度看 JSP Servlet 的区别,一个网络项目最少分三层:data layer(数据层)business layer(业务层)presentationlayer(表现层)。当然也可以更复杂。Servlet用来写 business layer 是很强大的,但是对于写 presentation layer 就很不方便。JSP 则主要是为了方便写 presentation layer 而设计的。当然也可以写business layer。写惯了 ASPPHPCGI的朋友,经常会不自觉的把 presentation layer businesslayer 混在一起。

         根据 SUN 自己的推荐,JSP中应该仅仅存放与 presentation layer 有关的东西,也就是说,只放输出 HTML 网页的部分。而所有的数据计算,数据分析,数据库联结处理,统统是属于 business layer,应该放在 Java BEANS 中。通过 JSP 调用 Java BEANS,实现两层的整合。

         实际上,微软前不久推出的 DNA 技术,简单说,就是 ASP+COM/DCOM 技术。与J SP+BEANS 完全类似,所有的 presentation layer ASP 完成,所有的 business layer COM/DCOM 完成。通过调用,实现整合。

         为什么要采用这些组件技术呢?因为单纯的 ASP/JSP 语言是非常低效率执行的,如果出现大量用户点击,纯 SCRIPT 语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。

        另外一方面,纯 SCRIPT 语言将 presentation layer business layer 混在一起,造成修改不方便,并且代码不能重复利用。如果想修改一个地方,经常会牵涉到十几页 code,采用组件技术就只改组件就可以了。

       综上所述,Servlet 是一个早期的不完善的产品,写 business layer 很好,写 presentation layer 就很臭,并且两层混杂。

       所以,推出JSP+BEAN,用 JSP presentation layer,用 BEAN business layerSUN 自己的意思也是将来用 JSP 替代 Servlet。这是技术更新方面 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 跨平台。

      简单分析了一下 JSP Servlet 的区别和 Java Web 开发方面的发展。随着机器速度越来越快,Java 的速度劣势很快就可以被克服。


         基本上百科说的很清楚了。 但是有一点要提一下, 就是jsp实质上也是转换成servlet输出html语句的,只不过无需我们手动完成这个操作了。

【总结】

          有些基础的概念还是很有趣的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农胖虎-java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值