本文主要是介绍OTN XMLNews 应用程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
OTN XMLNews 应用程序
目录
本文档分为以下几部分:
- 示例应用程序概述
- 应用程序使用案例图
- 应用程序模式图
- 应用程序体系结构图
- 带有屏幕截图的用户附注
- 安装和配置
- 示例文件的说明
示例应用程序概述 |
动态新闻是基于 Oracle XML DB 的应用程序,它为提供静态/定制新闻服务的网站管理新闻项。新闻项存储于数据库。用户请求新闻页时,生成静态/定制新闻页的 HTML 并返回给用户。
本示例应用程序主要为提供静态/定制新闻服务的网站实施新闻项管理。(示例:myCNN}。
从功能上看,当调用示例应用程序时,主页呈现如下一组特性:
- 最频繁访问的新闻
- 主新闻标题行
- 用户登录和首选项
- 反馈选项
- 新闻搜索选项
用户可以把自己希望看到的新闻定制为“我的新闻”页。此链接可以从主页的左导航条选项中获得。用户必须先注册/登录,才能使用定制功能。用户定制需要通过选择新闻类别、子类别或类型来生成用户描述文件。如果用户在其描述文件中选择类别/子类别/类型,就会生成显示用户首选新闻的动态新闻。
下面说明新闻生成技巧。Admin 用户为应用程序维护和生成新闻。Admin 以管理员用户名称/口令登录。他可以创建不同角色的用户。这些角色是“管理员”、“新闻供给人员”、“管理人员”和“最终用户”。Admin 具有“管理员”角色,而且是完全控制应用程序的超级用户。新闻供给人员只能将新闻上载/供给到应用程序。“管理人员”有对类别/子类别/类型的所有管理员操作权限。
只有 Admin 能批准和归档上载的新闻项。Admin 和管理人员也能上载/编辑/删除新闻项。另外,Admin 可以创建/编辑/删除新闻类别、子类别和类型。管理员的主要工作之一是生成新闻。Admin 参与批处理/静态新闻生成。管理员的其他工作包括管理业务通讯、客户簿和档案。新闻生成操作包括:包含主内容新闻的批处理新闻和前五条频繁访问的新闻。Admin 也控制业务通讯生成。另外,Admin 参与导入新闻。
批处理/静态新闻生成:
动态新闻生成:
在此处,用户描述文件允许的定制级别最高可到类别、子类别和类型。数据直接从数据库检索,不必牵扯 Admin。此时再次应用适当的 XSL 生成 HTML 新闻页。
新闻以 RSS 格式导入:
Admin 能导入符合丰富站点汇总 ( RSS) 标准的 XML 文档。Netscape 开发了 RSS,作为共享数据信道的方法。RSS 已用于 my.netscape.com 和 slashdot.org 等网站。新闻标题和描述被导入应用程序并保存于数据库。例如,site.xml 文件与示例一起提供。该文件在 xmlnews/config 目录下。请参见目录结构和文件描述的示例文件说明 。该文件是 RSS 格式并用于将新闻项导入到应用程序。
基于 J2EE 表格认证:
XMLNews 示例应用程序利用基于表格的认证机制,以允许访问应用程序信息。在此处,web 容器使用以应用程序部署描述符(principals.xml 和 web.xml)定义的安全性角色,实施应用程序 Web 资源认证。
当访问受保护的 Web 资源时,Web 容器激活已为该资源配置的认证机制。它执行下列步骤来实施 Web 应用程序安全性。
- 当访问受保护的 Web 资源时,确定用户是否经过认证。
- 如果用户未经认证,则通过重定向到以部署描述符定义的登录页,来要求用户提供安全性证书。
- 利用容器配置验证用户证书是否符合数据库信息。
容器主要通过定义在 web.xml 中的安全性角色,限制基于给定 URL 模式的资源,以访问这些资源。分组和角色都映射到 orion-application.xml 文件中。所有的分组都在 principals.xml 中列出。
用户的数据库验证:
XMLNews 应用程序利用 Orion 的 SimpleUserManager.java 类实施定制用户管理器,以通过 Oracle 数据库表的值来验证用户名称/口令。Orion-application.xml 定义用于用户验证的此管理器类。在当前的应用程序中,定制类创建为 MyUserManager.java,以扩充 Orion 的 SimpleUserManager.java 类。
OTN XMLNews Web 服务:
应用程序提供的 web 服务终端展现了一种方法:getAllNews 作为一种 web 服务。其他客户端通过此终端使用该 web 服务。可访问的 web 接口有下列配置:
输入参数:
以 'DD-MON-YYYY' 格式采纳日期值的字符串。这样可以获取特定日的所有新闻。
输出参数:
包含在指定日期检索到的新闻项的标题和描述的字符串数组。标题和描述以 '##' 分隔。 对于需要使用该 web 服务的客户端,必须编写必要的客户端应用程序来访问和获取新闻项。
下面是访问该 web 服务的 URL:
http://<hostname>:<oc4j_port>/xmlnews/OtnDynamicNewsService
应用程序使用案例图 | 返回页首 |

