隔叶黄莺 The Blog of Unmi

〖隔叶黄莺三四声,挂壁飞瀑千万尘。若是人间无净土,此处为何妙语真! 隔叶黄莺四字,本非取自此句,而有寄寓他意,因见妙语,亦与予心合!〗

BlogJava 首页 新随笔 联系 聚合 管理
  209 Posts :: 84 Stories :: 392 Comments :: 0 Trackbacks

04 2008 档案

     摘要: 四. QuartzInitializerServlet 可谓救命草

Quartz 框架包括一个叫做 org.quartz.ee.servlet.QuartzInitializerServlet 的 Java 类,它继承自标准的 HttpServlet。你可应用这个 servlet 于你的 Web 应用中,它将会创建一个 StdSchedulerFactory 实例并在你的程序后续中一直可用。通常的,它就是做了命令行版本的 Quartz 程序的 main() 方法所做的事性。

QuartzInitializerServlet 在 Quartz 1.5 中有所改变

在 Quartz 的 1.5 发布版中,QuartzInitializerServlet 被修改为会存储 StdSchedulerFactory 实例到 Web 应用的 ServletContext 中。这就允许你的程序在任何地方都能访问到 Scheduler 实例,只要获取到了 HttpServletRequest 或 HttpSessi  阅读全文
posted @ 2008-04-30 01:26 隔叶黄莺 阅读(853) | 评论 (1)  编辑

     摘要: 你尽可以做个良民,为群体效率而本份的遵循个人秩序,然而事与愿违,非但不能因此提升群体的效率,而你势必失去诸多的机会,不会有人褒奖你,更得不到同情,只得自觉的天真。

1. 模板目录->主题目录->主题(模板文件) 这是模板/主题的目录组织方式。以实际为例,打开 struts2-core-2.x.x.jar 可以看到里面有一个 template,在 template 下有5个目录 ajax、css_xhtml、simple、xhtml 和 archive,其中前四个分别是 ajax、css_xhtml、simple、xhtml 主题的目录,每个主题目录中有各自的模板文件,主要是 ftl 文件,还有 css 和 js 文件。最后一个 archive 是归档的主题目录,其下又有 ajax、simple、xhtml、模板文件是 .vm 文件。由此可知 Struts2 大力推荐的模板语言是 FreeMarker,而不是 Velocity,以后要好好看看 FreeMarker,只知道 FreeMarkder 更 XML 化。

2. 上面看到模板目录名是 templ  阅读全文
posted @ 2008-04-29 00:46 隔叶黄莺 阅读(1053) | 评论 (5)  编辑

     摘要: 三. 在 Struts 框架中使用 Quartz

第一步就是要下载 Apache Struts 并创建好你的 Web 应用的目录结构。Struts 框架可从 Apache Struts 站点 http://struts.apache.org 上找到。也很欢迎你直接抓取到源代码来编译它,尽管你能够及时下载到最新版本的二进制版。

因为 Quartz 不直接依赖于 Struts 框架,所以你也就不必为该使用哪一版本的 Struts 而忧心。只管下载到当前的最新版本就是了。不过,你应该认识到,Struts 和 Quartz 框架共同依赖了一些第三方的包。实际上,在前面列出的 Quartz 所需要的库也是 Struts 框架所必须的。就是要留心混在一起不同的版本,如在最后一节的警告所注明的。

·创建你的 Web 应用目录结构

下载到了 Struts 之后,你就可以创建你的目录结构并引入必须的文件。作为例子,我们将创建一个虚构的 Web 应用,叫做 Job 管理控制台。因为这仅是一个假想的应用,我们  阅读全文
posted @ 2008-04-25 23:47 隔叶黄莺 阅读(1053) | 评论 (3)  编辑

     摘要: 有一日,帮外公翻腾出他箱底的照片进行数字化留存,已是耄耋之年的外公端详起那些记忆来,看到都是一同革命的热情小伙,不时感慨:唉!好多人都不在啦!

