OTN XMLNews 应用程序

2024-03-16 21:58
文章标签 应用程序 otn xmlnews

本文主要是介绍OTN XMLNews 应用程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OTN XMLNews 应用程序

目录

本文档分为以下几部分:

示例应用程序概述

批处理/静态新闻生成:

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

新闻以 RSS 格式导入:

Admin 能导入符合丰富站点汇总 ( RSS) 标准的 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 文件。

 



请将关于此示例的评论意见输入 OTN 示例代码论坛。

这篇关于OTN XMLNews 应用程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816849

相关文章

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Java Web应用程序的推荐目录结构

以前没有用过maven管理过项目的依赖,最后使用上了maven,发现通过不能方式建立出来的web应用程序目录结构基本都不一样,既然每次都要到网上搜索如何建立maven管理的Web应用程序,不如自己找百度谷歌一下。 找了半天 ,感觉比较好的maven管理的web应用程序目录结构是这个: ├── pom.xml└── src├── main│ ├── java│ │ └── myg

C++入门(02)简单了解C++应用程序的开发部署

文章目录 1. 开发C++应用程序2. 简单示例计算器程序3. 需求分析4. 设计5. 编码6. 编译7. 调试8. 测试9. 部署10. 部署示例10.1 使用Visual Studio Installer Projects创建安装程序10.2 安装VisualStudio Installer Projects扩展10.3 在calculator解决方案中创建安装项目10.3.1 添加安装

android应用程序访问隐藏的api

前言 在android系统开发中需要添加一些aidl文件。 这些aidl是hide的,应用程序无法直接的使用,从而引出了应用程序如何访问内部内藏的api接口 步骤 1.android在编译完成后,会生成framework.jar。难道应用程序要使用这个framework.jar吗? 其实不是的,需要使用的是 out/target/common/obj/JAVA_LIBRARIES/f

android应用程序jni访问C库

应用程序访问C库 –通过jni访问 如果应用程序,需要访问C的动态库,可以通过ndk的方式生成动态库,也可以在ubuntu中通过命令行得到动态库。本文通过命令行的方式得到动态库libhardcontrol.so 交叉编译 arm-linux-gcc -fPIC -shared hardcontrol.c -o libhardcontrol.so -I /usr/lib/jvm/java-1.

在移动应用程序中集成模糊方法的基于物联网的天气监测系统的实现

这篇论文的标题是《IMPLEMENTATION OF WEATHER MONITORING SYSTEM BASED INTERNET OF THINGS USING INTEGRATED FUZZY METHOD IN MOBILE APPLICATIONS》,作者是 Muhammad Malik Amin,来自 Politeknik Negeri Jakarta 的 D-IV INSTRUME

Qt 运行一个应用程序,再次点击程序快捷方式弹出程序窗口

代码实现 .h文件 #ifndef SINGLEAPPLICATION_H#define SINGLEAPPLICATION_H#include <QObject>#include <QWidget>#include <QApplication>#include <QtNetwork/QLocalServer>class SingleApplication : public QAppl

7、Django Admin删除默认应用程序

admin文件 from django.contrib.auth.models import User, Groupadmin.site.unregister(User)admin.site.unregister(Group) 显示效果: 前 后

MAC XCode 得到当前应用程序的路径

- (IBAction)OnBT1:(id)sender {     NSString *resourcePath=[[NSBundlemainBundle] bundlePath];         m_LB1.stringValue = resourcePath;