Liferay Portal评估报告

Liferay Portal评估报告

Portal

    这里所说的Portal是指JCP-JSR168规范所描述的:Portal是一个基于Web的应用,通常它提供个性化、单点登录、内容集成和显示等功能。Portal技术包括三个方面:

1)  Portal服务器(Portal Server)

2)  Portlet容器;(Portlet Container)

3)  Portlet

1) Portal Server 的定义是

一个 Portal(门户网站)就是指一个 Web-based 的系统,通常都会提供个人化设置、单一登陆、以及由各种不同来源或不同网站取得各式各样的信息,并且将这些信息放在网页之中组合而成的呈现平台,门户网站会有精巧的个人化设置去提供定制的网页,当不同等级的使用者来浏览该页面将获得不同的信息内容。

负责接收HTTP请求,调用portlet,并将portlet产生的内容聚集到portal page返回给客户。

 

2) Portlet Container 的定义是

portlet container 是提供 portlets 执行的环境,包含了许多 portlets 并且管理他们的生命周期,他也会永远保存着 portlets 的喜好设置,一个 portlet container 接收到来自 portal 的请求后,接着将这个请求传递给存在 container portlet 执行。portlet container 没有义务去组合 portlets 产生的信息內容,这个工作必须由 portal 来处理。portal portlet container 可以放在一起视为同一个系统的组件,或者分开成为两个独立的组件。

负责提供portlet的运行时环境,管理portlet的生命周期,还负责提供portlet持久化能力。

 

3) Portlet 的定义是

一个 Portlet 是以 Java 技术为技术的 Web 组件,由 Portlet Container 所管理,专门处理客户的 request 以及产生各种动态的信息内容。Portlets 为可插式 ( pluggable ) 的客户界面组件,提供呈现层成为一个信息系统。这些由 portlet 产生的内容也被称为片段 (fragment),而片段是具有一些规则的Markup( HTMLXHTMLWML ),而且可以和其他的片段组合而成一个复杂的文件。而 Portlet 中的内容正常来说是与其他 Portlet 的内容聚合而成为一个 Portal 网页。而 Portlet 的生命周期是被 Portlet Container 所管理控制的。客户端和 portlets 的互动是由 portal 通过典型的 request/response 方式实现,正常来说,客户会和 portlets 所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果 portal 将会接收到 portlet 的动作,将这个处理状况转向到目标 portlet。这些 portlet 内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个 portlet 的设置。

 

 

Portal主要是解决企业信息和应用的前端集成问题,它负责连结企业后台EAI,集成企业的结构和非结构化信息,并提供统一的访问企业信息和应用的入口。

 

下面这张图展示了portal页面的产生过程(从中也可以了解portal服务器、portal容器和portlet之间的关系)

(摘自JSR168规范文档)

 

portlet servlet 的关系

Portlet Servlet 算是兄弟有那么一点点相似却又有那么一点点不同,因为 Servlet Portlet 不尽然相同,所以研究小組決定将 portlets 定义成为一个新的组件,因此定义了 portlets 一个新的并且明确的界面与行为。为了尽可能与现有的 servlet 结合达到重复使用的目的,portlet 的规范利用了 servlet 的规范,许多观念都很相似的,结合 portletsservlets jsp 在同一个网站系统中,我们称为 portlet application 。在同一个 portlet application 中,他们将分享同一个 classloadercontext session

1) Portlet Servlet 的相似之处

@ portlets 也是 Java 技术的 web 组件
@ portlets
也是有特定的 container 在管理
@ portlets
可以动态产生各种内容
@ portlets
的生命周期由 container 所管理
@ portlets
和客户端的互动是通过 request/response 的机制

2) Portlet Servlet 也有一些不同

@ portlets 只产生 markup 信息片段,不是完整的网页文件。而 Portal 会将所有的 Portlet markup 信息片 段放到一个完整的 Portal 网页。
@ portlets
不会和 URL 有直接的关系
@
客户端必须通过 portal 系统才能和 portlets 互动
@ portlets
有一些定义好的 request 处理,action request 以及 render request
@ portlets
默认定义 portlet modes 及窗口状态可以指出在网页中该 portlet 的哪个功能正在执行及现在的 状态。
@ portlets
可以在同一个 portal 网页之中存在多个。

3) Portlet 有一些附加的功能是 Servlet 所没有的

@ Portlets 能够存取及储存永久配置文件及定制资料。
@ portlets
可以存取使用者数据
@ portlets
具有 URL 的重写功能在文件中去动态建立连结,允许 portal server 不用去知道如何在网页的片 段之中建立连结及动作。
@ portlets
可以储存临时性的数据在 portlet session 之中,拥有两个不同的范围:
application-wide scope
portlet private scope

4) Portlet 不具有一些功能, 但是 Servlet 却有提供

@ servlet 具有设置輸出的文字编码( character set encoding)方式
@ servlet
可以设置 HTTP 输出的 header
@ servlet
才能夠接收客户对于 portal 发出的 URL 请求

基于Portal开发项目的优势

1、    可以与以后新开发的或已集成到Portal中的企业应用实现无缝集成。

2、    可以分享Portal服务器和Portlet容器提供的种种功能。这要视Portal服务器提供商而定。

3、    由于Portlet已规范化(JSR168),所以应用中开发的Portlet可以部署在不同的Portal服务器上。

 

Liferay Portal

