Portal原理初探(一)

本文探讨了Portal作为Web表现层框架的角色,类似于Spring,但具有Portal Container的独特机制。内容涉及Portal如何通过RequestDispatcher.include转发请求到jsp,实现资源的整合。文中提到,虽然可以跨Web应用整合资源,但PortletResponse的redirect方法受限,以防止请求目标错误。后续会继续介绍Portal的单点登陆和个性化实现。

经过最近一段对Portal 的熟悉与了解,结合最近对Spring的研究,以及在工作中构建类似于Portal的框架,对Portal这种框架有了明确的认识,在这里适当的总结一下,希望对大家能有所帮助!

1。什么是Portal?
      Portal其实是基于Web应用的一种表现层框架(Web Framework),和Spring等框架的实现原理非常类似,不同的区别是Portal Container和Spring Container的运行机制的差别,同时PortalServer并不对外提供MVC中Controller这一层结构。

     Portal Server是一种轻量级构建,构架在Web应用上面,通过封装独立的Portal容器,并结合Portlet来完成Portal所宣传的几个特点:个性化(Persionalization),单点登陆(Single Sign On)以及资源整合。

2。Portal是如何将请求转发到jsp页面中的?
      和Spring非常的类似,都是使用RequestDispatcher进行的跳转,都是使用RequestDispatcher.getDispatch(JSPPageName)来获取一个RequestDispatcher,然后执行RequestDispatcher的forward和include方法。
      
      在Spring中,使用的是forward(request,response)方法完成的跳转,这种跳转只能跳转到一个页面;而Portlet规范中定义的是使用inlcude(request,response)方法来完成的跳转,这样可以包含多个JSP页面。

3。Portal的资源整合是如何实现的?
      在第2点分析中,我们可以了解到Portlet规范中采用的是include方式来完成将请求转发到JSP页面的
 ,这样可以包含多个JSP页面,所以Portal就是通过这种方式来获取的资源。

     利用Web规范,RequestDispatcher的获取是可以跨越Web应用的(可以使用应用服务器的Context来获取某一个应用的Context),这样就可以利用Portlet整合其他的应用,不过有一个限制,必须在同一个应用服务器中。

      由于采用include的方式,不能在加载一个片断的过程中,某一个页面将请求给转到其他的地方了,导致叶面请求Target到了错误的页面,所以Portlet规范中同时约定了PortletResponse的sendRedirect等方法必须什么事都不做。

由于时间有限,今天就先总结到这里,明天继续总结,主要介绍在Portal中单点登陆和个性化的实现方式以及为什么要进行连接的编译,希望大家喜欢!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值