应用程序数据库模式图 | 返回页首 |
应用程序体系结构图 | 返回页首 |
体系结构说明:
OTN XML 新闻是由组件组成的多层应用程序,这些组件跨层通讯以访问和交换符合 Java 2 平台企业版 (J2EE) 标准的数据并利用如下的技术:
- 平台独立应用程序逻辑和数据交换的 Java 和 XML
- 使用 SQL 访问关系数据库中的企业数据的 JDBC
- 构建基于浏览器的动态界面的 Java Servlets 和 JavaServer 页
- 实施事务处理商务组件的企业 JavaBeans。
- 模型/视图/控制器 (MVC) 模式
- 会话外观模式
- 值对象模式
- 逐页迭代器模式
- 快速读出器模式
- 连接外观模式
应用程序通过 JSP 实施 JSP 模板,以构建基于浏览器的动态界面。对视图的请求来自浏览器客户端。企业 JavaBeans 用于把事务处理商务组件连同几个读出器类和实用程序类一起实施。
在控制器层中,RouterServlet 如控制器一样运行,将浏览器请求分派到其他控制器对象,如 UserController、NewsController、BatchController 等等。控制器通过服务定位器为每次请求查找所需的服务层组件。
应用程序的模型层分为服务层和商务层。服务层为不同的商务实体 EJB 提供不同的服务。该层分离表示和商务层。这些服务被实施为与商务层的 EJB 通话的非状态会话组件。查看 EJB 时使用服务定位器。
在服务层,NewsService 会话组件的方法表现为 Web 服务。可以从此新闻 Web 服务导出新闻。
商务层包括实体 EJB、值对象和读出器类。应用程序中的实体 EJB 是:实施为 CMP 组件的类别、类型、反馈和用户。NewsItem 实施为非状态会话组件,以通过 Oracle XMLTYPE 数据类型管理新闻信息。Oracle XML DB 特性用于 NewsItemSession 组件。
DB 访问抽象层是可重用库,通过它来管理数据库连接。BMP EJB - NewsItem 和读出器类使用本层。而 EJB 容器负责为其他 CMP 管理数据库连接。
带有屏幕截图的用户附注 | 返回页首 |
当调用应用程序时,显示的第一页是主页,如下图所示。本页不需登录。调用 URL 的用户首先看到此页。该页显示左导航条选项、主新闻内容和右导航条(它包含前五条频繁访问的新闻)。下面的主要内容就是前五条频繁访问的新闻的内容。
图 1:您可以指定将作为组合框中的数据源的视图对象、显示在下拉列表中的属性,以及将选定数据返回到其中的视图对象和属性。示例应用程序主页
所有以 'auth' 开头的 URL 都要经过认证。例如:'authLogin'。应用程序通过基于表格的认证来实施该项。大体上,管理员的工作要求登录经过核实和认证。同样,访问定制或用户首选新闻也需认证。下面是所有登录调用指向的登录页。
图 2:从任何地方进行管理。“需经认证”页的登录页。
任何已注册的应用程序用户都可以设置其首选项,以便利用应用程序看新闻。URI:/authMain 通过动态生成基于用户首选项的内容来从数据库获取 XMLNews。示例页面如下所示:
图 3:您可以指定将作为组合框中的数据源的视图对象、显示在下拉列表中的属性,以及将选定数据返回到其中的视图对象和属性。认证用户的“我的新闻”页。
与新闻管理相关的用户有如下角色:管理员、管理人员和新闻供给人员。所有这些用户角色都允许有不同的新闻管理操作。下面是为具有“管理员”角色的用户显示的页。
图 4:Oracle Enterprise Manager 的三层体系结构。具有“管理员”角色的用户的左导航条选项
下面是为具有“管理人员”角色的用户显示的页。管理人员可管理类别、子类别和类型。也可创建/编辑/查询新闻项。
图 5:Oracle 9iAS 表单服务的体系结构。具有“管理人员”角色的用户的左导航条选项
下面是为具有“新闻供给人员”角色的用户显示的页。新闻供给者只能创建新闻项。