开放源码的J2EE Portal产品Liferay Portalhttp://www.liferay.com)发布了3.0版本。从这个版本起,Liferay分为两个独立产品:Liferay企业版和Liferay专业版。其中专业版完全采用基于Spring框架(http://www.springframework.org)的轻量级架构,采用基于AOP的基础设施实现,因此可以完全脱离高端J2EE应用服务器,以web应用的形式运行在纯servlet容器(例如Tomcat)中。从技术的角度,这足以证明:基于IoC容器和AOP的轻量级架构完全可以取代EJB提供企业级强度的产品。

 

Liferay (http://www.liferay.com) 代表了完整的J2EE应用,使用了WebEJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XMLportlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。



要特点:

    1、提供单一登陆接口,多认证模式(LDAPSQL;

    2、管理员能通过用户界面轻松管理用户,组,角色;

    3、用户能可以根据需要定制个性化的portal layout;

    4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JonASTomcat

    5、支持主流的数据库,如PostgreSQL,MySQL

    6、使用了第三放的开源项目,如Hibernate, Lucene, Struts,spring

    7、支持包括中文在内的多种语言;

    8、采用最先进的技术 Java, EJB, JMS, SOAP, XML

主要缺点:

1、  开发,定制环境配置步骤比较繁琐

2、  文档在官方网站是要收费的,免费文档比较少,相对于流行的框架(如strutsspring),讨论区明显少很多,

3、  开源产品的稳定性不敢保证,我刚从官方站点上下载的安装包,启动服务后就会有数据库操作异常,原因可能只有研读代码后才可知道。

 

 

简单的定制过程

1. Liferay的安装和运行

 

    从它的网站www.liferay.com可下载几种类型的应用包,安装最简单的是和jbosstomcat集成的应用包:liferay-ep- 3.1.0 -jboss-tomcat.zip。下载后解压到本机的某个目录,假设为c:/ liferay,然后运行c:/liferay/bin/run.bat启动Liferay

    启动后,观察控制台的输出信息,当出现以下信息时,表示启动完毕。

    关闭服务的命令:shutdown.bat –shutdown

    Liferay启动完毕后,在浏览器中敲入:http://localhost ,登录系统的默认email: test@liferay.com ,密码:test.

 

    Liferay支持多种语言,在个性设置中选择语言为中文,即变为中文界面。

 

2. Liferay上用Portlet实现一个输出“Hello , Portal ! ”的功能。

 

1)     编写portlet类:

package my.portlet;

import java.io.IOException;

import javax.portlet.ActionRequest;

import javax.portlet.ActionResponse;

import javax.portlet.GenericPortlet;

import javax.portlet.PortletException;

import javax.portlet.RenderRequest;

import javax.portlet.RenderResponse;

public class HelloPortalPortlet extends GenericPortlet {

    public void doView(RenderRequest req, RenderResponse res)

        throws IOException, PortletException {

        res.setContentType("text/html");

        res.getWriter().print("Hello Portal ! ");

    }

    public void processAction(ActionRequest req, ActionResponse res)

        throws IOException, PortletException {

    }

}

 

2)     编译portlet

    编译上面这个portlet类时要加入标准的portlet.jar包,它JSR168规范中规定的接口和类,可从jcp网站上下载,搜索安装目录也可找到。编译后将class文件拷贝到:

    <安装目录>/server/default/deploy/ext.ear/portal-web-complete.war/WEB-INF/classes

 

3)     配置portlet,下面提到的配置文件都在web-inf目录下,即:

<安装目录>/server/default/deploy/ext.ear/portal-web-complete.war/WEB-INF

 

a)portlet.xml中加入:

    <portlet>

        <portlet-name>168</portlet-name>

        <display-name>Hello Portal</display-name>

        <portlet-class>my.portlet.HelloPortalPortlet</portlet-class>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <portlet-info>

            <title>Hello Portal</title>

            <short-title>Hello Portal</short-title>

            <keywords>Hello Portal</keywords>

        </portlet-info>

        <security-role-ref>

            <role-name>Power User</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>User</role-name>

        </security-role-ref>

    </portlet>

 

b)liferay-portlet.xml中加入:

    <portlet id="168" struts-path="hello_portal" narrow="true" />

 

c)liferay-display.xml中加入:

 

    <category name="category.test">

        <portlet id="50" />

        <portlet id="47" />

        <portlet id="48" />

        <portlet id="168" />

        <portlet id="EXT_1" />

    </category>

 

3.重新启动Liferay,登录系统后,在内容栏中加入Hello Portal即可看到上面portlet的输出内容:

   

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本项目是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。该系统主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者,包含项目源码、数据库脚本、项目说明等,有论文参考,可以直接作为毕设使用。 后台框架采用SpringBoot,数据库使用MySQL,开发环境为JDK、IDEA、Tomcat。项目经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。 该系统的功能主要包括商品管理、订单管理、用户管理等模块。在商品管理模块中,可以添加、修改、删除商品信息;在订单管理模块中,可以查看订单详情、处理订单状态;在用户管理模块中,可以注册、登录、修改个人信息等。此外,系统还提供了数据统计功能,可以对销售数据进行统计和分析。 技术实现方面,前端采用Vue框架进行开发,后端使用SpringBoot框架搭建服务端应用。数据库采用MySQL进行数据存储和管理。整个系统通过前后端分离的方式实现,提高了系统的可维护性和可扩展性。同时,系统还采用了一些流行的技术和工具,如MyBatis、JPA等进行数据访问和操作,以及Maven进行项目管理和构建。 总之,本系统是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。系统经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值