导航

2010年10月21日

摘要: 一、 JSONP的原理JSONP即JSON with Padding,由于浏览器同源策略的限制,XmlHttpRequest不能跨域(crossdomain)访问资源。如果想要跨域访问,我们可以通过一个技巧实现。html中的script标签可以加载跨域的Javascript的文件。举一个简单的例子比如我们在www.example.com域名下有一个html文件,有如下片段内容:而http://ww... 阅读全文

posted @ 2010-10-21 11:12 Kyle Lee 阅读(2299) 评论(0) 推荐(4)

2009年6月10日

摘要: Google搜索一把你能找到一些关于事务文件系统的Java实现,而我选择的是Apache的commons-transaction,为什么?因为经验告诉我从 Apache Foundation诞生的软件都是相当优秀的,并且有很完备的文档。但是commons-transaction可能属于例外了,它没有完备的文档,本文就就简单的描述commons-transaction的用法。1. 下载并... 阅读全文

posted @ 2009-06-10 22:49 Kyle Lee 阅读(736) 评论(0) 推荐(0)

2008年12月23日

摘要: 本文较为详细的分析了Mathopd的启动过程。如果将此启动过程一般化,便可以作为我们开发Linux下服务器程序的蓝本。要看Mathopd的启动过程,当然应先从main函数看起,看看做了哪几个大的步骤。如果你对本文感兴趣,阅读时最好参考源代码。1. 处理命令行参数2. 打开/dev/null设备3. 读入配置信息(这很重要,我们以后将着重分析)4. 启动配置文件中指定的所有服务器,并侦听... 阅读全文

posted @ 2008-12-23 23:08 Kyle Lee 阅读(404) 评论(0) 推荐(0)

2008年12月22日

摘要: 摘自《敏捷软件开发:原则、模式与实践》重构就好比用餐后对厨房的清理工作。第一次你没有清理它,你用餐是会快一点。但是由于没有对盘碟和用餐环境进行清洁,第二次做准备工作的时间就要更长一些。这回再一次促使你放弃清洁工作。的确,如果跳过清洁工作,你今天总是能够很快用完餐,但是脏乱在一天天的积累。最终,你的花费大量的时间去寻找合适的烹饪器具,凿去盘碟上已经干硬的食物残余,并把它们洗擦干净以使他们... 阅读全文

posted @ 2008-12-22 22:37 Kyle Lee 阅读(202) 评论(0) 推荐(0)

2008年12月21日

摘要: 分析源码的第一步便是要弄清整个系统设计结构,模块组成。系统设计Mathopd是一个单进程单线程的HTTP服务器程序。单进程单线的构建决定了其简单的设计结构。系统采用的是select多路复用,来处理并发连接。现在的Linux2.6内核支持epoll,它比select更高效。作者可能最初在2.4内核上开发,或是想保持和2.4内核的兼容性而采用了select。但作者对select进行了封装(... 阅读全文

posted @ 2008-12-21 19:32 Kyle Lee 阅读(594) 评论(0) 推荐(0)

2008年12月14日

摘要: Mathopd官网上对Mathopd这样介绍:Mathopd是Unix系统下,非常小,但非常快的HTTP服务器。Mathopd的确是最轻量级HTTP服务器。源代码的压缩包只有59K,由10个.c文件组成。即使和lighttpd比起来也只能算是九牛一毛,更不必和Apache去比了。当然他没有Apache和lighttpd丰富的功能,不支持动态模块,不支持内容协商(content nego... 阅读全文

posted @ 2008-12-14 20:35 Kyle Lee 阅读(519) 评论(0) 推荐(0)

2008年11月10日

摘要: 上一篇文章我介绍了如何编写第一个Apache模块,也是最简单的模块mod_helloworld,这里我们要对mod_helloworld进行一些简单的扩展。这里我们还是来举一个例子,这个例子做的事情会比上一篇文章中介绍的mod_helloworld模块做的事情要多,但编写模块的整体框架不变,我们只是在处理函数中多做了一些事情。我们扩展的mod_helloworld模块功能要实现的是根据... 阅读全文

posted @ 2008-11-10 22:19 Kyle Lee 阅读(306) 评论(0) 推荐(0)

2008年11月8日

摘要: 自Apache2.0以来Apache就是一个开放的平台,开发人员可以轻松的为Apache编写模块。我下面要讲的例子是摘自Apache Modules Book一书。mod_helloworld是一个内容生成模块(content generator),它及其简单,但是他却可以反映编写Apache模块的基本概念。在以后的博文中,我会扩展这个helloworld模块,让它可以像简单的CGI一... 阅读全文

posted @ 2008-11-08 14:20 Kyle Lee 阅读(813) 评论(0) 推荐(0)

2008年10月23日

摘要: 1. 简介在Apache2.1版本中引入了DBD 框架,DBD提供了一个统一的、抽象的数据库操作接口,封装了不同数据库之间的接口和实现差异。可以使我们很容易的编写跨数据库(coss-database)的程序。2. 说明本文的目的是简单的介绍如何在C开发的程序中开始使用DBD,而不具体介绍每个API的用法,所有接口的用法在DBD的接口文件apr-dbd.h中有详细的注释。笔者所用的环境是... 阅读全文

posted @ 2008-10-23 22:56 Kyle Lee 阅读(833) 评论(0) 推荐(0)

2008年10月22日

摘要: 今天在写数据库脚本时使用了外关键字,运行时遇到两类错误,代码分别是121和150。我在Google了一下找到了解决方法。分别解释如下:error 121 这是外关键字名字重复的错误,即使是在不同的表中,外关键字的名字也不能重复。error 150这类错误包括3种情况:1. 外键和被引用外键类型不一样,比如integer和double2. 找不到要被引用的列3. 表的字符编码不一样... 阅读全文

posted @ 2008-10-22 16:59 Kyle Lee 阅读(1367) 评论(0) 推荐(0)