MVC模式在Portlet应用开发中的研究和应用.pdf
《MVC模式在Portlet应用开发中的研究和应用.pdf》由会员分享,可在线阅读,更多相关《MVC模式在Portlet应用开发中的研究和应用.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、http:/ MVC模式在模式在Portlet应用开发中的研究和应用应用开发中的研究和应用1 高崇1,周南1,邱小彬1 1中国农业大学网络中心,(100083)E-mail: 摘摘 要:要:Portlet 是 Portal 的核心组件,是运行于 Portlet 容器内的 Java 程序。本文介绍了 Portlet 的基本结构和 API,分析了直接采用 Portlet API 和采用 MVC 模式进行 Portlet的开发的特点。通过比较得出采用 MVC 模式开发 Portlet 应用,能使 Portlet 应用具有开发灵活、易于扩展、便于维护等优点。最后给出了一个实际项目中应用的实例。关键词:
2、关键词:Portlet、MVC、Portal、设计模式 1.引1.引 言 言 提到 Portlet 就不能不提 Portal。Portal 即门户,它是一种基于 web 的应用,能实现内容整合、单点登陆、个性化以及查询等功能,用于存放和管理系统的表示层。Portal 主要通过镶嵌在 Portal 页面中的 Portlet 与后端系统交互,Portlet1是 Portal 中的核心组件。Portlet 本身是一种基于 Java 的 web 组件,用 Portlet API 来编写,运行在 Portal 环境中。然而直接采用 Portlet API 进行 Portlet 开发,具有开发效率低、业务
3、逻辑不能复用和开发功能复杂的 Portlet 较困难等问题。将 MVC 模式运用在 Portlet 开发中能提高开发效率、更好的实现复用和易于进行复杂的 Portlet 的开发。采用 MVC 模式的关键是对 Portlet进行模型(Model)、视图(View)和控制器(Controller)的分离。2.Portlet 和和 MVC 模式模式 2.1 Portlet 技术技术 Portlet 是以 Java 技术为核心的 Web 组件,由 Portlet 容器进行管理,用以生成动态内容片段(fragment)并且同时具有可定制性。客户端和 Portlet 的互动是由 Portal 通过的 re
4、quest/response 方式实现的,Portal Server 将请求通过 Portlet 容器传递给具体的 Portlet,而后这些 Portlet 产生相应的内容片段(Fragment),Portal 再将这些片段组合成 Portal 页面呈现给客户。Portlet 是用 Portlet API 来编写的,所有的 Portlet 都要实现 javax.portlet.Portlet接口或者继承 javax.portlet.GenericPortlet 这个类。GenericPortlet 提供了一些包括处理 Render 请求在内的 Portlet 默认功能的实现,并指定了三种默认的
5、 VIEW、EDIT、HELP模式(Mode)和他们相应的逻辑方法 doView()、doEdit()、doHelp()。1 本课题得到科技部中小企业技术创新基金(03C26211100786)资助。-1-http:/ 2.2 MVC 模式 MVC 模式 MVC 模式起源于 Smalltalk,它包括模型(Model)、视图(View)、控制器(Controller)三部分。模型:用于表示应用系统商业逻辑的一组对象。在基于 MVC 的系统中,它用来维持系统的状态和提供用于改变系统状态的方法。视图:向用户表示信息的一种具体方式。在 web 系统中,视图通常采用 JSP(Java Server P
6、ages)技术。控制器:是应用 MVC 系统中的核心部分,用于处理具体流程和导向,使请求、视图和模型联系起来。客户的行为作为请求发送给控制器,控制器将客户端行为转变为相应模型的操作,操作的结果是对系统状态的改变,然后指定相应的视图将更新后的状态反映给客户。MVC 模式的关键在系统模型中将模型(系统状态)、视图(系统的界面表示)、控制器(将请求传递给相应模型的机制)分离,使三者相互独立,具有很好的扩展性和伸缩性。3.MVC 模式与模式与 Portlet 应用开发应用开发 3.1 直接采用直接采用 Portlet API 进行进行 Portlet 开发开发 主要接口和类简介3:javax.port
7、let.Portlet 是所有 Portlet 都要实现的接口;javax.portlet.PortletConfig 接口提供对 Portlet 相关信息的只读方式的访问,这些信息来源于 Portlet 的部署描述文件;javax.portlet.PortletContext 接口定义了 Portlet 容器的 Portlet 视图,同时也使得 Portlet 能获得资源,Portlet 使用 PortletContext 可以访问 Portlet 日志和获得对资源的 URL 引用;javax.portlet.GenericPortlet 提供了对javax.portlet.Portlet
8、接口的默认实现,提供了一个 Portlet 实例类应该具有的方法。通常编写 Portlet 类是继承 GenericPortlet 类的方法2,并覆盖以下方法中的至少一个方法:1)处理业务逻辑的方法:processAction,处理 action 请求,业务逻辑调用和持久化只能在该方法内实现;2)显示部分的方法:Portlet 中的 Mode(模式)代表 Portlet 正在执行的功能,doView,在VIEW模式下处理render请求;doEdit,在EDIT模式下处理render请求;doHelp,在 HELP 模式下处理 render 请求;最终处理完 render 请求并产生响应片段(
9、Fragments)给 Portal 引擎。3)生命周期控制方法:init 和 destroy,用于管理 Portlet 生命周期中占用的资源。-2-http:/+init()+process()+doView()+doEdit()+doHelp()+destroy()+getPortletConfig()+getPortletContext()javax.portlet.GenericPortlet+init()+process()+render()+destory()javax.portlet.Portlet+init():void+process():void+doView():void
10、+doHelp():void+doEdit():void+destroy():void+myMethod()MyPortlet+getInitParameter()+getInitParameterNames()+getPortletContext()+getPortletName()+getResourceBundle()javax.portlet.PortletConfig+getAttribute()+getInitParameter()+getPortletContextName()+getResourceAsStream()+log()+removeAttribute()+setAt
11、tribute()javax.portlet.PortletContext 图一 Portlet 类图 从图一可以看出进行 Portlet 应用的编写时,Portlet 本身作为一个控制器,而业务逻辑和与用户交互的视图接口只是作为 Portlet 的不同方法来使实现的。因此作为基于 Java的 Web 组件的 Portlet 就没有将它应有的业务逻辑和用户视图做很好的分离,Portlet 的开发工作就很难细化和继续分工,不能发挥各类开发人员的特长。功能复杂的 Portlet 开发起来就更加困难,而且不利于后期维护。在 Portlet 开发中采用 MVC 框架能很好的解决上述问题。3.2 采用采
12、用 MVC 模式的模式的 Portlet 开发开发 采用MVC模式首先需要解决的问题就是对Portlet中模型、视图和控制器的抽象和分离。由于在 Portlet 中 Request 分 ActionRequest 和 RenderRequest 两种,Session 的作用域分为 Application 和 Portlet 两种,对请求的处理分为 processAction 和 render 两种,因此在截获 Portlet Request 的时候区分这两类的 Request;而在模型部分 processAction 用于完成业务是逻辑和持久化,render 则用于显示逻辑和对客户端的 Coo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MVC 模式 Portlet 应用 开发 中的 研究
限制150内