1. 可以用来在 JSP 页面直接调用 Action,用 name 指定 Action,executeResult(默认为 false) 指定是否包含那个 Action 转向视图的内容;executeResult 会把视图的所有内容输出在标签位置。ignoreContextParams(默认为 false),是否将本页的请求参数传到那个 Action。

2. 用来实例化 JavaBean,标签内使用 来指定属性。在标签内,bean 实例位于 ValueStack 顶端,标签结束则自动清除。如果指定的 id 属性,还会把该实例放到 Stack Context 中。name 属性必须,指定 Bean 类的全限名称。不知道复杂的属性该如何用 或其他方式来指定。  阅读全文
posted @ 2008-04-25 00:24 隔叶黄莺 阅读(1220) | 评论 (3)  编辑

     摘要: 前面记载过一篇 Java 执行 SQL 脚本文件,这里边完全是由自己写代码来分离出脚本中的每一个 SQL 语句的,有不少缺陷。当时还不太清楚 ANT 本身提供了功能很强的执行 SQL 语句和脚本的 SQL Task 可用。以下依次简单介绍如何在 build.xml 中执行 SQL 语句或脚本;Java 代码中如何调用 ant 的 SQLExec 类执行 SQL 脚本,最后考虑 ant.jar 的个头说大也不小,1M 多,如果只用于执行 SQL 脚本,则绝大部分代码就是垃圾,所以从同抽离出需要的两个类 JDBCTask 和 SQLExec,完全去除了对 ant.jar 包的依赖。

有关 ant 的更详细的记录请参见,http://ant.apache.org/manual/CoreTasks/sql.html 。  阅读全文
posted @ 2008-04-24 21:03 隔叶黄莺 阅读(1067) | 评论 (0)  编辑

     摘要: 第十三章. Quartz 和 Web 应用

到目前为止,我们与 Quartz 框架的交互主要还是通过命令行。对于有些使用者,比如我的一个大学计算机科学老教授(它曾每天都告诉我说,"GUI 是给能力差的人用的!"),使用命令行让他们很乐意接受。当应用程序被开发完成后,它们常要移交给终端用户或支持团队。在命令行应用程序上层架设一个 GUI 前端会非常有帮助也是很增值的。本章记述如何在 Web 应用中用 Quartz 来使得部署和维护 Job 更轻松。

一. 在 Web 应用中使用 Quartz

至此,你已经看到过许多在 J2SE 环境中独立运行的 Quartz 的例子。在第十章,"J2EE 中使用 Quartz",你也学到了 Quartz 良好的运作于 J2EE 环境中。但是,我们还没有向你介绍的是如何部署 Quartz 到一个 Java Web 应用(通常简写为 Web app)中。这就是本章唯一意图  阅读全文
posted @ 2008-04-23 23:40 隔叶黄莺 阅读(1107) | 评论 (4)  编辑

     摘要: 中世纪的欧洲《礼仪书》中说:痰不要吐到桌子上,也不要飞过桌子。1774年,欧洲的《礼仪与基督教礼貌守则》中说:我们再也不能原谅那些把痰吐到窗户外、墙上或者家具上的人。可见,欧洲人的素质也是在他们工业化富了之后的事。至少那个时候,我们的老祖宗再不争气,也绝不会把痰吐到桌子上。

1. OGNL 中有生成 List 和 Map 的表达式,分别是:{e1,e2,e3,...} 和 #{key1:val1,key2:val2,...}。对集合 OGNL 提供了两个操作符 in 和 not in,如:
---- not in 的用法当然是一样的了。
之外,OGNL 还允许通过某个规则取集合的子集
·? :取出所有符合条件逻辑的元素
·^:取出符合条件的第一个元素
·$:取出符合条件的最后一个元素
请将上面这三个符号与正则表达式的表示法联系起来  阅读全文
posted @ 2008-04-14 23:24 隔叶黄莺 阅读(1116) | 评论 (0)  编辑

     摘要: Ubuntu 8.0.4 已在万众企盼当中,本月 4 月 24 日正式发出,代码版本已封闭。继续写一个 Ubuntu Linux 7.10(alternate) 似乎十分多余,那就留给届时还会怀念 Ubuntu 7.10 的人士,也给自己留个底吧。

