weblogic主题.docx

上传人:b****3 文档编号:4170784 上传时间:2023-05-06 格式:DOCX 页数:21 大小:31.38KB
下载 相关 举报
weblogic主题.docx_第1页
第1页 / 共21页
weblogic主题.docx_第2页
第2页 / 共21页
weblogic主题.docx_第3页
第3页 / 共21页
weblogic主题.docx_第4页
第4页 / 共21页
weblogic主题.docx_第5页
第5页 / 共21页
weblogic主题.docx_第6页
第6页 / 共21页
weblogic主题.docx_第7页
第7页 / 共21页
weblogic主题.docx_第8页
第8页 / 共21页
weblogic主题.docx_第9页
第9页 / 共21页
weblogic主题.docx_第10页
第10页 / 共21页
weblogic主题.docx_第11页
第11页 / 共21页
weblogic主题.docx_第12页
第12页 / 共21页
weblogic主题.docx_第13页
第13页 / 共21页
weblogic主题.docx_第14页
第14页 / 共21页
weblogic主题.docx_第15页
第15页 / 共21页
weblogic主题.docx_第16页
第16页 / 共21页
weblogic主题.docx_第17页
第17页 / 共21页
weblogic主题.docx_第18页
第18页 / 共21页
weblogic主题.docx_第19页
第19页 / 共21页
weblogic主题.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

weblogic主题.docx

《weblogic主题.docx》由会员分享,可在线阅读,更多相关《weblogic主题.docx(21页珍藏版)》请在冰点文库上搜索。

weblogic主题.docx

weblogic主题

作者:

林海滨(dev2devID:

linhibin)

摘要

本文着重于从理论与应用的角度,对BeaWebLogicPortal8.1做一个介绍和分析,详细介绍JSR168标准,并对Portal基本原理及经常碰到的问题进行讨论。

Portal简介...

什么是Portal?

.

什么是Portlet?

.

Portal标准...

Portlets与Servlet的异同?

...

相同点...

不同点...

portlet优点...

portlet与servlet的关系...

portlet无法做到的事情...

Portlets实例...

Portlet生命周期...

PortletURLs.

如何生成PortletURL.

如何使用PortletURL.

portlet模式...

VIEW模式...

EDIT模式...

HELP模式...

portlet窗口状态...

portlet上下文...

PortletRequest

PortletResponse.

Portlet参数...

会话PortletSession.

变量范围定义...

PortletSession与HttpSession的关系...

缓存Cache.

Portlet应用...

标记库...

.

.

.

.

定制的Portlet模式...

不允许的标记...

WebLogicPortal

基础概念--配置篇...

Desktop.

Book.

Page.

基础概念--开发篇...

UserPorfilePropertySet

UserSegment

ContentSelector

Campaign.

PlaceHolder

目录结构...

开发步骤...

杂项...

WebLogicPortal原理及应用...

生命周期...

参数传递...

JSR168标准...

WebLogicPortal8.1用法...

Cache机制...

用户认证...

输出机制...

WebLogicPortal设计模式...

Singleton模式...

Factory模式...

Visitor模式...

Facade模式:

State模式:

Observer模式...

AbstractFactory模式...

WebLogicPortal集成...

远程Portlet

集成OA.

单点登录SSO..

Portal简介

什么是Portal?

Portal是一个基于web的应用程序,它主要提供个性化、单点登录、不同来源的内容整合以及存放信息系统的表示层。

什么是Portlet?

Portlet是基于java技术的web组件,它由portlet容器管理、并处理请求,并动态生成输出内容。

Portlet的输出是一个片段,即不是一个完整的页面。

Portal标准

为规范Portal,SUN于2003年底制定了JSR168,它定义了portlet标准,并给出了一个实现接口。

Portlets与Servlet的异同?

相同点

基于web应用的java技术

由特定的容器管理

动态生成内容

生命周期由容器进行管理

通过request/reponse进行交互

不同点

portlet只生成片段

