Jakarta Commons Cookbook中文版
Jakarta Commons Cookbook中文版
Timothy M. O'Brien
乔健, 张颖 译
出版时间:2006年11月
页数:376
Java一直承诺向开发人员提供可重用、模块化和可移植的特性。开发者无需从头构建,而是可以对已有的框架和组件进行扩展,或按需定制。一个典型的例子就是万维网联盟(W3C)定义的DOM接口。应用程序开发人员很少会去编写自己的XML解析器,但他们常常编写自己的组件,而这些组件的功能在一些自由软件库中已经实现了,只是开发者们不知道这些开源组件的存在罢了。本书采用O'Reilly Cookbook系列丛书所惯用的“问题-求解”模式,概述了可供使用的软件库,从而为开发者提供使用这些工具的桥梁。这里仅列出部分本书所涵盖的Commons项目和组件:
● 对核心Java语言的扩展,包括字符串和日期操作、字符串编码和参数验证
● 对XML的支持,从解析、生成文档到使用搜索引擎索引XML文档所需的XPath
● 模板化框架,它使你能超越JSP的基本功能,不仅Web页面,甚至XML文件或者电子邮件都能够进行模板化
● 使用FTP、SMTP、POP、NNTP,特别是HTTP和WebDAV等功能所需的工具
● 使用函子进行编程的新方法,包括使用Predicate、Closure、Transformer和Functor替换控制结构,如for和while
● 新的Collection和Collection工具,包括LRU Map、predicated collection、适用于Java 1.4的typed collection、filtering iterator和set操作
● 对JavaBean的扩展,从bean到map的转换至序列化bean为XML字符串
● 提供对矩阵、复数、线性回归支持的新数学工具库
● 对Jakarta Commons组件和Maven、Ant协同使用的指导
● 日志和编码
仅仅了解一两个有用的工具类是不够的,你必须能意识到其他的可能性,并对所选技术的背景有所了解。如果您希望摆脱令人手忙脚乱的编程方法并熟练掌握Java语言,本书正是您所需要的工具。
  1. 前言
  2. 第1章 扩展J2SE平台
  3. 1.0 简介
  4. 1.1 获取Commons Lang
  5. 1.2 加入Commons-User邮件列表
  6. 1.3 获取Commons Lang源代码
  7. 1.4 自动生成toString()内容
  8. 1.5 自定义toString()内容
  9. 1.6 自动生成hashCode()和equals()
  10. 1.7 自动实现compateTo()
  11. 1.8 输出数组内容
  12. 1.9 克隆和反转数组
  13. 1.10 对象数组和基本类型数组的互相转换
  14. 1.11 在数组中搜索特定项
  15. 1.12 由多维数组生成Map
  16. 1.13 格式化日期
  17. 1.14 舍入Date对象
  18. 1.15 截取Date对象
  19. 1.16 创建枚举量
  20. 1.17 生成唯一的数字标识符
  21. 1.18 验证方法参数
  22. 1.19 度量时间
  23. 第2章 处理文本
  24. 2.0 简介
  25. 2.1 获取StringUtils和WordUtils
  26. 2.2 检查空字符串
  27. 2.3 缩减字符串
  28. 2.4 分割字符串
  29. 2.5 搜寻嵌套字符串
  30. 2.6 裁减字符串
  31. 2.7 字符串的chomp处理
  32. 2.8 创建醒目的标题
  33. 2.9 反转字符串
  34. 2.10 单词折回
  35. 2.11 检测字符串内容
  36. 2.12 检测字符串出现频率
  37. 2.13 解析格式化字符串
  38. 2.14 计算字符串的差别
  39. 2.15 使用Commons Codec
  40. 2.16 获取Commons Codec源代码
  41. 2.17 计算Soundex编码
  42. 第3章 JavaBeans
  43. 3.0 简介
  44. 3.1 以图形方式表示Beans
  45. 3.2 获取Commons BeanUtils
  46. 3.3 获取Commons BeanUtils源代码
  47. 3.4 访问简单的Bean属性
  48. 3.5 访问嵌套Bean属性
  49. 3.6 访问带有下标的Bean属性
  50. 3.7 访问Map型Bean属性内容
  51. 3.8 访问一个嵌套的带有下标的Map型简单Bean属性
  52. 3.9 确定Bean属性的类型
  53. 3.10 比较Beans
  54. 3.11 复制Bean属性
  55. 3.12 Bean的克隆
  56. 3.13 设置Bean属性
  57. 3.14 检查可否访问属性
  58. 3.15 通过Predicates验证Beans
  59. 3.16 创建包含Bean属性的Map
  60. 3.17 使用Map封装Bean
  61. 3.18 创建动态Bean
  62. 3.19 以字符串形式读取和设置属性
  63. 第4章 函子
  64. 4.0 简介
  65. 4.1 获取Commons Collections
  66. 4.2 获取Commons Collections源代码
  67. 4.3 Comparator的功能反转
  68. 4.4 Comparators的链接
  69. 4.5 对null的比较
  70. 4.6 以固定顺序比较
  71. 4.7 使用简单的Predicates
  72. 4.8 自定义Predicate
  73. 4.9 创建复合Predicate
  74. 4.10 对象转换
  75. 4.11 创建转换链
  76. 4.12 实现条件转换
  77. 4.13 编写Closure
  78. 4.14 链接多个Closure
  79. 4.15 使用Closures模拟条件语句
  80. 4.16 使用Closure模拟循环
  81. 第5章 Collections
  82. 5.0 简介
  83. 5.1 获取Commons Collections
  84. 5.2 使用循环迭代器
  85. 5.3 遍历ArrayList
  86. 5.4 使用Predicate筛选Collection
  87. 5.5 遍历相异的元素
  88. 5.6 使用Bag
  89. 5.7 使用Buffer
  90. 5.8 创建优先队列
  91. 5.9 使用阻塞式缓冲区
  92. 5.10 在Map中存储多个值
  93. 5.11 根据值检索相应的键
  94. 5.12 使用大小写不敏感的Map
  95. 5.13 创建特定类型的Collection和Map
  96. 5.14 限制Map的取值
  97. 5.15 限制List的内容
  98. 5.16 转换Collections
  99. 5.17 创建LRU缓存
  100. 5.18 使用LazyMap
  101. 5.19 统计Collection中对象的出现次数
  102. 5.20 执行集合操作
  103. 5.21 不经强制转换检索Map的值
  104. 第6章 XML
  105. 6.0 简介
  106. 6.1 获取 Jakarta Commons Digester
  107. 6.2 将XML文档转为对象
  108. 6.3 带命名空间的解析
  109. 6.4 创建简单XML命令语言
  110. 6.5 变量置换和XML解析
  111. 6.6 获取Jakarta Commons Betwixt
  112. 6.7 转换Beans为XML文档
  113. 6.8 定制由对象生成的XML
  114. 6.9 转换XML文档为Beans
  115. 第7章 应用程序基础设施
  116. 7.0 简介
  117. 7.1 获取Commons CLI
  118. 7.2 解析简单命令行
  119. 7.3 解析复杂命令行
  120. 7.4 显示使用方法信息
  121. 7.5 获取Commons Configuration
  122. 7.6 通过属性文件配置应用程序
  123. 7.7 通过XML配置应用程序
  124. 7.8 使用复合配置
  125. 7.9 获取Commons Logging
  126. 7.10 使用抽象日志接口
  127. 7.11 指定日志的实现
  128. 7.12 获取Apache Log4J
  129. 7.13 根据属性文件配置Log4J
  130. 7.14 通过XML配置Log4J
  131. 第8章 Math
  132. 8.0 简介
  133. 8.1 使用分数
  134. 8.2 在数组里寻找最大和最小数
  135. 8.3 处理数字的范围
  136. 8.4 生成随机变量
  137. 8.5 获取Commons Math
  138. 8.6 计算简单的单变量统计量
  139. 8.7 解线性方程系统
  140. 8.8 带复数的算术操作
  141. 8.9 在变量间建立关联
  142. 8.10 估计剩余处理时间
  143. 第9章 模板
  144. 9.0 简介
  145. 9.1 获取 Commons JEXL
  146. 9.2 使用表达式语言
  147. 9.3 在表达式中调用方法
  148. 9.4 以表达式语言外置逻辑
  149. 9.5 获取Jakarta Velocity
  150. 9.6 使用简单模板语言
  151. 9.7 编写含有条件和循环的模板
  152. 9.8 在模板引擎中使用宏
  153. 9.9 在模板中调用方法
  154. 9.10 获取FreeMarker
  155. 9.11 使用复杂的脚本引擎
  156. 9.12 从模板引擎访问XML文档
  157. 9.13 在Web应用程序中使用Velocity
  158. 9.14 在Web应用程序中使用FreeMarker
  159. 9.15 在Eclipse中编写模板
  160. 第10章 I/O与网络
  161. 10.0 简介
  162. 10.1 获取Commons IO
  163. 10.2 拷贝Stream、byte[]数组、Reader和Writer
  164. 10.3 关闭Stream、Reader和Writer
  165. 10.4 输出易于理解的文件大小值
  166. 10.5 拷贝文件、字符串和URL
  167. 10.6 递归删除目录
  168. 10.7 获取目录大小
  169. 10.8 文件touch操作
  170. 10.9 筛选文件
  171. 10.10 测量Stream流量
  172. 10.11 拆分OutputStream
  173. 10.12 获取Jakarta ORO
  174. 10.13 使用glob表达式和Perl5正则表达式列举文件
  175. 10.14 获取Commons Net
  176. 10.15 编写FTP客户端
  177. 10.16 通过SMTP发送邮件
  178. 10.17 查看POP3邮箱
  179. 第11章 HTTP和WebDAV
  180. 11.0 简介
  181. 11.1 获取Jakarta HttpClient
  182. 11.2 获取Jakarta HttpClient源代码
  183. 11.3 执行HTTP GET
  184. 11.4 在查询字符串中发送参数
  185. 11.5 通过条件GET检索内容
  186. 11.6 调试HTTP
  187. 11.7 执行HTTP POST请求
  188. 11.8 发送来自文件的POST数据
  189. 11.9 通过Multipart POST上传文件
  190. 11.10 Basic型身份验证
  191. 11.11 NTLM身份验证
  192. 11.12 处理Cookie
  193. 11.13 处理重定向
  194. 11.14 SSL
  195. 11.15 使用自签发的证书
  196. 11.16 获取Jakarta Slide
  197. 11.17 连接WebDAV资源
  198. 11.18 修改WebDAV资源
  199. 第12章 搜索和筛选
  200. 12.0 简介
  201. 12.1 获取Commons JXPath
  202. 12.2 通过XPath查询对象图表
  203. 12.3 搜索一组简单对象
  204. 12.4 在复杂的对象图表中使用XPath查询
  205. 12.5 获取Jakarta Lucene
  206. 12.6 为XML文档创建索引
  207. 12.7 在文档索引中搜索指定词语
  208. 12.8 找出索引中词语出现的频率