当然,每写个东西,总是要负责的,非轻率地转抄,终以本人实践真实记录。前面有篇是讲 Ubuntu 7.10(Desktop) 的安装,在 Windows 平台下从硬盘安装 Ubuntu Linux 7.10(Desktop),这里记载的是 Ubuntu 7.10(alternate) 的安装,是通过 grub4dos 来加上一个 Ubuntu 启动项,从而能从更盘引导。个人也更偏爱于用 alternate 版的光盘来安装,安装其他 Linux 发行版养成的习惯。

第一步,软件准备
1) 下载到 ubuntu v7.10-alternate-i386.iso 文件,可从这个链接 http://releases.ubuntu.com/releases/gutsy/ubuntu-7.10-alt  阅读全文
posted @ 2008-04-13 23:50 隔叶黄莺 阅读(1011) | 评论 (0)  编辑

     摘要: 在 Tomcat 5.0.28 下运行一个 Struts2 应用,其中使用了 EL 表达式,执行后却发现总也得不到期望的结果。于是百般找寻,终于发现是 web.xml 中用的声明是:

"http://java.sun.com/dtd/web-app_2_3.dtd">

而不是 Servlet 2.4 的声明,致少不能支持 EL,编译出来的 JSP 对应 Java 源代码也有不同。本篇就此进行深入分析,对比不同 web.xml 配置时,以及在分别使用 EL 和 OGNL 时产生的不同的编译结果。

最后得出结论,若想在 Servlet 2.3/JSP 1.2、JDK 为 1.4 的情况下用 Struts2 的第二条准则是:EL 换成 OGNL 表达式。在这种环境下使用 Struts2 虽说是何苦,但对于许多未能及时升级应用服务器的用户来说也是无奈之举。  阅读全文
posted @ 2008-04-13 14:06 隔叶黄莺 阅读(1101) | 评论 (4)  编辑

     摘要: 吾同人数进寺庙,却从未点过一柱香。概因精神世界里终无所寄托。既不为生儿还是女而筹算,也无须因落下亏心事要请得神灵庇佑。想来,真要的东西,阿弥陀佛也给不了。在物价飞涨之际,谁能给你加薪,何来民主,看看这辈子能不能有机会参与选一回国家领导人,少说几句了,就这点言论自由了。

1. Struts 2 标签库以 OGNL 表达式为基础,对集合、对象的访问功能更强了。Struts 2 的标签用统一的前缀,一般为 "s",不再像 Struts1 那样分 html、bean、logic 等多个命名空间的标签。如果在 JSP 2.0 之前用过 JSTL,也就知道什么是 OGNL 表达式的。

2. Struts2 提供了很多 Struts1 标签没有的东西,如日历、树型控件、Tab页等;同时可借助 DWR,有标签支持 Ajax,除此还提供了主题、模板,还允许在页面中使用自定义组件  阅读全文
posted @ 2008-04-11 02:32 隔叶黄莺 阅读(960) | 评论 (1)  编辑

     摘要: 二、不得已而痛下决心要从硬盘安装它了,其实在 Windows 平台下如何从硬盘安装 Ubuntu Linux 在网上可以搜到一大畧,而且会发现安装越来越简单。比如:

6.x 的 Ubuntu 从要下载 grub for dos,编辑 boot.ini、menu.lst 来自行加载镜象文件 (6.10alternate的硬盘安装教程)

7.x 的 Ubuntu 却简单了许多,它的光盘里就有 wubi-cdboot.exe,不需要额外的东西,只需简单操作。本文就说这一安装过程。

再说到即将(本月 24 号)发布的 Ubuntu 就更简单了,像安装普通 Windows 应用程序一样了。其实对于前面的版本也可以这么安装的。  阅读全文
posted @ 2008-04-06 23:37 隔叶黄莺 阅读(1370) | 评论 (4)  编辑

     摘要: ·替换已部署的 Job

