没有合适的资源?快使用搜索试试~ 我知道了~
首页apache web组件使用
apache web组件使用
3星 · 超过75%的资源 需积分: 10 40 下载量 162 浏览量
更新于2023-03-16
评论 1
收藏 82KB DOC 举报
apache web组件使用介绍,有经典的实例介绍!.在项目当中,我们经常会用到一些公共类的用法。apache web组件提供了许多通用的实现。
资源详情
资源评论
资源推荐
apache web 组件使用
使用 Jakarta Commons 之库组件攻略
Jakarta Commons 是 Jakarta 的一个子项目,目的是创建和维护独立于其他框架和产品
的程序包(packages)。这些程序包是一些服务于小范围的有效组件的集合,通常适用于
服务器端编程。
Commons 项目分为两部分:Sandbox 和 Commons 库。Sandbox 用于测试。本文关注库
组件,包括它们什么时候使用,在那里,以及用例子说明如何使用。
简要介绍
Jakarta Commons 项目源于重用,其中的程序包必须确保能够重用。有一些包来自于其
他项目,例如通用日志包是 Jakarta Struts 的一部分。当开发者发现某个包对于其他项目很
有用,可以缩短开发周期,他们决定将这些包做成通用组件。这就是 Jakarta Commons 项
目。
要真正做到可重用,每个程序包必须独立于其他较大的框架和项目。因此, Commons
项目中的每个包在很大程度上是独立的,不仅相对于其他项目,甚至对于其他包也是如此
违反这一原则的情况是存在的,但决大多数情况是使用成熟的 APIs。例如,Betwixt 包建
立在 XML APIs 基础之上。尽管这个项目的本意是建立不依赖其他组件的程序包。
大多数程序包十分简洁,以至于缺少必要的文档、维护和帮助。有些包甚至只有错误
的连接和极少的文档。大多数情况下,你只能自己摸索如何使用它们,为什么使用它们。
希望这篇文章对你有帮助。
注 意 : Jakarta Commons 与 Apache Commons 是 不 同 的 。 后 者 是 Apache Software
Foundation(ASF)的顶级项目。而前者是 ASF 的另一个顶级项目 Jakarta 的子项目,是本
文介绍的对象。而且,Jakarta Commons 只使用 Java。在本文中 Commons 指的是 Jakarta
Commons。
组件
为了组织方便,我将 18 个(包括 EL,Latka 和 Jexl)Commons 组件分为五类。如下表:
组件类别
组件
Web 相关
FileUpload,HTTPClient 和 Net
XML 相关
Betwixt,Digester,Jelly 和 JXPath
工具
BeanUtils,Logging,DBCP,Pool 和 Validator
打包
Codec 和 Modeler
小程序
CLI,Discovery,Lang 和 Collections
要注意的是这个分类只是对本文而言,在 Commons 项目中是不存在的。在某种程度上
分类是重叠的。本文将介绍 Web 相关和小程序类,下篇文章包括 XML 相关和打包类,工
具类在最后一篇文章中。
小程序类
将 CLI,Discovery,Lang 和 Collections 归入小程序类是因为它们都是为了一个小而实
用的目的编写的。
1.CLI
概要:CLI(Command Line Interface)为你的 Java 程序提供读取和解析命令行参数的
通用接口。
在那得到:主页,程序,源代码。
何时使用:需要统一操作命令行参数时。
例子程序:CLIDemo.java,需要将 commons-cli-1.0.jarcommons 加入 CLASSPATH 中。
描述:通常在完成一个 Java 程序时不得不重写应用程序输入参数的处理部分。如果有
一个唯一的接口用来定义﹑解析和读取输入参数,以决定程序的运行方式不是很好吗?
CLI 就是答案。
对于 CLI,命令行中每个要处理的参数都是一个 Option。创建一个 Options 对象,将
Option 对象添加进去,然后用 CLI 提供的函数解析用户的输入参数。一个 Option 也许也需
要用户输入一个值,例如文件名。这时 Option 必须在指定处创建。
CLI 使用步骤如下:
1.创建 Options:
Options options = new Options();
Options.addOption(“t”,false,”current time”);
2.创建解析器解析用户输入:
CommandLineParser parser = new BasicParser();
CommandLine cmd;
try{
cmd = parser.parse(options, args);
} catch(ParseException pe) {
usage(options);
return;
}
3.根据用户输入执行相应操作:
if(cmd.hasOption(“n”)) {
System.err.println(“Nice to meet you: ”+
cmd.getOptionvalue(‘n’));
}
以上基本就是使用 CLI 的全过程。当然,CLI 提供其他高级选项用于控制各种格式和
解析器,但基本操作是相同的。完整的例子可以看 demo。
2.Discovery
概要:discovery 模式的实现,提供定位与实例化类或其他资源的通用方法。
在那得到:主页,程序,源代码。该包处于 pre-release 状态。
何时使用:需要快速找到你的代码中 Java 接口的实现时。
例 子程 序 : DiscoveryDemo.java , MyInterface.java , MyImpl1.java , MyImpl2.java ,
MyInterface。需要将 commons-discovery.jar 和 commons-logging.jar 添到 CLASSPATH 中。
描述:Discovery 的目的是使用最好的算法得到接口的所有实现。当用户想找到所有的
提供某一服务的提供商时,这将特别有用。
假设你写了一个针对某一难题的接口。这个接口的所有实现将以唯一的编码方式解决
这一难题。真正的用户在实际解决这一难题时将会有多种选择。他怎么才能知道接口的那
种实现在他的系统中是可行的?
这就是 Service 与 Service Provider 结构。Service 就是你定义的接口。Service Providers
提供 Service 的实现。用户需要选择 Service Providers。Discovery 组件用多种方法提供帮助。
注意 Discovery 不仅用于发现实现类,而且可以寻找资源,例如图像或其他文件。它遵照
Sun 的 Service Provider Architecture 规范。
同样,Discovery 的使用也很简单。例子程序中,MyImpl1 和 MyImpl2 是 MyInterface
接口的实现。MyInterface 文件必须在 META-INF/services 目录下。注意这个文件必须对应
接口的全路径。如果接口在包内,那么文件名也要相应改动。
1.取得 ClassLoader:
ClassLoaders loaders =
ClassLoaders.getAppLoaders(MyInterface.class, getClass(), false);
2.创建 DiscoverClass 用于查找实现类:
DiscoverClass discover = new DiscoverClass(loaders);
3.查找实现类:
剩余12页未读,继续阅读
bibber0737
- 粉丝: 3
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1