LIFERAY5架构及开发培训.ppt
《LIFERAY5架构及开发培训.ppt》由会员分享,可在线阅读,更多相关《LIFERAY5架构及开发培训.ppt(49页珍藏版)》请在三一办公上搜索。
1、Contents,Liferay介绍,返回上级目录,返回目录,Liferay概述及特点,Liferay 是专门为符合Portlet API(JSR268)的门户单元设计开发的。而且有许多不错的门户单元附加在Lliferay 中,包括邮件、文档库、日历、公告板等,它们也可以作为开发学习时的例子使用。Liferay Portal代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。主
2、要特点:1、提供单一登陆接口,多认证模式(LDAP或SQL);2、管理员能通过用户界面轻松管理用户,组,角色;3、用户能可以根据需要定制个性化的portal layout;4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS;5、支持主流的数据库,如PostgreSQL,MySQL;6、使用了第三放的开源项目,如Spring,Hibernate,Lucene,Struts;7、支持包括中文在内的多种语言;8、采用最先进的技术 Java,EJB,JMS,SOAP,XML;,什么是Portal?,许斌,Portal 是基于Web 的,以“应用整合”和“消除信
3、息孤岛”为最终目的,提供单点登录、内容聚合、个性化门户定制等功能的综合信息系统。完整的Portal 通常由Portal 服务器、Portlet 容器、Portlet 构成。,返回目录,Portlet vs Servlet 开发,开发一个Java Portlet 类似于开发一个基于web应用的Servlet开发相似的地方:Portlet 也是 Java 技术的 web 组件Portlet 也是有特定的 container 在管理Portlet 可以动态产生各种内容Portlet 的生命周期由 container 所管理Portlet 和客户端的互动是通过 request/response 的机制
4、主要的区别在于:Portlet只能生成标记段,不是整个文档,Portal将会连接一些portlets的标记段并且创建一个整个页面返回给用户.接受请求的类必须继承javax.portlet.Portlet 而不是javax.servlet.http.HttpServlet.一个portlet请求可能涉及两个状态进程:1.对于大多数的请求来说,一个portlet将会执行一个状态转换操作,这与action 状态有关系,并且通过一个方法processAction来实现.并不是需要每一个Action 状态.包含一个action 状态的请求被注入到ActionURL,与此同时那些只含有render pha
5、se 的请求被注入到RenderURL.2.接下来所有与页面有关联的,将要被返回的其他的portlets的render状态可能会在任何将HTML标记段来描述他们自身的请求中来被调用.Portlet通过一个render方法实现这种功能.,返回目录,Portlet vs Servlet 开发,Portlet 有一些附加的功能是 Servlet 所没有的:Portlet 能够存取及储存永久配置文件及定制资料。Portlet 可以存取使用者数据Portlet 具有 URL 的重写功能在文件中去动态建立连结,允许 portal server 不用去知道如何在网页的片 段之中建立连结及动作。Portlet
6、 可以储存临时性的数据在 Portlet session 之中,拥有两个不同的范围:application-wide scope 及 Portlet private scope。Portlet 不具有一些功能,但是 Servlet 却有提供:Servlet 具有设置输出的文字编码(character set encoding)方式Servlet 可以设置 HTTP 输出的 headerServlet 才能够接收客户对于 portal 发出的 URL 请求,返回目录,Portlet 的生命周期,一个Portlet有着良好的生命周期管理,定义了怎样装载,实例化和初始化,怎样响应来自客户端的请求及怎
7、样送出服务。这个Portlet生命周期由Portlet接口的init,processAction,render和destroy方法来表达。载入和实例化:Portlet 容器负责载入和实例化Portlet。当Portlet 容器运行Portlet 应用或者延迟到Portlet 需要服务使用者的请求时,Portlet 就会被载入并实例化。载入Portlet 类后,Portlet 类随即被实例化。初始化:Portlet 类实例化后,Portlet 容器还需要初始化Portlet。以调用Portlet 去响应客户端的请求。Portlet 容器呼叫Portlet 接口中的init 方法初始化Portle
8、t。扩展自PortletConfig的类可以取出定义在部署描述文件中的初始化参数,以及Resource Bundle。初始化异常:在 Portlet 初始化期间,Portlet 可能会丟出 UnavailableException 或PortletException 异常。此时,Portlet 容器不能把 Portlet 置入已启动的服务,并且 Portlet容器必需释放这个 Portlet。destory 方法不能被呼叫,因为初始化被认为执行失败。发生 失败后,Portlet 容器会尝试着重新实例化及初始化 Portlet。这个异常处理的规则是:由一个UnavailableException
9、 指定一个不能执行的最小时间,当此异常发生时,Portlet 容器必需等到指定时间过去后才产生并且初始化一个新的 Portlet。在初始化过程中所丟出的 Runtime Exception 异常,被当作 PortletException 来处理。,返回目录,Liferay Portal 工作原理(1),Company Logo,Portal 系统根据需要由一个或者多个Portal 页面组成,每个Portal 页面包含零个或者多个的Portlet。每个Portlet 呈现自己的信息内容,以此实现内容聚合。通过定义每个Portlet 的可用权限,实现个性化的桌面信息定制。,每个Portlet 对外
10、表现为一个小窗口,有自己的默认样式和窗口状态。JSR168 规范定义了三个Portlet 模式:浏览、编辑和帮助。如右图,Portlet 有自己的标题,浏览状态下支持编辑、关闭、上移、下移、最大化、最小化功能,编辑状态下支持返回和关闭功能。从各种数据来源提取的信息以Portlet 内容的形式呈现在Portal 中。同时Portal 是可以根据使用者的角色,来决定是要提供(显示)哪几个Portlet 模式给使用者操作。,返回目录,Liferay Portal 工作原理(2),Company Logo,Portal 页面创建过程如下:Portlet 在 Portlet 容器内执行Portlet容器
11、将这些内容提交给 Portlet 服务器,Portlet 服务器依照这些内容建立Portal页面,然后将它传给客户端呈现。具体流程如右上图:,Portal 页面的请求过程如下:使用者经由客户端设备(例如浏览器)存取 Portal,Portal 根据接收到的请求决定哪些 Portlet 需要被执行以满足需求。Portal 通过Portlet容器呼叫 Portlet,然后由Portlet产生的片段建立Portal页面,再传回客户端呈现给使用者。具体流程如右下图:,Portlet 开发完毕后,部署到Portal 服务器,由Portal 服务器负责组织、权限控制现。,返回目录,Java Portlet
12、 规范(JSR-268)和WSRP,JSR-268:由于Liferay 支持Portlet 规范(JSR-268).任何基于此规范的Portlet均可正常运行.Java 平台提供了一种基于JSR-168的标准,标准化portlets如何与其他portlet 容器集成并在不同的portal 产品之间来保证兼容性.Liferay Portal 提供了一种100%便利的portlet 容器来保证任何基于标准规范的portlet将会在Liferay中运行在JSR-268规范中,一个portlet应用可以聚集其他的不同的portlets并且打包成一个WAR文件,就像一个标准的Java web应用一样.在
13、WAR文件中,以portlet.xml 来定义portlets 的应用,portlet.xml 文件放在WAR 文件中的WEB-INF目录中.Java Portlet 规范包括portlet 容器.,WSRP:WSRP 是OASIS Web Service for Remote Portlet 的缩写。WSRP 是Web Service 的一种新的商业应用,一种新的标准,主要用来简化Portal 对于各种资源或者程序整合的复杂度,可以避免编程带来的整合麻烦和问题。而且Portal 管理员可以从海量的WSRP 服务中选择需要的功能用以整合到目前所用的Portal 中。它有三种角色:生产者 提供P
14、ortlet消费者 使用Portlet终端用户 最终用户 它的特点在于生产者将消费者所需要的信息通过WSRP 返回给消费者,这些信息是相对标记片断,例如HTML、XHTML 等,可以直接嵌入用户的页面中,而不用像Web Service一样开发用户端接口。实现这个规范,Portal 可以跟各式各样的数据源打交道,彻底终结信息孤岛的窘境。,返回目录,Liferay Portlet5.2.2开发推荐使用工具,JDK 1.5,或者 1.5-java开发工具包Jre1.5,或者1.6-java程序运行环境Jikes 1.22-Jikes是一个IBM创建的Java编译器,比Sun JDK的编译器要快.An
15、t 1.7-一个基于 Java 的生成工具。Subversion-一个简单的版本控制工具,推荐你将所有的代码和配置文件放在一个版本控制工具中,Subversion是一个免费的开源的版本控制工具。Eclipse3.3+MyEclipse6.0-一个支持J2EE,Java,Web,portlet等开发的IDEMySQL5.0-一个主流的开源数据库Tomcat-5.5-Web服务器具体环境变量里面需要的配置有:JAVA_HOME D:Program FilesJavajdk1.5.0_16CLASSPATH.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;
16、%JAVA_HOME%jrelibJIKES_HOME,ANT_HOMEPath:%JAVA_HOME%bin;%JIKES_HOME%bin;%ANT _HOME%bin;,返回目录,Liferay Portlet5.2.2开发简单说明,无论是portal和ext工程,目录都很繁杂,其实我们只要关注3个目录就够了。这就是ext工程对应目录:ext-implsrcext-servicesrcportal-web而portal工程项目里面的3个目录:portal-implsrc和portal-servicesrc是portal工程已经实现的所有portlet的java代码和部分资源文件;port
17、al-web目录是放置网页文件和portal的配置文件。ext工程对应目录ext-implsrc,ext-servicesrc和portal-web跟portal是很类似的。ext-implsrc,ext-servicesrc是放置我们自己开发的portlet的java代码。ext-web是自己开发portlet对应的网页文件和配置文件。,返回目录,Portlets开发介绍流程,Configuration Portlet的开发流程采用的也是Struts Portlet的开发流程,Configuration,简单,复杂,JSP Portlet开发,JSP Portlet开发流程,JSP Port
18、let是开发中使用频率最高的开发方式,主要原因有两个:(1)当配置好Portlet之后,只需要修改JSP文件。而JSP文件支持hot deploy,这就会在开发过程中节省好多等待ant deploy和liferay tomcat startup的时间。(2)开发流程也相对简单。推荐的JSP Portlet推荐开发流程如右图,当然也不用完全按照如下流程来做,只要完成相关配置的修改即可。,在Liferay中创建一个JSP Portlet:,开发流程:1.定义portlet portlet-ext.xml 定义Portlet liferay-portlet-ext.xml 配置Portlet实例属性
19、2.国际化配置文件 Language-ext.properties3.归类Portlet Liferay-display.xml 分类组织Portlet4.创建JSP view.jsp 定义我们需要的页面,开发目录结构:配置文件放在这个目录下:extext-webdocrootWEB-INFJSPs将会放在这个目录下:extext-webdocroothtmlportletext,Liferay如何决定哪个JSP应该被首先显示?对于JSP Portlet,JSP直接指向了从portlet-ext.xml中定义的页面.,定义portlet,My_JSP_PortletJSP Portletcom
20、.liferay.util.bridges.jsp.JSPPortletview-jsp/html/portlet/ext/myjspportlet/view.jsp0text/htmlcom.liferay.portlet.StrutsResourceBundlepower-useruser,配置文件是:extext-webdocrootWEB-INFportlet-ext.xml,注意:1、Portlets是通过,来唯一定义的。因此,你要确保的唯一性。2、要创建JSPPortlet,属性应该设置为com.liferay.util.bridges.jsp.JSPPortlet。3、中的值“v
21、iew-jsp”不能修改。4.、中的值-指定哪个JSP应该被首先显示,配置Portlet实例属性,分类组织,国际化,My_JSP_Portlettrue/css/test.css/js/test.js,定义Portlet实例属性:配置文件是:extext-webdocrootWEB-INF liferay-portlet-ext.xml,分类组织Portlets:配置文件是:extext-webdocrootWEB-INF liferay-display.xml,注意:这里的元素的值 My_JSP_Portlet必须要和portlet-ext.xml中的元素的值一致的。,其中的key值(即ja
22、vax.portlet.title.My_JSP_Portlet),是“javax.portlet.title”+“portlet名字”(即在portlet-ext.xml中添加的portlet的的值),定义Portlet名称:配置文件是:extext-implsrccontentLanguage-ext.properties,javax.portlet.title.My_JSP_Portlet=My JSP Portlet,JSP开发-创建JSP页面,创建JSP:在 extext-web docroothtmlportletext目录下创建文件目录myjspportlet在新建的myjspp
23、ortlet目录下,添加一个文件叫init.jsp,在文件中加入下面内容:,现在,再在新建的myjspportlet目录下添加一个文件view.jsp 在view.jsp中写下:,问题出来了,portal如何得知怎样加载这些特殊的文件?如果你返回观察添加到portlet-ext.xml中的portlet元素,你将会观察到你初始化了一个view-jsp参数,它的值是/ext/myjspportlet/view.jsp。通过指定这个init-param,你将使得portlet加载一个默认的JSP。,Hello,its my first jsp portlet!,发布、运行和测试,发布:执行ext项
24、目根目录下的build.xml文件ant deploy,部署这些你做的对你的应用的改变,然后重启tomcat服务器。,运行和测试:访问地址:http:/localhost:8080。利用用户名:;密码:test登录进入系统。在选择应用的窗口中选择我们刚刚添加的PortletMy JSP Portlet,如果在页面上会增加一个Portlet(如下图),显示出你刚刚添加的内容,那么部署就成功了。,添加应用,选中添加,Struts Portlet开发,Struts Portlet开发流程,StrutsPortlet推荐的开发流程如下,当然也不用完全按照如下流程来做,只要完成相关配置的修改即可。,为什
25、么用Struts?Struts实现了MVC.虽然有其他框架实现MVC,Struts是最广泛应用和最成熟的技术.什么是MVC?MVC将显示代码从业务逻辑中分离出来.Struts在struts-config.xml中提供了集中的页面流管理.这使得它高度可升级并且使得你模块化代码流程.通过使用struts,你可以使用一些最佳实践,已经集成在框架中.为什么用tiles?一个页面布局是一个使用包含典型声明的设计.如果有100个JSPs并且头和尾都需要改变,所有的100JSPs都需要改变.用tiles,一个简单的模板可以被用于定义页面布局.只要模板改变,所有页面将会依次改变。,在Liferay中创建一个S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LIFERAY5 架构 开发 培训
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2774517.html