Quartz 提供了对已部署 Job 进行修改的灵活性。它是通过允许用修改后的 JobDetail 替换已有的 JobDetail 来支持这一特性的。为展未这一例子,让我们更新代码 12.4 中的 CheckEmailJob 类。代码 12.4 是硬编码了邮件属性值到 Job 类中的。更好的做法是传入那些属性,如此则可以随意的改变它们;那让我们改动 CheckEmailJob 来做到这一点。代码 12.7 显示的是那个 Job 的更新后的版本。

代码 12.7. 更新后的允许传入属性的 CheckEmailJob  阅读全文
posted @ 2008-04-06 13:30 隔叶黄莺 阅读(803) | 评论 (0)  编辑

     摘要: 二. 与 Job 一同工作

本节为使用 Quartz 的 Job 提供了一些例子。

·创建一个新的 Job 类

创建一个新的 Job 类很简单。仅需创建一个类,让它实现 org.quartz.Job 接口即可。这个接口需要你实现 execute() 方法,它会在 Scheduler 决定 Job 要执行时被调用。

代码 12.4 演示了一个简单的 Job,它会为某个用户检查邮件服务器上是否有新的邮件。当 Scheduler 执行这个 Job 时,方法 execute() 被调用,然后其中的代码就会连接到邮件服务器并获取任何邮件消息。这一 Job 只简单的打印邮件是谁发的和邮件的主题。

代码 12.4. 一个检查邮件服务器上的邮件的 Quartz Job  阅读全文
posted @ 2008-04-05 15:02 隔叶黄莺 阅读(805) | 评论 (1)  编辑

     摘要: 第十二章. Quartz Cookbook

本章的目的是为在构建 Quartz 应用时常遇到的情形提供一系列的例子和解决方案。本章也可作为对本书剩余部分的一个参考和补充。

一. 与 Scheduler 一同工作

本节提供了使用 Quartz Scheduler 管理功能的几个例子。

·创建和启动 Scheduler

你能通过几种方式来启动 Quartz Scheduler,但是最简单的方式是使用两种 SchedulerFactory 实现中的一个。特别的,org.quartz.impl.stdSchedulerFactory 使用很简单,要执行对 Scheduler 的所有设置工作只需要调用 getDefaultScheduler() 这一静态方法即可,如代码 12.1 所演示的那般。  阅读全文
posted @ 2008-04-05 01:52 隔叶黄莺 阅读(777) | 评论 (2)  编辑

     摘要: 七. Cron 表达式 Cookbook

此处的 Cron 表达式 cookbook 旨在为常用的执行需求提供方案。尽管不可能列举出所有的表达式,但下面的应该为满足你的业务需求提供了足够的例子。

分钟的 Cron 表达式

表 5.1. 包括了分钟频度的任务计划 Cron 表达式

用法 表达式
每天的从 5:00 PM 至 5:59 PM 中的每分钟触发 0 * 17 * * ?

每天的从 11:00 PM 至 11:55 PM 中的每五分钟触发 0 0/5 23 * * ?

每天的从 3:00 至 3:55 PM 和 6:00 PM 至 6:55 PM 之中的每五分钟触发 0 0/5 15,18 * * ?

每天的从 5:00 AM 至 5:05 AM 中的每分钟触发 0 0-5 5 * * ?   阅读全文
posted @ 2008-04-04 12:07 隔叶黄莺 阅读(742) | 评论 (0)  编辑

     摘要: VMware 中安装了 Linux 后,又给这个虚拟机增加一个硬盘,假设选的类型是 SCSI, 进到虚拟机系统中应如何加载呢?

其实这后 Linux 新加了一个物理硬盘是一回事,做法如下:

在服务器上把硬盘接好,启动linux,以root登陆。

比如我新加一块SCSI硬盘,需要将其分成三个区:

#fdisk /dev/sdb
进入fdisk模式:
Command (m for help):p //查看新硬盘的分区
Command (m for help):n //创建新分区

可以用m命令来看fdisk命令的内部命令;n命令创建一个新分区;d命令删除一个存在的分区;p命令显示分区列表;t命令修改分区的类型ID号;l命令显示分区ID号的列表;a命令指定启动分区;w命令是将对分区  阅读全文
posted @ 2008-04-01 12:21 隔叶黄莺 阅读(154) | 评论 (0)  编辑