ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:31.38KB ,
资源ID:4170784      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4170784.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(weblogic主题.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

weblogic主题.docx

1、weblogic主题作者:林海滨 (dev2dev ID:linhibin)摘要本文着重于从理论与应用的角度,对Bea WebLogic Portal8.1做一个介绍和分析,详细介绍JSR168标准,并对Portal基本原理及经常碰到的问题进行讨论。Portal简介. 什么是Portal?. 什么是Portlet?. Portal标准. Portlets与Servlet的异同?. 相同点. 不同点. portlet优点. portlet与servlet的关系. portlet无法做到的事情. Portlets实例. Portlet生命周期. Portlet URLs. 如何生成Portlet

2、URL. 如何使用Portlet URL. portlet模式. VIEW模式. EDIT模式. HELP模式. portlet窗口状态. portlet上下文. PortletRequest PortletResponse. Portlet参数. 会话PortletSession. 变量范围定义. PortletSession与HttpSession的关系. 缓存Cache. Portlet应用. 标记库. . . . . 定制的Portlet模式. 不允许的标记. WebLogic Portal 基础概念-配置篇. Desktop. Book. Page. 基础概念-开发篇. User P

3、orfile Property Set User SegmentContent SelectorCampaign. PlaceHolder 目录结构. 开发步骤. 杂项. WebLogic Portal原理及应用. 生命周期. 参数传递. JSR168标准.WebLogic Portal8.1用法. Cache机制. 用户认证. 输出机制. WebLogic Portal设计模式. Singleton模式. Factory模式. Visitor模式.Facade模式: State模式: Observer模式. Abstract Factory模式. WebLogic Portal集成. 远程P

4、ortlet集成OA. 单点登录SSO. Portal简介什么是Portal?Portal是一个基于web的应用程序,它主要提供个性化、单点登录、不同来源的内容整合以及存放信息系统的表示层。什么是Portlet?Portlet是基于java技术的web组件,它由portlet容器管理、并处理请求,并动态生成输出内容。Portlet的输出是一个片段,即不是一个完整的页面。Portal标准为规范Portal,SUN于2003年底制定了JSR168,它定义了portlet标准,并给出了一个实现接口。Portlets与Servlet的异同?相同点基于web应用的java技术由特定的容器管理动态生成内容

5、生命周期由容器进行管理通过request/reponse进行交互不同点portlet只生成片段portlet并不直接绑定到某一个URL上portlet通过portal进行交互portlet可以多次在同一个portal页面上同时出现portlet优点能访问到用户配置信息能在不同的域中存储会话:应用程序级到私有级。portlet与servlet的关系前者能调用后者,并且能共享信息,包括:Attributesportlet容器是servlet容器的扩展portlet无法做到的事情设置response的字符集编码设置http header获取客户端的requestPortlets实例如果是在普通的场合

6、下使用,即不是在分布式场合,则每个portal应用就会生成一个portlet实例。而如果是在分布式场合下使用的话,则每个jvm只有一个实例。Portlet生命周期Portlet接口的四个方法构成一个完整的生命周期:init, processAction,render,destroypublic void init(PortletConfig config) throws PortletException;由portlet容器调用,在将portlet放入服务区前调用。portlet容器在初始化portlet后,直接调用这个方法。public void processAction (ActionR

7、equest request, ActionResponse response) throws PortletException, java.io.IOException;由portlet容器调用,用来处理action request。public void render (RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException;由portlet容器调用,用来生成输出。public void destroy();将portlet从服务区中删除。Portlet URL

8、s如何生成Portlet URLRenderResponse.createActionURLRenderResponse.createRenderURL调用setParameter、setParameters可以用来设置参数.如何使用Portlet URL开发者不可以对参数进行任何编码,它(编码)是由portlet容器进行的。见下面例子: PortletURL url = response.createRenderURL(); url.setParameter(“customer”,”); url.setParameter(“show”,”summary”); writer.print(“Su

9、mmary”);portlet URL可以包含portlet的模式及窗口的状态,见下面例子: PortletURL url = response.createActionURL(); url.setParameter(“paymentMethod”,”creditCardInProfile”); url.setWindowState(WindowState.MAXIMIZED); writer.print(“ 窗体顶端”);setSecure方法用来设置是否是https。portlet模式portlet模式用来指示portlet应执行的功能,标准定义了三种:VIEW, EDIT, HELP。V

10、IEW模式用来生成当前portlet状态的标签内容,可能包含一个或多个screen。开发者必须重载GenericPortlet.doView()方法。此模式是所有的portlet都必须实现的。EDIT模式用来编辑portlet模式。必须重载GenericPortlet.doEdit()方法。此模式并不要求实现。HELP模式提供有关portlet的信息。重载GenericPortlet.doHelp()方法。此模式并不要求实现。此外,还可以创建自定义的模式。定制的portlet必须重载GenericPortlet.doDispatch()方法在描述文件中指明所支持的模式,元素是,见下例子: te

11、xt/html edit help portlet窗口状态窗口状态可以用来指示当前页面的有效空间, portlet可以根据窗口状态来进行不同的输出。内置状态分为三种:NORMAL、MAXIMIZED、MINIMIZED,此外还可以自定义状态。portlet上下文由PortletContext实现,必须与ServletContext一致。主要方法:getPortalInfo、getProperty、getPropertyNames、getSupportedPortletModes、getSupportedWindowStatesPortletRequestPortletRequest有两个子类:

12、 ActionRequest RenderRequest主要方法:getParameter返回指定名称参数的第一个值getParameterNames返回指定名称参数数组名称getParameterValues 返回指定名称参数的值数组getParameterMapportlet容器不会将request的参数传播到外面,除非portlet在processAction中,调用了ActionRequest.setRenderParameter。不同portlet之间的request是不可见的。Attributes可以与JSP及Servlet共享,它用来在普通API无法应用的场合。Propertie

13、s由portlet容器指定,用来获取http的某些特性, 包括:content-length, content-type, accept-language等等。前缀为“javax.portlet.”的属性及参数是保留名称。PortletRequest的生命周期仅在processAction方法或render调用期间。PortletResponsePortletResponse有两个子类: ActionResponse RenderResponsePortletResponse的主要方法:setPropertyaddPropertyencodeURLsendRedirectActionRespo

14、nse接口 允许重定向、设置参数、改变窗口状态及模式。 setRenderParameterRenderResponse接口 允许设置标题、内容。 setContentType getPortletOutputStream getWriter生命周期:在processAction方法或render调用期间。Portlet参数Portlet通过参数来获取各种属性,接口是:PortletPreferencesPortlet只能在processAction调用的时候修改参数。本地化参数根据ResourceBundle类进行实现。命名规则:javax.portlet.preference.descri

15、ption.验证:实现:PreferencesValidator,并且必须以线程安全的模式实现,它在JVM中必须是单子的。当有验证器与参数关联时,PortletPreferences.store()必须调用验证器的validate()方法。参数的修改必须是原子性。会话PortletSession变量范围定义一是应用程序级别APPLICATION_SCOPE,二是Portlet级别PORTLET_SCOPE。APPLICATION_SCOPE必须采用前缀表示法来进行属性的存取。当使用PortletSessionUtil类进行属性的访问时,对PORTLET_SCOPE的变量不用采取前缀,建议用取这

16、种方法。PortletSession与HttpSession的关系在PortletSession与HttpSession中的属性必须是互相可见的。PORTLET_SCOPE属性必须加上前缀,两种session必须一致。APPLICATION_SCOPE的属性名称必须是一致的。“javax.portlet.”前缀的属性名称是保留的,开发者不能使用。缓存Cache超时缓存,不要求实现。 300 使用RenderResponse设置属性可以改变缓存EXPIRATION_CACHE,如果设置为0则不使用缓存,设置为-1则缓存永不过时。在描述文件中没有定义,但程序中设置了的话,会被忽略。Portlet应

17、用Portlet应用是一个web应用,并且可以用于不同的portlet容器中。Portlet应用与web应用的关系:由servlet容器管理所有的组件、资料(除portlet外)。Portlet应用与PortletContext的关系:由容器实现一对一。目录结果:/WEB-INF/portlet.xml/WEB-INF/classes/WEB-INF/libClassLoader:与servlet同样。标记库defineObjects定义了以下几个变量: RenderRequest RenderResponse PortletConfigactionURL用来创建URL,定义了以下几个变量:

18、String windowState String portletMode String var String secure20namespace定义了当前portlet的一个唯一值,用于输出时确保名称的唯一性,例如javascript函数名。param用来加入到URL中,必须在actionURL的内部定义。例如:”myParam” value=”someValue”/定制的Portlet模式about, config, edit_defaults, priview, print不允许的标记基于HTML:base, body, iframe, frame, frameset, head, ht

19、ml, title。基于XHTML:base, body, iframe, head, html, title。不太兼容的标记:link,meta,style。Portlet标准虽不复杂,但其在整个portal应用中不过是冰山一角。实际上,实现一个portal是一个非常庞大的工程,它几乎等同于一个IDE的开发,Bea WebLogic在这方面可以说是业界的先锋,其IDE环境workshop,已完全集成了Portal的开发,达到了可视化目的,这也是下一节所要详述的。WebLogic Portal其实Bea WebLogic Portal7.0就已是一个十分成熟的门户框架, Portal8.1更是

20、一个出色的产品,它与workshop开发环境的无缝集成,使开发者的解决方案速度大大地加快,从某种意义上来说,只要会配置portal,可以不用写一行代码就可以实现一个门户应用。那么就让我们来看看如何配置Weblogic。首先来看看Portal的基本概念:基础概念-配置篇Desktop Portal桌面,每个portal可以具有多个桌面。 一个桌面可以具有多个书册Book 书册,等同于传统软件界面的tab,是由desktop包容的。书册是可以嵌套的,即一个书册中可以再嵌入另一个书册一个书册可以包含多个页面。Page 页面,每个book可以包含多个页面。一个页面可以包含多个portlet。基础概念-

21、开发篇User Porfile Property Set用户配置属性集,用来存储用户信息。User Segment用户分段,用来分用户划分等级,应用程序可以根据等级进行不同的逻辑处理,例如可以实现网上购物的用户等级划分Content Selector内容选择符Campaign活动,用来定义门户事件逻辑处理。PlaceHolder占位符,是web网页上的一个表示空间,可以存放文字、图片或shockware等信息。目录结构compaignsframework markup layout:布局,用来安排网页的表现形式 lookandfeel:外观 menu:菜单 shell:外壳 theme:主题

22、skeletons骨架,此目录一般包括种jsp资源,包括header.jsp/footer.jsp等。 skins,外观,即网页的表现形式portlets存放portlets的目录visitorTools用户访问工具,利用此工具可以定义portal的外观、布局。导航菜单 Multi Level Menu多层菜单,即类似于windows菜单系统。 Single Levle Menu单层菜单作用域 desktop:lookandfee:shell:book:page:portlet开发步骤1. 使用configuration wizard建立一个portal domain。2. 新建一个porta

23、l application。3. 在应用中新建一个portal project。4. 在项目中新一个portal。5. 在项目中新建一个portlet6. 在portal中,插入新建的portlet杂项Portal8.1还具有如下特性:实现了jsr168标准。支持用户自定义桌面、外观。你可以在如下路径中找到相关标准接口:%weblogic81%portallib etuixsystemextsystemportlet.jar。portlet包含器的位置是:%weblogic81%portallib etuixwebportlet-container.jar此外,对于WebLogic Porta

24、l,最重要的包莫过于:%weblogic81%portallib etuixsystem etuix_system.jarWebLogic Portal原理及应用生命周期WebLogic Portal使用了流行的单入口方法实现portal,在web.xml文件中,你会看到类似如下的两个servlet:AppManagerServlet=uix.servlets.manager.PortalServletPortletServlet=uix.servlets.manager.PortletServlet对于任何扩展名为portal的访问,都会由PortalServlet进行解释,这种熟悉的解决是

25、否令你想起了struts或axis?在bea portal中,对struts的支持已是相当完善的了,不过,还有更好的框架,那就是page flow。PortletServlet继承了UIServlet,而后者则继承了Servlet,这样一来,你就可以猜到它的生命周期了吧。内部流程:PortalServlet.service UIServlet.service Lifecycle.run ControlTreeWalker.walk JspRenderer.beginRender JspRenderer.endRender参数传递调用portlet时,可能会传递一些参数进去,例如对于信息发布系统

26、,在同一页面可能需要显示多个栏目的新闻,即在同一个page中可能调用同一个portlet的多个实例,此时,传递参数是实现这个方案的关键。对于传统的jsp来说,是通过include中来传递参数。而对于portlet来说,JSR168已指定的一个标准,此外,Weblogic Portal也提供了一个实现方案。详细描述见下:JSR168标准 1、在portlet.xml部署文件中进行参数值指定,见下面例子。 xsi:schemaLocation= xmlns= info InfoView text/html edit showChannelTitle true 2、获取、设置参数:WebLogic

27、Portal8.1用法 1、在portlet窗口中,新建一个Prefenrence,见下图: 2、为Prefenrence指定参数值。见下图: 3、获取、设置Prefenrence 使用Weblogic提供的标记库,包括:getPreference、getPreferences等。Cache机制 Portal使用的是Weblogic的公共Cache机制,在portlet部署中可以独立指定Cache的超时时间。用户认证 Portal用户认证,使用是的weblogic的安全机制,参见如下流程: com.bea.p13n.security.Authentication.login(p13n_system.jar) weblogic.servlet.security.ServletAuthentication.weak(weblogic.jar) we

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2