Portal技术原理

本文详细介绍了JSR168标准下Portal系统的组成部分及其工作流程,包括PortalServer、PortletContainer和Portlet的定义及功能。阐述了Portlet的生命周期管理、客户端交互过程以及Portal如何处理请求并生成响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSR168将Portal 的组成分为三部份 (1) Portal Server (2) Portlet Container (3) Portlet。
Portal Server的定义
建立在HTTP Server上。负责接收HTTP请求,调用Portlet,并将Portlet产生的内容聚集到Portal页面返回给用户。(Portal Server有时简称Portal)

Portlet Container 的定义
Portal Container:管理Portlet的生命周期并且提供其运行所需要的必要环境。同时也提供Portlet相关信息的存储。一个Portlet container 接收到来自Portal 的请求后,接着将这个请求传递给存在Container 的Portlet 执行。Portlet Container 没有义务去组合Portlets 产生的信息內容,这个工作必须由Portal (即Portal Server)来处理。Portal 和Portlet Container 可以放在一起视为同一个系统的组件,或者分开成为两个独立的组件。

Portlet的定义
一个 Portlet 是以 Java 技术为技术的 Web 组件,由 Portlet Container 所管理,专门处理客户的 request 以及产生各种动态的信息内容。Portlets 为可插式 ( pluggable ) 的客户界面组件,提供呈现层成为一个信息系统。
这些由 portlet 产生的内容也被称为片段 (fragment),而片段是具有一些规则的Markup( HTML、XHTML、WML ),而且可以和其他的片段组合而成一个复杂的文件。而 Portlet 中的内容正常来说是与其他 Portlet 的内容聚合而成为一个 Portal 网页。而 Portlet 的生命周期是被 Portlet Container 所管理控制的。

客户端和 portlets 的互动是由 portal 通过典型的 request/response 方式实现,正常来说,客户会和 portlets 所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果 portal 将会接收到 portlet 的动作,将这个处理状况转向到目标 portlet。这些 portlet 内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个 portlet 的设置。

Portlet生命周期
Portlet接口的四个方法构成一个完整的生命周期:
public void init(PortletConfig config) throws PortletException;
由Portlet容器调用,在将Portlet放入服务区前调用。Portlet容器在初始Portlet后,直接调用这个方法。
public void processAction (ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException;
由Portlet容器调用,用来处理action request。
public void render (RenderRequest request, RenderResponse response) throwsPortletException, java.io.IOException;
由Portlet容器调用,用来生成输出。
public void destroy() ;
将Portlet从服务区中删除。


一个Portal处理流程

1. 一个客户端(例如:一个web浏览器)在被验证之后向Portal发出HTTP请求;

2. Portal(或称为Portal Server)接收到请求;

3. Portal判断请求是否包含与组成门户网站网页的portlet有关的动作;

4. 如果存在与某个portlet相关的动作,Portal请求portlet容器调用portlet处理动作;

5. Portal通过portlet容器调用portlet,获得被包含在产生的门户网站网页中的内容片段;

6. Portal将portlet产生的结果聚集于门户网站的网页,然后将网页返回至客户端。

在下图中需要注意的是Portal服务器是建立在Http服务器的基础上的。Portal服务器不可独立的运行。
基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件库。 功能模块 用户模块 登录/注册功能,支持学生和教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列表管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件库 Axios 请求库 ByteMD 编辑器 ECharts 图表库 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值