经过最近一段对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中单点登陆和个性化的实现方式以及为什么要进行连接的编译,希望大家喜欢!
本文探讨了Portal作为Web表现层框架的角色,类似于Spring,但具有Portal Container的独特机制。内容涉及Portal如何通过RequestDispatcher.include转发请求到jsp,实现资源的整合。文中提到,虽然可以跨Web应用整合资源,但PortletResponse的redirect方法受限,以防止请求目标错误。后续会继续介绍Portal的单点登陆和个性化实现。

被折叠的 条评论
为什么被折叠?