portlet并不直接绑定到某一个URL上

portlet通过portal进行交互

portlet可以多次在同一个portal页面上同时出现

portlet优点

能访问到用户配置信息

能在不同的域中存储会话:

应用程序级到私有级。

portlet与servlet的关系

前者能调用后者,并且能共享信息,包括:

Attributes

portlet容器是servlet容器的扩展

portlet无法做到的事情

设置response的字符集编码

设置httpheader

获取客户端的request

Portlets实例

如果是在普通的场合下使用,即不是在分布式场合,则每个portal应用就会生成一个portlet实例。

而如果是在分布式场合下使用的话,则每个jvm只有一个实例。

Portlet生命周期

Portlet接口的四个方法构成一个完整的生命周期:

init,processAction,render,destroy

publicvoidinit(PortletConfigconfig)throwsPortletException;

由portlet容器调用,在将portlet放入服务区前调用。

portlet容器在初始化portlet后,直接调用这个方法。

publicvoidprocessAction(ActionRequestrequest,ActionResponseresponse)

   throwsPortletException,java.io.IOException;

由portlet容器调用,用来处理actionrequest。

publicvoidrender(RenderRequestrequest,RenderResponseresponse)

   throwsPortletException,java.io.IOException;

由portlet容器调用,用来生成输出。

publicvoiddestroy();

将portlet从服务区中删除。

PortletURLs

如何生成PortletURL

RenderResponse.createActionURL

RenderResponse.createRenderURL

调用setParameter、setParameters可以用来设置参数.

如何使用PortletURL

开发者不可以对参数进行任何编码,它(编码)是由portlet容器进行的。

见下面例子:

      PortletURLurl=response.createRenderURL();

      url.setParameter(“customer”,””);

      url.setParameter(“show”,”summary”);

      writer.print(“Summary”);

portletURL可以包含portlet的模式及窗口的状态,见下面例子:

      PortletURLurl=response.createActionURL();

      url.setParameter(“paymentMethod”,”creditCardInProfile”);

      url.setWindowState(WindowState.MAXIMIZED);

      writer.print(“

窗体顶端

”);

setSecure方法用来设置是否是https。

portlet模式

portlet模式用来指示portlet应执行的功能,标准定义了三种:

VIEW,EDIT,HELP。

VIEW模式

用来生成当前portlet状态的标签内容,可能包含一个或多个screen。

开发者必须重载GenericPortlet.doView()方法。

此模式是所有的portlet都必须实现的。

EDIT模式

用来编辑portlet模式。

必须重载GenericPortlet.doEdit()方法。

此模式并不要求实现。

HELP模式

提供有关portlet的信息。

重载GenericPortlet.doHelp()方法。

此模式并不要求实现。

此外,还可以创建自定义的模式。

定制的portlet必须重载GenericPortlet.doDispatch()方法

在描述文件中指明所支持的模式,元素是,见下例子:

      

      text/html

      edit

      help

      

portlet窗口状态

窗口状态可以用来指示当前页面的有效空间,portlet可以根据窗口状态来进行不同的输出。

内置状态分为三种:

NORMAL、MAXIMIZED、MINIMIZED,此外还可以自定义状态。

portlet上下文

由PortletContext实现,必须与ServletContext一致。

主要方法:

getPortalInfo、getProperty、getPropertyNames、getSupportedPortletModes、getSupportedWindowStates

PortletRequest

PortletRequest有两个子类:

      ActionRequest

      RenderRequest

主要方法:

getParameter返回指定名称参数的第一个值

getParameterNames返回指定名称参数数组名称

getParameterValues返回指定名称参数的值数组

getParameterMap

portlet容器不会将request的参数传播到外面,除非portlet在processAction中,调用了ActionRequest.setRenderParameter。

不同portlet之间的request是不可见的。

Attributes可以与JSP及Servlet共享,它用来在普通API无法应用的场合。

Properties由portlet容器指定,用来获取http的某些特性,包括:

content-length,content-type,accept-language等等。

前缀为“javax.portlet.”的属性及参数是保留名称。

PortletRequest的生命周期

仅在processAction方法或render调用期间。

PortletResponse

PortletResponse有两个子类:

      ActionResponse

      RenderResponse

PortletResponse的主要方法:

setProperty

addProperty

encodeURL

sendRedirect

ActionResponse接口

      允许重定向、设置参数、改变窗口状态及模式。

      setRenderParameter

RenderResponse接口

      允许设置标题、内容。

      setContentType

      getPortletOutputStream

      getWriter

生命周期:

在processAction方法或render调用期间。

Portlet参数

Portlet通过参数来获取各种属性,接口是:

PortletPreferences

Portlet只能在processAction调用的时候修改参数。

本地化参数

根据ResourceBundle类进行实现。

命名规则:

’javax.portlet.preference.description.

验证:

实现:

PreferencesValidator,并且必须以线程安全的模式实现,它在JVM中必须是单子的。

当有验证器与参数关联时,PortletPreferences.store()必须调用验证器的validate()方法。

参数的修改必须是原子性。

会话PortletSession

变量范围定义

一是应用程序级别APPLICATION_SCOPE,

二是Portlet级别PORTLET_SCOPE。

APPLICATION_SCOPE必须采用前缀表示法来进行属性的存取。

当使用PortletSessionUtil类进行属性的访问时,对PORTLET_SCOPE的变量不用采取前缀,建议用取这种方法。

PortletSession与HttpSession的关系

在PortletSession与HttpSession中的属性必须是互相可见的。

PORTLET_SCOPE属性必须加上前缀,两种session必须一致。

APPLICATION_SCOPE的属性名称必须是一致的。

“javax.portlet.”前缀的属性名称是保留的,开发者不能使用。

缓存Cache

 超时缓存,不要求实现。

      

             300

      

使用RenderResponse设置属性可以改变缓存EXPIRATION_CACHE,如果设置为0则不使用缓存,设置为-1则缓存永不过时。

在描述文件中没有定义,但程序中设置了的话,会被忽略。

Portlet应用

Portlet应用是一个web应用,并且可以用于不同的portlet容器中。

Portlet应用与web应用的关系:

由servlet容器管理所有的组件、资料(除portlet外)。

Portlet应用与PortletContext的关系:

由容器实现一对一。

目录结果:

/WEB-INF/portlet.xml

/WEB-INF/classes

/WEB-INF/lib

ClassLoader:

与servlet同样。

标记库

defineObjects定义了以下几个变量:

      RenderRequest

      RenderResponse

      PortletConfig

actionURL用来创建URL,定义了以下几个变量:

      StringwindowState

      StringportletMode

      Stringvar

      Stringsecure

20

namespace定义了当前portlet的一个唯一值,用于输出时确保名称的唯一性,例如javascript函数名。

param用来加入到URL中,必须在actionURL的内部定义。

例如:

”myParam”value=”someValue”/>

定制的Portlet模式

about,config,edit_defaults,priview,print

不允许的标记

基于HTML:

base,body,iframe,frame,frameset,head,html,title。

基于XHTML:

base,body,iframe,head,html,title。

不太兼容的标记:

link,meta,style。

Portlet标准虽不复杂,但其在整个portal应用中不过是冰山一角。

实际上,实现一个portal是一个非常庞大的工程,它几乎等同于一个IDE的开发,BeaWebLogic在这方面可以说是业界的先锋,其IDE环境workshop,已完全集成了Portal的开发,达到了可视化目的,这也是下一节所要详述的。

WebLogicPortal

其实BeaWebLogicPortal7.0就已是一个十分成熟的门户框架,Portal8.1更是一个出色的产品,它与workshop开发环境的无缝集成,使开发者的解决方案速度大大地加快,从某种意义上来说,只要会配置portal,可以不用写一行代码就可以实现一个门户应用。

那么就让我们来看看如何配置Weblogic。

