基于 dp.SyntaxHighlighter 写的代码语法着色工具

本程序是基于 dp.SyntaxHighlighter 写的代码语法着色的工具。支持的语言有
java/xml/sql/jscript/css/cpp/c#/python/vb/perl/php/ruby/delphi。

可方便用于你的博客中粘贴代码,只要自定相应的样式 (highlight.css 的内容,.Text 支持自定义样式或在模板里加上语法样式),然后复制用这个工具生成的 HTML 代码就能让你的代码着高亮显示。

可以加入更多语种的支持,本程序就是在 dp.SyntaxHighlighter 的基础上扩展了对 Perl 语言的支持,网上可以找到相应语法的 JS 代码和 CSS。语言扩展支持通过在 shCore.js 和 highlight.css 加入相应代码即可。 阅读全文 >>

VC++6.0 下搭建 wxWidgets 开发环境

和 GTK、QT、SWT、SWING 一样,wxWidgets 也是一种开源跨平台的 GUI 框架。因 wxWidgets 和 MFC 有些渊源,有些亲近,故要体验一番 wxWidgets。现在最新版是 2.8.7。wxWidgets 程序还可运行于 Windows CE、Palm OS。不但包括 GUI,还有 Media、Socket、ODBC 等库。

详情请见 wxWidgets 的官方网站是:http://www.wxwidgets.org

本篇介绍 VC++6.0 下如何搭建 wxWidgets 的开发环境,包括编译 wxWidgets 源码和配置 VC 环境。所用 wxWidgets 的版本是 2.8.7。

第一步:下载并安装 wxWidgets

http://www.wxwidgets.org/downloads/ 下载到 wxWidgets 源码。 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第十三章. Quartz 和 Web 应用 (第五部分)

六. 介绍 Quartz Web 程序

早期的 Quartz 框架开发者意识到一个 GUI 对于某类用户群体是必需的。几年前,一个 Web 应用被创立,它可用于管理 Quartz 框架。虽说是历经了几年有相当投入的开发,但不得不说的,总是时断时续的。

近来出现有更多的要求对这个应用的更新与支持,因而又重新吸引了新的开发者自愿的工作并使之保持不断更新。这个应用就是知名的 Quartz Web 程序。(译者注:实际上这个应用程序基本驻步不前,当前版本还是 RC-1 2004-06-26 22:00 的,仅作参考来应用) 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第十三章. Quartz 和 Web 应用 (第四部分)

五. 使用 ServletContextListener

很值得一提的是你可以配置和集成 Quartz 到 Web 应用的另一种方式。从 2.3 版本的 Servlet API 开始,你能创建监听器,由容器在其生命周期中的某个特定时间回调。其中的一个监听器接口叫做 java.servlet.ServletContextListener,它包括有两个方法:

public void contextInitialized(ServletContextEvent sce);
public void contextDestroyed(ServeltContextEvent sce);

容器会在启动和关闭的时候相应的调用这两个方法。这就可以在 contextInitialized() 方法中初始化 Quartz Scheduler,并通过 contextDestroyed() 方法关闭它。代码 13.5 描述了这种用法: 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第十三章. Quartz 和 Web 应用 (第三部分)

四. 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 实例,只要获取到了 HttpServletRequestHttpSession 对象,调用工厂的 getScheduler() 就访问到了 Scheduler 实例。

还新增了一个 start-scheduler-on-load 的 Servlet 初始化参数。这一参数指定 Scheduler 是否随 QuartzInitializerServlet 启动或是别处启动。假如未设置时默认为 True,Sheduler 将随 QuartzInitializerServlet 起来。否则,你的应用将不得不自己去获得 Scheduler 实例然后调用 start() 方法。

当容器加载 QuartzInitializerServlet,该 Servlet 的 init() 方法将被调用。这个 Servlet 读取几个初始化参数,创建 StdSchedulerFactory 类的实例,并使用指定(或默认) 的 Quartz 属性文件来初始化 Scheduler。 阅读全文 >>

Unmi 的 Struts2 学习笔记(十一)

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

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 化。 阅读全文 >>

Quartz Job Scheduling Framework[翻译]第十三章. Quartz 和 Web 应用 (第二部分)

三. 在 Struts 框架中使用 Quartz

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

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

Unmi 的 Struts2 学习笔记(十)

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

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

2. <s:bean .../> 用来实例化 JavaBean,标签内使用 <s:param name="" value=""/> 来指定属性。在标签内,bean 实例位于 ValueStack 顶端,标签结束则自动清除。如果指定的 id 属性,还会把该实例放到 Stack Context 中。name 属性必须,指定 Bean 类的全限名称。不知道复杂的属性该如何用 <s:param .../> 或其他方式来指定。 阅读全文 >>

利用 Ant 的 SQL Task 来实现自己的 Java 执行 SQL 脚本文件的功能

前面记载过一篇 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阅读全文 >>

Quartz Job Scheduling Framework[翻译]第十三章. Quartz 和 Web 应用 (第一部分)

第十三章. Quartz 和 Web 应用

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

一. 在 Web 应用中使用 Quartz

至此,你已经看到过许多在 J2SE 环境中独立运行的 Quartz 的例子。在第十章,"J2EE 中使用 Quartz",你也学到了 Quartz 良好的运作于 J2EE 环境中。但是,我们还没有向你介绍的是如何部署 Quartz 到一个 Java Web 应用(通常简写为 Web app)中。这就是本章唯一意图 阅读全文 >>