图 6:您只需选择视图对象和属性来将模型绑定到控件上。具有“新闻供给人员”角色的用户的左导航条选项
安装和配置 | 返回页首 |
参考示例 jar 提供的 Install.html 文件,了解有关解压缩文件、安装和配置其他系统以成功运行本应用程序的逐步指导。
示例文件的说明 | 返回页首 |
xmlnews.jar 的目录结构如下所示:
此处的 xmlnews 是高层目录。
目录 | 子目录结构/文件 | 说明 |
/ | build.xml | 这是 ANT 工具用于创建 EAR 文件的编译文件。 |
config | 本目录包含所有配置文件、根据应用程序 XML 数据使用的样式表和属性文件。它还包含一个 RSS 格式文件:site.xml。 | |
docs | Readme.html | 本文件。 |
Install.html | 本文件含有部署应用程序所需的指令。 | |
images/ | 本文件夹包含用于 Readme.html 和 Install.html 的所有图片。 | |
sql | xmlnews.sql | 本 SQL 脚本创建应用程序使用的所有表格、序列和启动记录。 |
src | oracle/otnsamples/eis | 本目录包含实施企业信息系统 (EIS) 的 Java 文件。 |
oracle/otnsamples/mvc | 本目录包含实施模型视图控制器 (MVC) 体系结构的 Java 文件。 | |
oracle/otnsamples/mvc/templates | 本目录包含实施 JSP 模板的类。 | |
oracle/otnsamples/util | 本目录包含实用程序文件,如日期格式化、在 JNDI 树中查找服务等等。 | |
oracle/otnsamples/ws | 本目录包含 WebService Stub 和示例 java 客户端,以使用 web 服务。 | |
oracle/otnsamples/xmlnews/business | 本目录包含应用程序的所有商务对象。 | |
oracle/otnsamples/xmlnews/services | 本目录包含在商务对象中查找信息的所有服务组件。也包含 web 服务 WSDL 文件。 | |
oracle/otnsamples/xmlnews/controllers | 本目录包含调用相应服务方法的所有控制器对象。 | |
meta-inf | 本目录包含 ejb-jar.xml 和 orion-ejb-jar.xml 文件。 | |
webroot | admin | 本目录包含需经认证的与管理员工作相关的所有文件。 |
images | 本目录包含用于应用程序的图片。 | |
includes | 本目录包含用于应用程序的样式表。 | |
imports | 本目录包含应用程序运行时用户可访问的所有文件。也包含用于批处理、前五个频繁访问的新闻和业务通讯生成的一些默认文件。还有初次部署应用程序所用的图片。新闻项图片(新闻项生成时附加)保存在本目录中。 | |
本目录包含 errorHandler.jsp。这是应用程序中 JSP 使用的所有错误页。 | ||
user | 本目录包含不需认证即可访问且被应用程序终端用户调用的 JSP。 | |
web-inf | 本目录包含 orion-web.xml 和 web.xml。 | |
web-inf/lib | 本目录包含 JSP 模板使用的标签库。 | |
main.jsp | 这是用于调用应用程序主页的主 JSP 文件。 |
这篇关于OTN XMLNews 应用程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!