首先来看看Portal的基本概念:

基础概念--配置篇

Desktop

      Portal桌面,每个portal可以具有多个桌面。

      一个桌面可以具有多个书册

Book

      书册,等同于传统软件界面的tab,是由desktop包容的。

书册是可以嵌套的,即一个书册中可以再嵌入另一个书册

一个书册可以包含多个页面。

Page

      页面,每个book可以包含多个页面。

一个页面可以包含多个portlet。

基础概念--开发篇

UserPorfilePropertySet

用户配置属性集,用来存储用户信息。

UserSegment

用户分段,用来分用户划分等级,应用程序可以根据等级进行不同的逻辑处理,例如可以实现网上购物的用户等级划分

ContentSelector

内容选择符

Campaign

活动,用来定义门户事件逻辑处理。

PlaceHolder

占位符,是web网页上的一个表示空间,可以存放文字、图片或shockware等信息。

目录结构

compaigns

framework

      markup

             layout:

布局,用来安排网页的表现形式

             lookandfeel:

外观

             menu:

菜单

             shell:

外壳

             theme:

主题

      skeletons骨架,此目录一般包括种jsp资源,包括header.jsp/footer.jsp等。

      skins,外观,即网页的表现形式

portlets存放portlets的目录

visitorTools用户访问工具,利用此工具可以定义portal的外观、布局。

导航菜单

      MultiLevelMenu多层菜单,即类似于windows菜单系统。

      SingleLevleMenu单层菜单

作用域

      desktop:

:

lookandfee:

:

shell:

:

book:

:

page:

:

portlet

开发步骤

1.        使用configurationwizard建立一个portaldomain。

2.        新建一个portalapplication。

3.        在应用中新建一个portalproject。

4.        在项目中新一个portal。

5.        在项目中新建一个portlet

6.        在portal中,插入新建的portlet

杂项

Portal8.1还具有如下特性:

实现了jsr168标准。

支持用户自定义桌面、外观。

你可以在如下路径中找到相关标准接口:

%weblogic81%portallibetuixsystemextsystemportlet.jar。

portlet包含器的位置是:

%weblogic81%portallibetuixwebportlet-container.jar

此外,对于WebLogicPortal,最重要的包莫过于:

%weblogic81%portallibetuixsystemetuix_system.jar

WebLogicPortal原理及应用

生命周期

WebLogicPortal使用了流行的单入口方法实现portal,在web.xml文件中,你会看到类似如下的两个servlet:

AppManagerServlet=uix.servlets.manager.PortalServlet

PortletServlet=uix.servlets.manager.PortletServlet

对于任何扩展名为portal的访问,都会由PortalServlet进行解释,这种熟悉的解决是否令你想起了struts或axis?

在beaportal中,对struts的支持已是相当完善的了,不过,还有更好的框架,那就是pageflow。

PortletServlet继承了UIServlet,而后者则继承了Servlet,这样一来,你就可以猜到它的生命周期了吧。

内部流程:

PortalServlet.service

      UIServlet.service

             Lifecycle.run

                    ControlTreeWalker.walk

                           JspRenderer.beginRender

                           JspRenderer.endRender

参数传递

调用portlet时,可能会传递一些参数进去,例如对于信息发布系统,在同一页面可能需要显示多个栏目的新闻,即在同一个page中可能调用同一个portlet的多个实例,此时,传递参数是实现这个方案的关键。

对于传统的jsp来说,是通过include中来传递参数。

而对于portlet来说,JSR168已指定的一个标准,此外,WeblogicPortal也提供了一个实现方案。

详细描述见下:

JSR168标准

      1、在portlet.xml部署文件中进行参数值指定,见下面例子。

   xsi:

schemaLocation="

   xmlns="

      

             

             info

             InfoView

             

                    text/html

                    edit

             

             

                    

             

             

                    

                           showChannelTitle

                           true

                    

             

      

2、获取、设置参数:

WebLogicPortal8.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