博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OTN XMLNews 应用程序
阅读量:4184 次
发布时间:2019-05-26

本文共 5084 字,大约阅读时间需要 16 分钟。

OTN XMLNews 应用程序

目录

本文档分为以下几部分:

示例应用程序概述

本示例应用程序主要为提供静态/定制新闻服务的网站实施新闻项管理。(示例:myCNN}。

批处理/静态新闻生成:

动态新闻生成:

在此处,用户描述文件允许的定制级别最高可到类别、子类别和类型。数据直接从数据库检索,不必牵扯 Admin。此时再次应用适当的 XSL 生成 HTML 新闻页。

新闻以 RSS 格式导入:

Admin 能导入符合 标准的 XML 文档。Netscape 开发了 RSS,作为共享数据信道的方法。RSS 已用于 my.netscape.com 和 slashdot.org 等网站。新闻标题和描述被导入应用程序并保存于数据库。例如,site.xml 文件与示例一起提供。该文件在 xmlnews/config 目录下。请参见目录结构和文件描述的 。该文件是 RSS 格式并用于将新闻项导入到应用程序。

基于 J2EE 表格认证:

XMLNews 示例应用程序利用基于表格的认证机制,以允许访问应用程序信息。在此处,web 容器使用以应用程序部署描述符(principals.xmlweb.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

应用程序使用案例图

Usecase Diagram for XMLNews

 

应用程序数据库模式图

dbschema

应用程序体系结构图

MVC Architecture

体系结构说明:
OTN XML 新闻是由组件组成的多层应用程序,这些组件跨层通讯以访问和交换符合 Java 2 平台企业版 (J2EE) 标准的数据并利用如下的技术:

  • 平台独立应用程序逻辑和数据交换的 Java 和 XML
  • 使用 SQL 访问关系数据库中的企业数据的 JDBC
  • 构建基于浏览器的动态界面的 Java Servlets 和 JavaServer 页
  • 实施事务处理商务组件的企业 JavaBeans。
应用程序体系结构实施几个 J2EE 设计模式,如:
  • 模型/视图/控制器 (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 的用户首先看到此页。该页显示左导航条选项、主新闻内容和右导航条(它包含前五条频繁访问的新闻)。下面的主要内容就是前五条频繁访问的新闻的内容。

home/main page

图 1:您可以指定将作为组合框中的数据源的视图对象、显示在下拉列表中的属性,以及将选定数据返回到其中的视图对象和属性。示例应用程序主页

所有以 'auth' 开头的 URL 都要经过认证。例如:'authLogin'。应用程序通过基于表格的认证来实施该项。大体上,管理员的工作要求登录经过核实和认证。同样,访问定制或用户首选新闻也需认证。下面是所有登录调用指向的登录页。

login page

图 2:从任何地方进行管理。“需经认证”页的登录页。

任何已注册的应用程序用户都可以设置其首选项,以便利用应用程序看新闻。URI:/authMain 通过动态生成基于用户首选项的内容来从数据库获取 XMLNews。示例页面如下所示:

定制“我的新闻”

图 3:您可以指定将作为组合框中的数据源的视图对象、显示在下拉列表中的属性,以及将选定数据返回到其中的视图对象和属性。认证用户的“我的新闻”页。

与新闻管理相关的用户有如下角色:管理员、管理人员和新闻供给人员。所有这些用户角色都允许有不同的新闻管理操作。下面是为具有“管理员”角色的用户显示的页。

admin main page

图 4:Oracle Enterprise Manager 的三层体系结构。具有“管理员”角色的用户的左导航条选项

下面是为具有“管理人员”角色的用户显示的页。管理人员可管理类别、子类别和类型。也可创建/编辑/查询新闻项。

manager main

图 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.htmlInstall.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.xmlorion-ejb-jar.xml 文件。

webroot

admin

本目录包含需经认证的与管理员工作相关的所有文件。

images

本目录包含用于应用程序的图片。

includes

本目录包含用于应用程序的样式表。

imports

本目录包含应用程序运行时用户可访问的所有文件。也包含用于批处理、前五个频繁访问的新闻和业务通讯生成的一些默认文件。还有初次部署应用程序所用的图片。新闻项图片(新闻项生成时附加)保存在本目录中。

本目录包含 errorHandler.jsp。这是应用程序中 JSP 使用的所有错误页。

user

本目录包含不需认证即可访问且被应用程序终端用户调用的 JSP。

web-inf

本目录包含 orion-web.xmlweb.xml

web-inf/lib

本目录包含 JSP 模板使用的标签库。

main.jsp

这是用于调用应用程序主页的主 JSP 文件。

 


请将关于此示例的评论意见输入

转载地址:http://exyoi.baihongyu.com/

你可能感兴趣的文章
java中的集合和数组
查看>>
Java运算符优先级
查看>>
IndexWriterConfig这个配置管理类
查看>>
lucene以.gen ,.si为后缀名的文件。
查看>>
段文件格式的组成以及结构
查看>>
fnm的索引文件格式的具体结构及数据类型
查看>>
在Lucene中,如何完成一个搜索的过程
查看>>
lucene的Term dictionary
查看>>
向量的索引文件格式
查看>>
DocValues 对于一些存储的值
查看>>
Lucene的几种评分方式
查看>>
static为什么可以修饰类
查看>>
Sql Server 锁机制
查看>>
Lucene检索的一系列流程
查看>>
Lucene的索引过程,非常简洁,
查看>>
4大数据库的比较
查看>>
Java 8的特性
查看>>
Spring整合JMS----基于ActiveMQ的实现
查看>>
sql语句常用
查看>>
数据的表前缀
查看>>