书名:Jakarta Commons Cookbook中文版
作者:Timothy M. O'Brien
译者:乔健, 张颖 译
国内出版社:清华大学出版社
出版时间:2006年11月
页数:376
书号:7-302-13964-4
原版书出版商:O'Reilly Media
Timothy M. O'Brien
 
Timothy M. O'Brien is an active committer in the Jakarta Commons, a subproject of the Apache Software Foundation's Jakarta project. As a consultant, Tim tries to encourage the adoption of open source software and nudge organizations to view community participation as an essential strategy.In addition to his professional responsibilities, he is a bass/baritone who sings frequently in the Chicagoland area. Tim discovered programming on a Basic Four, TRS-80, and Commodore 64 in his hometown of Wellesley, Massachusetts; subsequently, he studied Computer Engi- neering at the University of Virginia.
Timothy M O'Brien是一位Jakarta社区的活跃成员。而Jakarta是Apache软件基金会(Apache Software Fundation)所属Apache工程的子项目。作为一名顾问人员,Tim致力于提倡采用开源软件,并敦促各组织把参与社区看作一项重要战略。
除了专业工作外,他还是一位男中低音歌手,常在芝加哥地区一展歌喉。Tim的编程生涯起始于家乡Massachusetts州的Wellesley,开始时学习的是Basic Four、TRS-80及Commodore64,后来他进入弗吉尼亚大学(the University of
Virginia)学习计算机工程。
 
 
本书封面上的动物是一只土豚(aardvark)。豚鼠居住在次撒哈拉地区的草地与林地中,是土豚科(Orycteropodidae)哺乳动物中硕果仅存的一支。虽然土豚之名源于它与猪的相似性(aardvark这个词即来源于荷兰语中的“earth猪”),但它的外形更像有袋类动物,譬如兔耳朵狸(bilby)和bandicoor。
土豚的特征是其像猪一样的躯干、弓形后背、超长的耳朵以及长长的猪嘴。它们一般呈黄灰色,不过它们富有韧性的表皮在泥土下会显出红褐色。成年土豚平均长度超过3英尺,重量大概是90~140磅。土豚只吃蚂蚁和白蚁,它们小小管状嘴巴和细长的舌头正适应了这种进食特点。它们先以敏锐的嗅觉找到蚁穴位置,接着用强壮的前肢挖开它,并通过富有粘性的舌头舔食蚁穴的居住者。根据科学家的观察,豚鼠一个晚上就能吃掉50000只昆虫。
豚鼠天性喜爱隐居。它们昼伏夜出,并精心修建长度可达40英尺的洞穴作为自己的家园。洞穴被用于寻找食物,也为其提供了暂时的栖身场所。当雌性土豚产子时,也会把洞穴作为一个更稳定的住所。
土豚并不算是危险动物。不过由于它们漂亮的圆柱形牙齿适合作装饰品,土豚也成为了猎人们的目标。