专 辑 序 : 集 成 是 数 字 图 书 馆 集 成 系 统 的 核 心 基 于 集 成 化 的 思 想, 在 开 发 中 坚 持 采 用 开 源 模 式 的 技 术 路 线, 选 用 开 放 平 台 开 放 标 准 和 开 源 软 件 将 开 源 软 件 与 数 字 图 书 馆 系 统 结 合, 成 功 研 制 出 一 套 现 代 数 字 图 书 馆 集 成 系 统 平 台 该 平 台 不 仅 方 便 快 速 运 用 最 新 技 术 构 建 自 主 创 新 的 数 字 图 书 馆 集 成 系 统, 而 且 以 此 开 发 的 系 统 具 有 很 高 的 性 价 比 安 全 性 和 维 护 性 在 整 合 应 用 的 集 成 中 采 用 Web2.0 理 念 和 开 源 模 式, 选 用 具 有 发 展 前 景 的 J2EE 应 用 规 范, 采 用 Eclipse 等 开 发 应 用 平 台, 选 用 Lucene Nutch Arc Ajax 等 开 源 软 件, 采 用 开 放 数 据 内 容 开 放 应 用 编 程 接 口 (API) 和 XML 数 据 格 式 等 技 术, 实 现 各 个 子 系 统 及 其 之 间 在 数 据 流 程 应 用 和 服 务 的 集 成 本 期 专 辑 收 录 了 4 篇 论 文, 重 点 探 讨 了 基 于 Struts+Ajax 的 学 位 论 文 管 理 与 服 务 系 统 的 设 计 和 实 现 ; 基 于 OAI 的 收 割 和 服 务 系 统 的 研 究 与 设 计 ; 统 一 检 索 与 服 务 扩 展 系 统 的 轻 量 级 架 构 设 计 与 实 现 ; 数 字 图 书 馆 门 户 集 成 技 术 及 其 实 现 本 期 特 邀 专 栏 主 编 : 马 自 卫 教 授 ( 北 京 邮 电 大 学 图 书 馆 ) 基 于 Struts+Ajax 的 学 位 论 文 管 理 与 服 务 系 统 的 设 计 和 实 现 崔 盟 马 自 卫 ( 北 京 邮 电 大 学 通 信 网 络 综 合 技 术 研 究 所 北 京 100876) ( 北 京 邮 电 大 学 图 书 馆 北 京 100876) 摘 要 基 于 Struts+Ajax 的 学 位 论 文 管 理 与 服 务 系 统 是 集 论 文 提 交 管 理 OAI 服 务 为 一 体 的 系 统, 能 满 足 大 多 数 高 校 对 学 位 论 文 的 处 理 要 求 系 统 在 技 术 实 现 上 采 用 Struts 开 发 模 式, 同 时 结 合 目 前 广 泛 应 用 的 Ajax 开 发 框 架 Prototype 结 合 Struts 和 Prototype 来 阐 述 基 于 Struts+Ajax 的 学 位 论 文 管 理 与 服 务 系 统 的 实 现 关 键 词 Web2.0 Struts Ajax OAI Prototype 分 类 号 G250 ImplementofPaperManagementandServiceSystem BasedonStruts+Ajax CuiMeng (SchoolofTelecommunicationandNetworkTechnology,BeijingUniversityof PostsandTelecommunications,Beijing100876,China) MaZiwei (BeijingUniversityofPostsandTelecommunicationsLibrary,Beijing100876,China) Abstract PapermanagementandservicesystembasedonStruts+Ajaxisthesystemwhichhasintegratedpa persubmision,papermanagementandoaiservice.itmeetsmostneedsofpapermanagementinuniversities.atthe aspectoftechnologiesusedinthesystem,strutsandprototypearemainlyused.thepaperexpoundstheimplementofthe systembycombiningtheapplicationofprototypeandstruts. Keywords Web2.0 Struts Ajax OAI Prototype Ajax 作 为 Web2.0 的 一 项 重 要 技 术 基 础, 是 多 种 成 熟 技 术 的 整 合 并 以 一 种 崭 新 的 角 色 投 入 应 用,Ajax 即 异 收 稿 日 期 :2007-09-17 收 修 改 稿 日 期 :2007-09-30 步 Javascript 和 XML [1], 是 指 浏 览 器 中 的 JavaScript 脚 本 通 过 XMLHtpRequest 与 服 务 器 进 行 通 信, 页 面 内 的 JavaScript 可 以 在 不 刷 新 页 面 的 情 况 下 从 服 务 器 获 取 数 据, 或 者 向 服 务 器 提 交 数 据 7
然 而,JavaScript 编 程 的 最 大 问 题 是 来 自 不 同 的 浏 览 器 对 各 种 技 术 和 标 准 的 支 持 构 建 一 个 运 行 在 不 同 浏 览 器 ( 如 IE 和 火 狐 ) 中 的 应 用 是 一 个 困 难 的 任 务, 因 此 提 供 符 合 跨 浏 览 器 Ajax 开 发 的 客 户 端 JavaScript 库 应 运 而 生 Prototype 就 是 目 前 应 用 最 为 广 泛 的 开 源 的 Ajax 开 发 框 架, 它 的 特 点 是 功 能 实 用 而 且 尺 寸 较 小, 非 常 适 合 在 Web 应 用 中 使 用 开 发 Ajax 应 用 需 要 编 写 大 量 的 客 户 端 JavaScript 脚 本, 而 Prototype 框 架 可 以 大 大 地 简 化 JavaS cript 代 码 的 编 写 工 作 并 且 Prototype 具 备 兼 容 各 个 浏 览 器 的 优 秀 特 性, 使 用 它 可 以 不 必 考 虑 浏 览 器 兼 容 性 的 问 题 Struts 作 为 一 个 为 开 发 基 于 模 型 (Model) 视 图 (View) 控 制 器 (Controler)(MVC) 模 式 的 应 用 架 构 的 开 源 框 架, 在 Web 开 发 中 展 现 了 它 的 优 势, 将 Struts 应 用 于 J2EE 项 目 开 发 是 一 个 不 错 的 选 择 它 很 好 地 结 合 了 JSP JavaServlet JavaBean Taglib 等 技 术, 使 表 现 与 逻 辑 分 离, 便 于 维 护 扩 展 和 团 队 开 发 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 的 实 现 融 合 了 以 上 两 种 技 术, 它 整 体 采 用 Struts 的 开 发 模 式, 前 端 利 用 Prototype 的 Ajax 功 能 实 现 与 服 务 器 的 通 信 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 的 实 现 也 是 Web2.0 技 术 在 数 字 图 书 馆 开 发 中 的 一 个 应 用 1 基 于 OAI 的 学 位 论 文 管 理 和 服 务 系 统 结 构 系 统 主 要 分 为 登 录 论 文 提 交 论 文 查 询 及 导 航 论 文 加 工 以 及 系 统 配 置 模 块, 其 中 登 录 模 块 包 括 学 生 登 录 和 管 理 员 登 录 子 模 块 ; 论 文 加 工 模 块 又 包 括 论 文 审 核 加 工 标 引 论 文 发 布 建 立 仓 储 子 模 块 ; 系 统 配 置 模 块 包 括 配 置 表 单 以 及 院 系 管 理 模 块 登 录 模 块 包 含 学 生 登 录 和 管 理 员 登 录 模 块, 学 生 登 录 成 功 可 以 通 过 论 文 提 交 功 能 提 交 论 文, 同 时 可 以 通 过 论 文 检 索 功 能 检 索 发 布 成 功 的 论 文 管 理 员 登 录 成 功, 可 以 对 学 生 提 交 的 论 文 进 行 审 核, 然 后 加 工 标 引, 发 布 论 文, 同 时 将 论 文 的 元 数 据 转 化 为 OAI 元 数 据, 对 外 提 供 OAI 服 务 另 外, 管 理 员 可 以 对 学 生 提 交 的 论 文 表 单 进 行 配 置 ( 如 第 二 导 师 等 ) 以 及 对 院 系 增 加 删 除 和 修 改 管 理 2 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 的 集 成 性 基 于 OAI 的 学 位 论 文 与 服 务 系 统 可 以 对 学 生 提 交 的 论 文 进 行 加 工, 然 后 对 外 提 供 检 索 导 航 以 及 OAI 等 服 务, 其 流 程 如 图 2 所 示 : 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 是 集 论 文 提 交 审 核 加 工 标 引 发 布 检 索 以 及 学 位 论 文 OAI 服 务 为 一 体 的 系 统 该 系 统 既 方 便 毕 业 生 提 交 论 文, 又 很 好 地 管 理 了 论 文 资 源, 并 且 对 外 提 供 方 便 快 捷 的 网 上 检 索 以 及 OAI 服 务 系 统 的 结 构 如 图 1 所 示 : 图 1 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 结 构 图 8 图 2 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 的 加 工 服 务 功 能 流 程 对 于 学 生 提 交 的 论 文, 经 管 理 员 审 核 后, 将 通 过 审 核 的 论 文 进 行 加 工 标 引, 然 后 建 立 仓 储 提 供 OAI 服 务, 同 时 将 论 文 发 布 到 网 上 对 外 提 供 检 索 以 及 下 载 服 务 此 外, 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 又 作 为 北 京 邮 电 大 学 数 字 图 书 馆 系 统 的 一 个 子 系 统, 可 与 其 他 子 系 统 相 集 成, 共 同 完 成 论 文 的 提 交 审 核 加 工 标 引 发 布 以 及 提 供 在 门 户 上 检 索 的 功 能 图 3 给 出 了 本 系 统 与 北 京 邮 电 大 学 数 字 图 书 馆 其 他 子 系 统 相 关 集 成 的 示 意 图 [3] 由 图 3 可 以 看 出, 子 系 统 资 源 如 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 收 集 的 学 位 论 文 以 及 网 络 资 源 采 集 与 服 务 系 统 收 集 的 网 页 等, 都 可 以 通 过 北 京 邮 电 大 学 记 忆 数 据 库 加 工 与 服 务 系 统 进 行 加 工 标 引 发 布 到 门 户 系 统, 供 用 户 检 索 同 时, 经 过 北 京 邮 电 大 学 记 忆 数 据 库 加 工 与 服 务 系 统 加 工 过 的 资 源, 可 以 通 过 OAI 数 据 提 供 方 转 化 为 OAI 资 源, 对 外 提 供 OAI 服 务 各 子 系 统 间 又 通 过 统 一 认 证 系 统 实 现 单 点 登 录, 一 站 式 服 务
图 3 本 系 统 与 北 京 邮 电 大 学 数 字 图 书 馆 其 他 子 系 统 相 关 集 成 的 示 意 图 因 此, 对 于 学 生 提 交 的 论 文, 一 方 面 可 以 通 过 北 京 邮 电 大 学 记 忆 数 据 库 加 工 与 服 务 系 统 进 行 加 工 标 引 发 布, 然 后 经 数 据 提 供 方 系 统 处 理 作 为 提 供 方 的 资 源 供 服 务 方 收 割, 即 图 3 中 的 1 2 步 另 一 方 面, 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 又 集 成 了 北 京 邮 电 大 学 记 忆 数 据 库 加 工 与 服 务 系 统 对 学 位 论 文 的 加 工 发 布 的 功 能 以 及 数 据 提 供 方 系 统 的 功 能, 将 学 位 论 文 进 行 加 工 后, 建 立 仓 储 提 供 OAI 服 务 因 此, 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 既 能 独 立 完 成 学 生 论 文 提 交 审 核 加 工 标 引 发 布 建 立 仓 储 的 功 能, 又 能 与 北 京 邮 电 大 学 记 忆 数 据 库 加 工 与 服 务 系 统 以 及 OAI 数 据 提 供 方 系 统 集 成, 共 同 完 成 对 论 文 资 源 的 加 工 和 提 供 论 文 资 源 OAI 服 务 的 功 能 3 基 于 OAI 学 位 论 文 管 理 与 服 务 系 统 的 相 关 技 术 在 技 术 实 现 上, 基 于 OAI 的 学 位 论 文 服 务 系 统 采 用 Struts 的 开 发 模 式, 结 构 清 晰, 易 于 维 护, 同 时 结 合 了 Web2.0 的 技 术, 提 高 了 系 统 的 可 用 性 3.1 基 于 Struts 和 Prototype 的 开 发 模 式 系 统 整 体 采 用 Struts 的 开 发 模 式,Struts 是 一 个 基 于 SunJ2EE 平 台 的 开 源 MVC 框 架, 由 于 它 具 有 简 单 易 用 敏 捷 迅 速 的 特 点, 能 充 分 满 足 应 用 开 发 的 需 求, 因 此 成 为 系 统 开 发 中 一 个 不 错 的 选 择 并 且 与 Ajax 技 术 结 合, 有 利 于 增 强 系 统 稳 定 与 灵 活 易 用 性, 系 统 整 体 开 发 结 构 如 图 4 所 示 : 图 4 系 统 整 体 开 发 结 构 图 由 图 4 所 示, 系 统 后 端 采 用 Struts 结 构, 由 Controler Servlet 控 制 流 程 转 向, 前 端 结 合 了 Ajax 技 术, 除 了 传 统 地 提 交 请 求 外, 还 可 以 通 过 Ajax 技 术 异 步 提 交 XMLHtpRe quest 一 方 面, 客 户 端 通 过 传 统 的 请 求 方 式 向 Controler ActionServlet 发 送 HtpRequest,Contoler 将 请 求 转 向 相 应 的 业 务 逻 辑 类 进 行 处 理, 将 结 果 返 回 给 用 户, 如 线 路 1 所 示 ; 另 一 方 面, 客 户 端 向 Struts 的 ControlerActionServlet 发 送 XMLHtpRequest,ActionServlet 根 据 Struts-config. xml 文 件 转 向 相 应 的 业 务 逻 辑 类 进 行 处 理, 返 回 请 求 的 结 果 给 客 户 端, 如 线 路 2 所 示 ; 此 外, 创 建 的 Ajax 对 象 可 以 直 接 向 JSP 页 面 发 出 请 求 返 回 结 果, 如 线 路 3 所 示 (1)Struts 在 论 文 审 核 模 块 查 询 功 能 中 的 运 用 对 于 学 生 提 交 的 论 文, 管 理 员 可 以 根 据 不 同 的 关 键 字 检 索 符 合 条 件 的 论 文, 然 后 对 论 文 进 行 审 核, 下 面 以 检 索 功 能 的 实 现 为 例, 阐 述 Struts 在 系 统 中 的 应 用 Struts 在 其 他 模 块, 如 登 录 模 块 审 核 模 块 等 中 的 应 用 与 该 模 块 类 似 图 5 基 于 Struts 的 论 文 审 核 模 块 结 构 图 审 核 界 面 audit.jsp 向 StrutsControlerActionServlet 发 送 HtpRequest,Controler 根 据 Struts-config.xml 中 path 为 / Search.do 的 ActionMapping 转 到 相 应 的 SearchAction.java 类 去 处 理, 返 回 符 合 条 件 的 论 文 显 示 给 用 户 该 应 用 为 传 统 的 发 送 请 求 方 式, 即 发 送 HtpRequest 到 服 务 器 端, 如 图 4 中 的 线 路 1 (2)Prototype 实 现 页 面 的 局 部 更 新 Prototype 作 为 一 个 流 行 的 AjaxJavaScript 开 源 框 架, 可 以 帮 助 开 发 者 轻 松 建 立 高 度 互 动 的 Web2.0 特 性 的 胖 客 户 端 页 面 它 是 由 SamStephenson 写 的 一 个 JavaScript 类 库 这 个 类 库 带 有 很 多 预 定 义 的 对 象 和 实 用 函 数, 把 编 程 者 从 一 些 重 复 工 作 中 解 放 出 来 Prototype 对 JavaScript 的 内 置 对 象 ( 如 String 对 象 Aray 对 象 等 ) 进 行 了 很 多 有 用 的 扩 展, 同 时 它 也 新 增 了 不 少 自 定 义 的 对 象, 包 括 对 Ajax 开 发 的 支 持 等 都 是 在 自 定 义 对 象 中 实 现 的 Prototype 可 以 帮 助 开 发 人 员 实 现 以 下 目 标 [2] : 1 对 字 符 串 进 行 各 种 处 理 ; 2 使 用 枚 举 的 方 式 访 问 集 合 对 象 ; 3 以 更 简 单 的 方 式 进 行 常 见 的 DOM 操 作 ; 4 使 用 CSS 选 择 符 定 位 页 面 元 素 5 发 送 Ajax 方 式 的 HTTP 请 求 并 对 响 应 进 行 处 理 ; 6 监 听 DOM 事 件 并 对 事 件 进 行 处 理 在 Prototype 中, 主 要 有 两 个 方 法 来 实 行 异 步 数 据 传 输, 9
分 别 是 Ajax.Updater 和 Ajax.Request Ajax.Updater 实 现 页 面 的 局 部 更 新, 如 果 服 务 器 的 另 一 端 返 回 的 信 息 已 经 是 HTML 了, 就 可 以 直 接 填 充 指 定 的 DIV 元 素 Ajax.Updater 在 增 加 学 院 功 能 中 的 关 键 代 码 如 例 1 所 示 : 例 1: functionaddinstitution() varrequest_url= "/paper/insmanage.jsp";// 需 要 获 取 内 容 的 url varplaceholder=$( institutiondiv );// 局 部 更 新 的 div varmyajax=newajax.updater(placeholder,request_url, method: post,//http 请 求 的 方 法,getorpost ); 当 新 增 一 个 学 院 时, 客 户 端 调 用 AddInstitution 函 数, 通 过 Ajax.Updater 异 步 请 求 InsManage.jsp 的 内 容, 该 实 现 方 式 如 图 4 中 3 所 示, 服 务 器 将 InsManage.jsp 中 满 足 条 件 的 部 分 HTML 内 容 返 回 给 客 户 端, 局 部 更 新 placeholder 中 指 定 的 DIV, 其 他 内 容 不 会 被 刷 新, 更 好 地 满 足 用 户 需 求 3.2 论 文 的 格 式 转 换 不 同 的 操 作 系 统 以 及 不 同 的 开 发 平 台 对 异 质 存 储 方 式 的 转 换 有 不 同 的 解 决 方 案, 考 虑 到 学 生 大 多 使 用 Win dows 操 作 系 统 以 及 本 系 统 采 用 Java 开 发 平 台, 所 以 选 用 了 JACOB 实 现 将 Doc 格 式 的 文 件 转 化 为 Pdf 格 式 (1) 采 用 Java-COM 连 接 桥 JACOB JACOB 是 在 Java 与 微 软 的 COM 组 件 之 间 的 桥 梁, 通 过 使 用 JACOB 自 带 的 Dl 动 态 链 接 库 通 过 Jni 的 方 式 实 现 了 在 SunJava 平 台 上 的 程 序 对 COM 调 用 它 有 两 个 重 要 的 文 件 : jacob.jar 和 jacob.dl 下 载 的 jacob.dl 放 在 winnt\system32 ( 或 windows\system32) 的 目 录 下,jacob.jar 放 在 JSPcontainer 的 Lib 下 在 使 用 JACOB 开 发 时, 重 要 的 一 点 是,jacob.dl 要 与 jacob.jar 版 本 一 致, 不 一 致 将 出 现 异 常 (2)JACOB 实 现 Doc 文 件 转 化 为 Pdf 文 件 的 实 例 在 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 中, 一 项 重 要 的 功 能 就 是 将 学 生 提 交 的 Doc 格 式 的 论 文 全 文 以 及 前 16 页 转 换 成 网 络 上 通 用 的 Pdf 格 式 通 过 JACOB 对 COM 组 件 的 调 用 完 成 了 将 Doc 文 件 转 化 为 Pdf 格 式, 并 且 结 合 Ajax 的 异 步 传 输 功 能 以 及 Struts 开 发 模 式, 实 现 转 换 功 能 其 界 面 如 图 6 所 示 审 核 界 面 如 图 6 所 示 为 双 屏 显 示, 左 屏 显 示 论 文 的 对 象 文 件, 右 屏 显 示 论 文 的 元 数 据 信 息, 如 果 论 文 通 过 审 核 则 显 示 转 换 前 16 页 转 换 全 文 两 个 按 钮, 管 理 员 通 过 点 击 这 两 个 按 钮 向 服 务 器 发 送 转 化 请 求, 服 务 器 收 到 请 求 后 将 对 象 文 件 由 Doc 文 件 转 化 为 Pdf 文 件, 完 成 文 件 格 式 的 转 换 此 模 块 中 采 用 图 4 中 的 第 二 种 开 发 模 式, 即 前 端 采 用 10 图 6 论 文 审 核 界 面 Ajax 技 术 发 送 XMLHtpRequest 给 ControlerServelet, 前 端 发 送 请 求 的 关 键 代 码 如 例 2 所 示 : 例 2: functiondoctopdf(cardcode) varrequest_url="doc2pdf.do"; // 请 求 的 url varrequest_pars= cardcode= +cardcode; // 请 求 参 数 varmyajax=newajax.request(request_url, method: post, parameters:request_pars,// 请 求 参 数 onfailure:reporteror, onloading:loading, oncomplete:done ); functionloading() //HTTP 请 求 的 方 法,getorpost // 失 败 的 时 候 调 用 reporteror 函 数 // 正 在 获 得 内 容 的 时 候 // 内 容 获 取 完 毕 的 时 候 $( loading ).style.display= block ; functiondone() alert( 转 化 成 功! );// 通 知 用 户 转 化 成 功 functionreporteror(request) alert( 对 不 起, 有 错 误! ); 当 用 户 点 击 转 换 前 16 页 转 化 全 文 时, 将 调 用 Doc ToPdf 函 数 对 象, 向 ControlerActionServlet 发 送 异 步 转 化 请 求,ControlerActionServlet 根 据 Struts-config.xml 中 Doc2Pdf actionmapping 转 向 相 应 类 进 行 处 理, 转 化 完 成 后 通 知 用 户 后 台 用 JACOB 实 现 格 式 转 换 的 关 键 代 码 如 例 3 所 示 : 例 3: // 设 置 当 前 使 用 的 打 印 机, 我 的 AdobeDistiler 打 印 机 名 字 为 "AdobePDF"
objword.setproperty("activeprinter",newvariant("adobepdf")); // 设 置 printout 的 参 数, 将 word 文 档 打 印 为 postscript 文 档 VariantBackground=False;// 是 否 在 后 台 运 行 VariantAppend=False;// 是 否 追 加 打 印 intwdprintaldocument=0; VariantRange=newVariant(wdPrintAlDocument); VariantOutputFileName=newVariant(destinPSFilePath);// 输 出 的 postscript 文 件 的 路 径 Dispatch.calN(objWord,"PrintOut",new Variant[] Back ground,append,range,outputfilename);// 调 用 word 文 档 对 象 的 PrintOut 方 法 : 将 word 文 档 打 印 为 postscript 文 档, 简 称 ps 文 档 VariantinputPostScriptFilePath=newVariant(destinPSFilePath); VariantoutputPDFFilePath=newVariant(destinPDFFilePath); // 设 置 输 出 的 pdf 文 档 的 路 径 VariantPDFOption=newVariant("");// 定 义 FileToPDF 方 法 要 使 用 adobepdf 设 置 文 件 的 路 径, 在 这 里 没 有 赋 值 表 示 并 不 使 用 pdf 配 置 文 件 Dispatch.calN(distiler,"FileToPDF",newVariant[] inputpostscriptfilepath,outputpdffilepath,pdfoption); // 调 用 FileToPDF 方 法 将 ps 文 档 转 换 为 pdf 文 档 3.3 Ajax:displayTag 在 院 系 管 理 模 块 中 的 应 用 院 系 管 理 主 要 方 便 学 生 提 交 论 文 时 对 院 系 进 行 选 择, 如 果 院 系 有 变 动, 可 通 过 院 系 管 理 模 块 对 院 系 进 行 添 加 删 除 或 修 改, 这 样, 院 系 的 变 化 可 以 在 论 文 提 交 表 单 中 实 时 地 表 现 出 来 院 系 管 理 模 块 主 要 采 用 Prototype 的 Ajax.Updater 类 以 及 Ajax:displayTag 标 签, 实 现 用 户 在 不 刷 新 页 面 的 情 况 下 完 成 对 学 院 的 增 加 删 除 修 改, 同 时 达 到 自 动 分 页 及 排 序 等 功 能 Ajax.Updater 在 前 文 已 经 介 绍, 在 此 主 要 阐 述 Ajax.displayTag 在 系 统 中 的 应 用 Ajax:displayTag 用 来 处 理 JSP 网 页 上 的 Table, 功 能 非 常 强, 可 以 对 Table 进 行 分 页 数 据 导 出 分 组 对 列 排 序 等 等, 并 且 分 页 和 排 序 都 是 使 用 Ajax 异 步 通 信 方 式 通 过 使 用 Ajax:displayTag, 开 发 人 员 可 以 轻 松 完 成 分 页 和 排 序 功 能 院 系 管 理 界 面 如 图 7 所 示 : 图 7 学 院 管 理 界 面 用 户 可 以 点 击 学 院 号 以 及 学 院 名 称 标 题, 对 显 示 的 记 录 进 行 升 序 或 降 序 排 列 同 时, 用 户 可 以 点 击 表 格 上 面 的 1,2 选 择 要 查 看 的 那 一 页, 同 时 可 以 点 击 First/ Prev 实 现 对 第 一 页 和 前 一 页 的 查 看, 点 击 Next/Last 对 下 一 页 或 最 后 一 页 进 行 查 看 因 为 Ajax:displayTag 是 采 用 Ajax 异 步 通 信 方 式, 在 满 足 用 户 需 求 的 同 时, 不 会 导 致 页 面 其 他 内 容 的 改 变 关 键 代 码 如 例 4 所 示 : 例 4: <ajax:displaytagid="displaytagframe" ajaxflag="display Ajax"> <display:tablename="inslist"style="background-color:# 6495ED;text-align:left;width:100%"id="row"pagesize ="10"> // 定 制 table 每 页 显 示 10 条 记 录 <display:columnsortable="true"property="inscode"title =" 学 院 号 " style="text-align:left;background-color:#f0f0f0; width:20%"/> // 定 制 一 个 列, 标 题 为 学 院 号 <display:columnsortable="true"property="insname"title =" 学 院 名 称 " style="text-align:left;background-color:#f0f0f0; width:40%"/> <display:columnsortable="true"property="insdescription" title=" 描 述 " style="text-align:left;background-color:#f0f0f0; width:5%"/> </display:table>//table 结 束 </ajax:displaytag>//displaytag 结 束 3.4 OAI 元 数 据 转 化 基 于 OAI 的 学 位 论 文 服 务 系 统 不 仅 对 外 提 供 检 索 服 务, 而 且 对 于 通 过 审 核 加 工 标 引 成 功 的 论 文, 系 统 可 以 将 这 些 论 文 的 元 数 据 转 化 为 OAI 格 式 元 数 据, 将 这 些 论 文 添 加 到 学 位 论 文 仓 库 中, 建 立 仓 储, 供 数 据 服 务 方 收 割 OAI 采 用 了 简 单 DC 作 为 各 种 元 数 据 格 式 互 相 映 射 的 媒 介 来 实 现 互 操 作 [4], 在 本 系 统 中, 实 现 了 对 学 位 论 文 服 务 系 统 中 的 论 文 元 数 据 对 DC 元 数 据 的 映 射, 界 面 如 图 8 所 示 图 8 中 表 的 第 一 列 为 学 位 论 文 模 板 元 数 据 即 DC 元 数 据, 右 边 为 基 于 OAI 的 学 位 论 文 管 理 与 服 务 系 统 中 的 元 数 据, 在 右 边 的 下 拉 菜 单 中, 选 择 与 DC 元 数 据 相 对 应 的 元 数 据 字 段, 完 成 基 于 OAI 学 位 论 文 管 理 与 服 务 系 统 中 的 元 数 据 转 化 为 DC 元 数 据 的 工 作, 建 立 仓 储, 作 为 数 据 提 供 方 对 外 提 供 OAI 服 务, 数 据 服 务 方 可 以 根 据 OAI 协 议 请 求 相 关 的 资 源 11
檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 现 代 图 书 情 报 技 术 2007 年 第 11 期 特 邀 专 栏 总 第 157 期 4 结 语 图 8 学 位 论 文 服 务 系 统 与 DC 元 数 据 字 段 映 射 本 文 结 合 Struts 和 Web2.0 技 术 阐 述 了 基 于 OAI 的 学 位 论 文 服 务 系 统 的 设 计 与 实 现 基 于 OAI 的 学 位 论 文 服 务 系 统 除 了 与 北 京 邮 电 大 学 数 字 图 书 馆 其 他 子 系 统 相 集 成 外, 还 可 以 独 立 提 供 论 文 上 传 论 文 审 核 加 工 标 引 论 文 发 布 以 及 对 外 提 供 OAI 服 务, 能 够 很 好 地 满 足 高 校 对 毕 业 生 论 文 的 管 理 从 系 统 实 现 来 看, 系 统 实 现 整 体 采 用 Struts 结 构, 结 构 清 晰, 易 于 维 护 另 外, 采 用 Web2.0 技 术 实 现 与 服 务 器 异 步 通 信, 在 不 刷 新 整 个 页 面 的 前 提 下 维 护 数 据 [5], 使 系 统 更 能 满 足 用 户 需 求, 灵 活 易 用 参 考 文 献 : [1] 王 沛 征 服 Ajax Web2.0 开 发 技 术 详 解 [M]. 北 京 : 人 民 邮 电 出 版 社 2006. [2]Prototype 框 架 简 介 [EB/OL] [2007-08-04] htp://book. csdn.net/bookfiles/286/10028612420.shtml [3] 朱 二 涛 数 字 资 源 管 理 与 信 息 服 务 系 统 研 究 和 实 现 [D]. 北 京 : 北 京 邮 电 大 学,2003. [4] 张 野 基 于 OAI 协 议 的 学 位 论 文 元 数 据 管 理 系 统 研 究 与 实 现 [D]. 北 京 : 北 京 邮 电 大 学,2003. [5]AJAX 的 优 点 前 提 和 批 评 [EB/OL] [2007-08-04] htp:// blog.csdn.net/shankaipingo/archive/2006/06/07/777860.aspx ( 作 者 E-mail:cui.meng@163.com ) 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 檲 欢 迎 订 阅 2008 年 现 代 图 书 情 报 技 术 ( 月 刊 ) 现 代 图 书 情 报 技 术 杂 志 是 由 中 国 科 学 院 国 家 科 学 图 书 馆 主 办 的 学 术 性 信 息 管 理 技 术 类 专 业 期 刊 1980 年 创 刊, 原 名 计 算 机 与 图 书 馆,1985 年 更 名 为 现 代 图 书 情 报 技 术, 是 国 内 图 书 馆 学 情 报 学 领 域 唯 一 一 份 技 术 性 刊 物, 入 选 北 大 核 心 期 刊 要 目 总 览, 并 被 多 次 授 予 中 国 图 书 馆 学 优 秀 期 刊 荣 誉 称 号 (1) 期 刊 定 位 : 面 向 国 内 信 息 技 术 领 域 的 科 研 人 员, 跨 图 书 馆 学 情 报 学 信 息 科 学 等 几 大 学 科, 以 报 道 信 息 技 术 的 研 发 与 应 用 为 主 体, 倡 导 原 创 性 科 研 论 文, 同 时 兼 顾 应 用 实 践 型 文 章 (2) 栏 目 设 置 : 数 字 图 书 馆 知 识 组 织 与 知 识 管 理 情 报 分 析 与 研 究 应 用 实 践 动 态 等 一 系 列 固 定 栏 目 以 及 特 邀 专 栏 专 题 企 业 技 术 之 窗 等 不 定 期 栏 目 月 刊 : 国 际 通 行 16 开 版 本 定 价 :56 元 / 期, 全 年 定 价 :672 元 国 内 邮 发 代 号 :82-421 国 外 邮 发 代 号 :M4345 地 址 : 北 京 中 关 村 北 四 环 西 路 33 号 (100080) 电 话 / 传 真 :010-82624938 E-mail:jishu@mail.las.ac.cn 网 址 :htp://www.infotech.ac.cn 12