<?xml version="1.0" encoding="GB2312"?>  
<rss version="2.0" 
xmlns:dc="http://purl.org/dc/elements/1.1/" 
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" 
xmlns:admin="http://webns.net/mvcb/" 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
  
<channel> 
<title><![CDATA[绿水青山-jiarry.blogchina.com]]></title> 
<link>http://jiarry.bokee.com/index.html</link> 
<description><![CDATA[喜欢你正拥有的，从现在开始一步一个脚印]]></description> 
<dc:language>zh-cn</dc:language> 
<dc:creator>jiarry@hotmail.com</dc:creator> 
<dc:date>2008-07-28T15:34:46Z</dc:date> 
<admin:generatorAgent rdf:resource="http://blog.bokee.com.com" /> 

<item> 
<title><![CDATA[妈妈病了]]></title> 
<link>http://jiarry.bokee.com/6783268.html</link> 
<description><![CDATA[2008年8月8日，当大家都沉浸在奥运即将召开的欢乐中时，我一早赶到朝阳医院看望妈妈。妈妈昨晚突然生病，腹部疼的厉害，我哥已经陪她在医院输了半夜的葡萄糖了。<br /><br />一早赶到时，看到妈妈憔悴不已，我坚强、健康的妈妈，怎么忽然间就这么病倒了呢？我几乎无法想象。打完点滴之后，再去看急诊大夫。大夫说是肠胃不通，通则不痛。于是按医生开的处方，拿了药，并且用了通肠的药，然后妈妈果然好转了，我放心的送我妈和哥回去。<br /><br />本来是想奥运会接妈妈一起来看奥运烟花的，因为我住的房子正好面向鸟巢，排练时的烟花非常漂亮。所以，约好了几个朋友周末来看奥运烟花。现在妈妈病了，不能来了。回家的路上，我在想，幸好今天一早陪妈妈来看病，总算是病情稳定了。晚上，打电话过去询问，妈妈也一切尚好。<br /><br />就在看完开幕式，看完绚丽的烟花后，我哥半夜再打来电话，说是妈妈疼的非常厉害。我从睡梦中爬起来，想立即赶往医院。可是，半夜了，我哥让我第二天早上过去。一早赶到医院后，看见妈妈愈发地憔悴，她躺在病床上，捂着肚子直喊疼，汗水从她的面颊上迅速的滑落。医生说，还没有特别的处理方法，具体病情也不清楚，需要做增强CT和胃镜，但是都需要周1之后才能做。看妈妈实在疼的厉害，就陪着妈妈在医院住院观察，这一晚上我就这样守护在妈妈身边。<br /><br />第二天，尽管是周日，但是必须做CT了，在强烈要求在做了增强型CT，拍完片子后马上给医生看，但是医生没有任何结论，看不出所以然来，说要等到报告出来后才能诊断。报告要4天后的周四才能出来，胃镜至少要周一才能做。没有办法，只能再熬一晚上。这一晚，我哥陪护在妈妈身边，妈妈疼的死去活来，医生似乎也没有更好的主意，只是打点滴，或者注射止疼药。<br /><br />周一早上，我和哥陪妈妈去做胃镜检查，因为是急诊，所以就加急提前约到了。妈妈推进病房后，我和哥焦急地在外面等待。不多久，大夫把我们叫进房内，轻声地告诉我们一个晴天霹雳的消息，妈妈是胃癌，而且是晚期。虽然，病理报告还没有出来，但是结果基本可以断定。听到这个消息，我们是非常地震憾。妈妈的身体一向很好，她两年前确实有点胃痛，来朝阳医院检查说是胃溃疡，吃点药也就好了，怎么也不能想到是胃癌呀。<br /><br />……赶紧联系一些亲戚、朋友……<br /><br />在各方面的建议和支持下,我们赶紧联系专科医院，因为综合医院在这方面是没有专科医院行的。分别去了潘家园的中科院肿瘤医院，然后还去了七里庄的解放军307医院，定慧寺的北京大学肿瘤医院。中科院肿瘤医院是最好的，但是根本没有床位。后来暂时来到307医院，因为是部队的所以比较信任，但是来了之后才发现，这里的医生的水平以及服务的态度实在让人担心。所以及时联络北京大学肿瘤医院。还好，12日终于联系到了。13日一大早，我哥带着妈妈来到北京大学肿瘤医院。<br /><br />这两天，妈妈的病情仍不见好转。看着妈妈疼痛的样子，直后悔在她初发现胃痛时没有及时带她作胃镜检查，没有及时治疗。现在一切都晚了。<br /><br />妈妈一生辛勤劳作，为人善良，待人朴实、真诚，一个如此善良，吃尽了苦的最朴实的中国农民，怎么就患上了这种绝症呢？天有不公啊！幸好的是妈妈不认识字，她并不知道目前所患何种疾病，妈妈只是相信我们所说的一切。所以，妈妈可以保持乐观的心态，等待着一个月后的完全康复。<br /><br />在这里，我祈祷妈妈的病出现奇迹，尽快的康复起来。无论怎么样，我们全家人都会不遗余力的支持妈妈，不放弃，不抛弃，坚持到底。<br /><br />同时，对于癌症这个恶魔此番有了深刻的认识，以前这个词可以说太遥远了，只是在报纸上偶尔见到，平时根本想都没想过。现在，这个恶魔居然就侵袭我的亲人。最近也上网查阅了很多相关的资料，了解了关于癌症的一些知识。真心希望，天下所有的癌症患者早日康复，同时希望真正的有效的抗癌药品早日出现。<br /><br />脑袋里空空的，似乎没有方向，就跟目前的工作似的。为什么生活中会有那么多的意外呢？争取平静、简单的生活竟如此地难？而且似乎争取到了也会转瞬即逝。真是天有不测风云，人有旦夕祸福。生活似乎就像是巧克力棒，你永远都不知道下一块的味道。 平静如水的生活，却又平添许多波澜。即便你一心只想要的简单，命运也无法让你平静。工作似乎也是这样，你想的是扎扎实实的做事，老老实实的做人，但是，即便你真的努力了，你正确了，你争取了，你忍让了，你豁达了，你和谐了，但还是有很多意外的东西，而这些东西并不是你通过技术或者努力干活就能解决的。扎扎实实的干活，老老实实的做人似乎行不通，或者说仅凭这些是难以完全行的通，因为我们生活在一个时时刻刻与人协作又与人竞争的社会，大家除了努力干活看似和谐之外，其实还有人和人、利和利、事和事之间的纷争。你想要的平静和简单，并不一定会来。或者即便来了，也会很快又去。虽不至于气馁，但是现实总这么残酷。我一向是乐观的，也积极向上。即便身处逆境，即便遭遇挫折，我也是努力的。但是，在亲人遭遇忽然地恶疾还是有种前所未有的伤感。<br /><br />我祈祷善良而踏实的人们生活平静、安定。妈妈只是希望简单的生活，她不曾见过这城市里的许多许多，她的心纯净地像个孩子。妈妈不曾渴求什么富贵，尽管她一生历经苦难。她除了希望她的孩子们生活幸福外别无所求，她把所有的爱都给予了她的孩子们。她只是最朴实、平凡的一个农民。她确实没有很远的追求和很高的理想，也确实没有远见卓识和为“中华之崛起”、“世界和平”而努力，她只是静静地生活，除了在遇到政府官员和看到城市里的高楼有点惊慌之外，她一直都很安定。我不敢说她懂礼仪或者知道装扮，她只是知道一句老话“将心比心”。她希望的远没有都市人追求的那么多，她确实没有学识，但是她待人始终有颗真诚、善良的心，她或许不知道外面的世界如此绚烂，在她内心的深处，她依然只是爱护着她的孩子，只是平平淡淡的生活。有什么理由让这么一位坚持平淡生活的人遭受如此的痛呢？胃癌带给她的除了痛苦，还有上天的不公！！！<br /><br />但是我依然坚信世界是平的，我仍然相信踏踏实实的做事，老老实实的做人。]]></description> 
<guid isPermaLink="false">6783268@http://jiarry.bokee.com/</guid> 
<dc:subject>我的生活</dc:subject> 
<dc:date>2008-08-18T12:22:30Z</dc:date> 
</item> 
<item> 
<title><![CDATA[女司机遭劫，驾车撞死劫匪要负法律责任吗？]]></title> 
<link>http://jiarry.bokee.com/6770036.html</link> 
<description><![CDATA[<span style="font-weight: bold;">驾车撞死劫匪要负法律责任吗？</span><br /><br />这个命题是因为前不久发生在广东的女司机遭劫后，驾车撞死劫匪一案。案件经过大致如下：<br />&amp;#160;&amp;#160; 广东某女司机龙某在驾车驶出自家车库时，被三名劫匪砸破车窗，抢去一万多元现金。三劫匪坐一辆摩托车逃跑，龙女士随后驾车将劫匪撞翻在地，致劫匪一死两伤。<br /><br />详细经过见：<br /><a href="http://news.southcn.com/dishi/foshan/tp/content/2008-07/14/content_4472797.htm">http://news.southcn.com/dishi/foshan/tp/content/2008-07/14/content_4472797.htm</a><br /><a href="http://blog.sina.com.cn/s/blog_51055f9701009z9r.html">http://blog.sina.com.cn/s/blog_51055f9701009z9r.html</a><br /><br />对于这样一个案件，其实责任是很明确的。但是有很多网友都在评论，而且声讨劫匪。大言“撞了活该”等。在面对违法暴力事件时，人们是非常愤怒的。但是支持以暴治暴，超越法律用情感来处理事情是否正确呢？我想是不好的，虽然从情感上来讲，恶人最好都死光。贪污腐败的、谋财害命、奸淫幼女的等等最好都遭受最严厉的制裁，但是我国刑法规定的三项基本原则：<br />一、罪刑法定原则<br />二、刑法面前人人平等原则<br />三、罪责刑相适应原则<br />罪责刑相适应是我国刑法基本的原则之一。做到这一条就要量刑适当，即犯什么罪就承担什么责任，并且要严格遵照法律程序来处理，没有司法权的人和组织也不能执行司法权。任何感情色彩都不能掺杂进来，必须严格按照法律的规定来处理。<br /><br />通过这个案例我们来分析一下女司机究竟有没有触犯法律？有没有防卫过当？应该不应该受到刑事处罚？<br /><br />1、女司机有没有触犯法律，是否超出了正当防卫？<br />&amp;#160;&amp;#160;&amp;#160; 本案中女司机在遭到抢劫后再飞车撞人，这种被抢劫过程后才实施的驾车撞人事故，已经不属于当场的正当防卫了。而且最关键的是这种防卫已经严重超出了正当防卫的界限，她已经不是在保护自己不受伤害，或者是追回被抢物品，而是属于另外一种新的犯罪了。至于是否防卫过当，我觉得不是问题所在了。<br /><br />2、司机驾车撞人目的是什么？<br />&amp;#160;&amp;#160;&amp;#160; 按照常理推断，目的显然是伤害甚至杀死劫匪，而非仅仅限于追回被抢劫的物品，因为驾车撞人的后果作为一个司机她不会不知道。<br /><br />3、那么主观上是否故意或者过失呢？<br />&amp;#160;&amp;#160;&amp;#160; 这要根据肇事人的主观意识。如果女司机申辩神智不清，那需要她自己来证明当时的精神状态。即便这样，那也属于过失，但是属于情节轻微，因为是被抢后遭受的刺激导致，她本身并不是故意的，只是一时糊涂。如果说她受到刺激失去了理智，那没有用，因为关键是她有没有失去刑事责任能力？<br /><br />我国刑法规定，犯罪构成要件如下：<br />1、犯罪主体，即有刑事责任能力的自然人或法人。本女司机。<br />2、犯罪的主观方面。其实施的犯罪行为及其结果所具有的心理状态，即故意或过失。本案存在疑点。<br />3、犯罪的客观方面。是指犯罪行为的具体表现。本案是驾车撞人。<br />4、犯罪客体。指刑法所保护的公民人身权利不受非法侵害的这种社会关系。本案中，被害人虽然犯有抢劫罪，但是他们的人身权利仍不受非法侵害。<br /><br />从这里可以看出，女司机的行为已经触犯了我国《刑法》规定的犯罪构成要件，属于犯罪，理应受到刑事处罚。而且还不仅仅是那种防卫过当，她的罪行很可能是故意伤害或故者意杀人罪。只是在量刑上会从轻考虑。另外一个问题焦点在于：女司机当时的精神状态 。关于精神状态，这一点不好评述。即便属于受到刺激，但是还有过失的嫌疑。需要司法鉴定之后才能确定。<br /><br />谈下正当防卫：<br />我国刑法第20条的规定：“为了使国家、公共利益、本人或者他人的人身、财产和其他权利免受正在进行的不法侵害，而采取的制止不法侵害的行为，对不法侵害人造成损害的，属于正当防卫，不负刑事责任。<br />　　正当防卫明显超过必要限度造成重大损害的，应当负刑事责任，但是应当减轻或者免除处罚。<br />　　对正在进行行凶、杀人、抢劫、强奸、绑架以及其他严重危及人身安全的暴力犯罪，采取防卫行为，造成不法侵害人伤亡的，不属于防卫过当，不负刑事责任。”<br /><br />大家看看，本案是什么情况，是否属于正当防卫？有没有超过必要限度？本案抢劫过程显然已经结束了，而是逃跑过程中女司机驾车进行的撞击，并不是防止不法侵害。如果在案发当时还可以的防卫可能属于防卫过当，但是从本案来讲不属于正当防卫。虽然，在对抢劫逃跑的疑犯进行阻拦和追击仍属于正当防卫，但是女司机采用的手段并不是防卫，而是采取一种显然超出防止不法侵害的手段。而这种手段又对他人的人身安全造成了伤害。<br /><br />我们很同情女司机，因为她也是受害者，但是同样也应该想到假使那几位抢劫犯，他们也是受到法律保护的对象？ 在生活中，我们总是同情弱者，但是在法律面前人人平等。同情其实要有理性的思维，不要因为自以为怜悯的心其实对整个社会造成更对的不利。就好象，你要帮助她也要使用正确、合法的手段。<br /><br />假如这个案子中，女司机不负刑事责任。假如这个情况普遍了后，岂非没有罪行法定和量刑适当了？如果行为被人利用来故意杀人呢？&amp;#160; 所以，考虑这种行为时应该从法律的角度，而不是从情感上同情弱者。<br /><br />当然，如果本案使用判例法可以会好一些，比如这个案子如此判，以后的案件如果碰到了类似情形才遵照这个案子，否则仍按照成文法来处理。<br /><br />本案中的网友声讨来看，人们似乎对社会的治安严重不满，要通过痛下杀手来惩一儆百。可以看出，人们的理性被社会上层出不穷的刑事案件逼的变形了。大家之所以对罪犯深恶痛绝，我想大概主要是这个社会让人太没有安全感了吧。<br /><br />不过，法律是理性的。一切到要在法律允许的范围内做事。凡逾越半步都要遭到应该的处罚。<br /><br /><br />
]]></description> 
<guid isPermaLink="false">6770036@http://jiarry.bokee.com/</guid> 
<dc:subject>社会杂谈</dc:subject> 
<dc:date>2008-07-28T15:34:40Z</dc:date> 
</item> 
<item> 
<title><![CDATA[JavaScript函数式编程学习]]></title> 
<link>http://jiarry.bokee.com/6768082.html</link> 
<description><![CDATA[对函数式编程了解较少，这些天看了一些文章，逐渐开始理解。其实以前在用的带有这种风格，只是并没有这么彻底，或者说“o，这就是函数式编程”，比如尽量限制变量的作用域到一个比较小的范围，我们再整个类里面不用到什么变量，全是通过函数来相互调用的。<br id="uyeu" />

<br id="uyeu0" />

当然对于这种模式或者概念而言，其实是没有特别的定论的。不过函数式编程的确由来已久，而最近两年才开始慢慢地热了起来。可能，原因是这种适合函数式编程的动态语言开始流行了。看一下函数式编程的介绍，如下：<br id="uyeu1" />

<br id="uyeu2" />

<span style="font-weight: bold;" id="uyeu3">什么是函数编程？</span><br id="uyeu4" />

&amp;#160;<br id="uyeu5" />

在经常被引用的论文 “Why Functional Programming Matters”（请参阅 参考资料） 中，作者 John
Hughes
说明了模块化是成功编程的关键，而函数编程可以极大地改进模块化。在函数编程中，编程人员有一个天然框架用来开发更小的、更简单的和更一般化的模块，然后
将它们组合在一起。函数编程的一些基本特点包括：<br id="uyeu6" />

支持闭包和高阶函数。<br id="uyeu7" />

支持懒惰计算（lazy evaluation）。<br id="uyeu8" />

使用递归作为控制流程的机制。<br id="uyeu9" />

加强了引用透明性<br id="uyeu10" />

<br id="uyeu11" />

<ul id="uyeu12"><li id="uyeu13"><a cmimpressionsent="1" href="http://www.ibm.com/developerworks/cn/web/wa-javascript.html#functional" id="uyeu14">函数式编程概念</a>，包括匿名函数、调用函数的不同方法，以及将函数作为参数传递给其他函数的方式。函数式编程是一种强调表达式的计算而非命令的执行的一种编程风格。表达式是用函数结合基本值构成的，它类似于用参数调用函数。 

</li><li id="uyeu15"><a cmimpressionsent="1" href="http://www.ibm.com/developerworks/cn/web/wa-javascript.html#using" id="uyeu16">函数式概念的运用</a>，采用的示例包括：扩展数组排序；动态 HTML 生成的优美代码；系列函数的应用。<br id="uyeu17" />
</li></ul>

<br id="uyeu18" />

这些，JavaScript刚好符合。而JavaScript程序由于没有统一的包定义或者装载模式，脚本量大了时不太好维护，不够模块化。有时一个函数
块包括上百行代码，这对于代码的维护和可读性会是个问题。虽然，面向对象能有效解决了这一点，但是无形间文件似乎多了，代码似乎也增加了。<br id="uyeu19" />

<br id="uyeu20" />

JavaScript为什么要使用函数式编程的方式呢？既然JavaScipt通过prototype可以完全实现面向对象，那我们为什么要函数式编程
呢？我想有很重要的一点就是，无论怎么说面向对象的设计把一些东西确实搞复杂了，更臃肿庞大了。这对于大型应用来讲是无可厚非的，但是通常
JavaScript我们用来实现的Web应用并不是企业级的，我们需要简单、高效，同时又维护性强，可复用的代码。<br id="uyeu21" />

<br id="uyeu22" />

函数式JavaScript编程之所以很重要有三条主要的理由：<br id="uyeu23" />

&amp;#160;&amp;#160; 1. 它有助于写出模块化和可复用的代码。不用再看到冗长的函数块了。<br id="uyeu24" />

&amp;#160;&amp;#160; 2. 它对事件(event)处理程序非常有效。匿名函数发挥了重要作用。<br id="uyeu25" />

&amp;#160;&amp;#160; 3. 它很有趣！。或者说很Cool。<br id="uyeu26" />

<br id="uyeu27" />

今天抽空利用一些函数式编程写了一个程序，作用是拼接HTML字符串，同时给HTML Element加上函数事件。代码如下：<br id="uyeu28" />

<br id="uyeu29" />

&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 TRANSITIONAL//EN&amp;quot;&amp;gt;<br id="uyeu30" />

&amp;lt;html&amp;gt;<br id="uyeu31" />

&amp;lt;head&amp;gt;<br id="uyeu32" />

&amp;lt;title&amp;gt; new document &amp;lt;/title&amp;gt;<br id="uyeu33" />

&amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;editplus&amp;quot;&amp;gt;<br id="uyeu34" />

&amp;lt;meta name=&amp;quot;author&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;<br id="uyeu35" />

&amp;lt;meta name=&amp;quot;keywords&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;<br id="uyeu36" />

&amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;<br id="uyeu37" />

&amp;lt;style&amp;gt;<br id="uyeu38" />
<span style="color: rgb(0, 0, 255);" id="j68h">
.link{background:#f4ffff;}</span><br id="uyeu39" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="j68h0">
.span{background:#f4f4f9;}</span><br id="uyeu40" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="j68h1">
.strong{background:#fefaf5;}</span><br id="uyeu41" />

&amp;lt;/style&amp;gt;<br id="uyeu42" />

&amp;lt;/head&amp;gt;<br id="uyeu43" />

<br id="uyeu44" />

&amp;lt;body&amp;gt;<br id="uyeu45" />

&amp;#160;&amp;#160;&amp;#160; 函数调用测试，分别给对象绑定事件和函数<br id="uyeu46" />
<span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);" id="dln:">
&amp;#160;&amp;#160;&amp;#160; &amp;lt;div id=&amp;quot;div1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br/&amp;gt;</span><br id="uyeu47" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);" />
<span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);" id="dln:0">
&amp;#160;&amp;#160;&amp;#160; &amp;lt;div id=&amp;quot;div2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br/&amp;gt;</span><br id="uyeu48" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);" />
<span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);" id="dln:1">
&amp;#160;&amp;#160;&amp;#160; &amp;lt;div id=&amp;quot;div3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br/&amp;gt;</span><br id="uyeu49" />

&amp;#160;&amp;#160;&amp;#160; <br id="uyeu50" />

&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;<br id="uyeu51" />

&amp;lt;!--<br id="uyeu52" />
<span style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" id="dln:2">
/**</span><br id="uyeu53" style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" />
<span style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" id="dln:3">
&amp;#160;* @file htmlTemplateTest.js</span><br id="uyeu54" style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" />
<span style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" id="dln:4">
&amp;#160;* @description </span><br id="uyeu55" style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" />
<span style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" id="dln:5">
&amp;#160;* 函数式编程测试，拼接组合HTML字符串并输出，然后分别给HTMLtag编定相关事件</span><br id="uyeu56" style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" />
<span style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" id="dln:6">
&amp;#160;* 先定义一个数组和组合函数，然后通过数组的实例来调用函数返回字符串</span><br id="uyeu57" style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" />
<span style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" id="dln:7">
&amp;#160;* @author jarry</span><br id="uyeu58" style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" />
<span style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" id="dln:8">
&amp;#160;* @date 2008-07-25</span><br id="uyeu59" style="color: rgb(255, 0, 255); background-color: rgb(255, 255, 255);" />
<span style="color: rgb(255, 0, 255); background-color: rgb(116, 27, 71);" id="dln:9"><span style="background-color: rgb(255, 255, 255);" id="j4_5">
&amp;#160;*/</span></span><br id="uyeu60" />

<br id="uyeu61" />
<span style="background-color: rgb(255, 255, 255); color: rgb(255, 0, 255);" id="sd-b">
/*</span><br id="uyeu62" style="background-color: rgb(255, 255, 255); color: rgb(255, 0, 255);" />
<span style="background-color: rgb(255, 255, 255); color: rgb(255, 0, 255);" id="sd-b0">
&amp;#160;* @description 返回HTML Element对象</span><br id="uyeu63" style="background-color: rgb(255, 255, 255); color: rgb(255, 0, 255);" />
<span style="background-color: rgb(255, 255, 255); color: rgb(255, 0, 255);" id="sd-b1">
&amp;#160;* @param &amp;lt;string&amp;gt; id 对象的id</span><br id="uyeu64" style="background-color: rgb(255, 255, 255); color: rgb(255, 0, 255);" />
<span style="background-color: rgb(255, 255, 255); color: rgb(255, 0, 255);" id="sd-b2">
&amp;#160;* @return 返回HTML对象</span><br id="uyeu65" style="background-color: rgb(255, 255, 255); color: rgb(255, 0, 255);" />
<span style="background-color: rgb(255, 255, 255); color: rgb(255, 0, 255);" id="sd-b3">
&amp;#160;*/</span><br id="uyeu66" />
<span style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255);" id="bjrw">
function G(id) {</span><br id="uyeu67" style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255);" />
<span style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255);" id="bjrw0">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; return document.getElementById(id) || document.all[id];</span><br id="uyeu68" style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255);" />
<span style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255);" id="bjrw1">
}</span><br id="uyeu69" />

<br id="uyeu70" />
<span style="color: rgb(255, 0, 255);" id="qyb:">
// 测试数组</span><br id="uyeu71" />
<span style="color: rgb(0, 0, 255);" id="fnkd">
var StringArrTest = {</span><br id="uyeu72" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="fnkd0">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;htmlString : [&amp;quot;&amp;lt;a href=\&amp;quot;#\&amp;quot;&amp;gt;link&amp;lt;/a&amp;gt;&amp;quot;,
&amp;quot;&amp;lt;span&amp;gt;span&amp;lt;/span&amp;gt;&amp;quot;, &amp;quot;&amp;lt;strong&amp;gt;strong&amp;lt;/strong&amp;gt;&amp;quot;],</span><br id="uyeu73" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="fnkd1">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;className : [&amp;quot;link&amp;quot;, &amp;quot;span&amp;quot;, &amp;quot;strong&amp;quot;],</span><br id="uyeu74" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="fnkd2">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;events : [&amp;quot;mouseover&amp;quot;, &amp;quot;mouseout&amp;quot;, &amp;quot;click&amp;quot;, &amp;quot;dblclick&amp;quot;],</span><br id="uyeu75" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="fnkd3">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;color : [&amp;quot;fefaf5&amp;quot;, &amp;quot;f4f4f9&amp;quot;, &amp;quot;F7BC44&amp;quot;, &amp;quot;65D6A0&amp;quot;]</span><br id="uyeu76" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="fnkd4">
}</span><br id="uyeu77" />

<br id="uyeu78" />
<span style="color: rgb(102, 102, 102);" id="qyb:0">
/<span style="color: rgb(255, 0, 255);" id="qyb:1">/ 事件与函数对应的对象</span></span><br id="uyeu79" />
<span style="color: rgb(0, 0, 255);" id="y5lt">
var EventsBindFunction = {</span><br id="uyeu80" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt0">
&amp;#160;&amp;#160;&amp;#160; &amp;quot;mouseover&amp;quot; : &amp;quot;onDivOver&amp;quot;,</span><br id="uyeu81" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt1">
&amp;#160;&amp;#160;&amp;#160; &amp;quot;mouseout&amp;quot;&amp;#160; : &amp;quot;onDivOut&amp;quot;,</span><br id="uyeu82" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt2">
&amp;#160;&amp;#160;&amp;#160; &amp;quot;click&amp;quot;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : &amp;quot;onDivClick&amp;quot;,</span><br id="uyeu83" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt3">
&amp;#160;&amp;#160;&amp;#160; &amp;quot;dblclick&amp;quot;&amp;#160; : &amp;quot;onDivDblClick&amp;quot;,&amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu84" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt4">
&amp;#160;&amp;#160;&amp;#160; &amp;quot;color&amp;quot; : StringArrTest.color,</span><br id="uyeu85" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt5">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu86" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt6">
&amp;#160;&amp;#160;&amp;#160; onDivOver : function() {</span><br id="uyeu87" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt7">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; window.status = (this.innerHTML + &amp;quot; : onDivOver&amp;quot; );</span><br id="uyeu88" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt8">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; this.style.background = &amp;quot;#&amp;quot; + EventsBindFunction[&amp;quot;color&amp;quot;][0];</span><br id="uyeu89" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt9">
&amp;#160;&amp;#160;&amp;#160; },</span><br id="uyeu90" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt10">
&amp;#160;&amp;#160;&amp;#160; onDivOut : function() {</span><br id="uyeu91" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt11">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; window.status = (this.innerHTML + &amp;quot; : onDivOut&amp;quot;);</span><br id="uyeu92" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt12">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; this.style.background = &amp;quot;#&amp;quot; + EventsBindFunction[&amp;quot;color&amp;quot;][1];</span><br id="uyeu93" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt13">
&amp;#160;&amp;#160;&amp;#160; },</span><br id="uyeu94" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt14">
&amp;#160;&amp;#160;&amp;#160; onDivClick : function() {</span><br id="uyeu95" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt15">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; window.status = (this.innerHTML + &amp;quot; : onDivClick&amp;quot;);</span><br id="uyeu96" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt16">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; this.style.background = &amp;quot;#&amp;quot; + EventsBindFunction[&amp;quot;color&amp;quot;][2];</span><br id="uyeu97" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt17">
&amp;#160;&amp;#160;&amp;#160; },</span><br id="uyeu98" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt18">
&amp;#160;&amp;#160;&amp;#160; onDivDblClick : function() {</span><br id="uyeu99" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt19">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; window.status = (this.innerHTML + &amp;quot; : onDivDblClick&amp;quot;);</span><br id="uyeu100" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt20">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; alert(this.innerHTML);</span><br id="uyeu101" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt21">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; this.style.background = &amp;quot;#&amp;quot; + EventsBindFunction[&amp;quot;color&amp;quot;][3];</span><br id="uyeu102" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt22">
&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu103" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="y5lt23">
}</span><br id="uyeu104" />

<br id="uyeu105" />

<br id="uyeu106" />
<span style="color: rgb(0, 0, 255);" id="zkki">
var functionAction = function() {</span><br id="uyeu107" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="zkki0">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; this.color = StringArrTest.color;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu108" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="zkki1">
}</span><br id="uyeu109" />

<br id="uyeu110" />

<br id="uyeu111" />
<span style="color: rgb(255, 0, 255);" id="onsc">
/*</span><br id="uyeu112" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc0">
&amp;#160;* @description HTML字符串实例，返回HTML字符串</span><br id="uyeu113" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc1">
&amp;#160;* @param &amp;lt;string&amp;gt; elemStr 可以是HTML元素字串</span><br id="uyeu114" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc2">
&amp;#160;* @param &amp;lt;int&amp;gt; index 当前序号</span><br id="uyeu115" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc3">
&amp;#160;* @return &amp;lt;string&amp;gt; HTML字符串</span><br id="uyeu116" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc4">
&amp;#160;*/</span><br id="uyeu117" />
<span style="color: rgb(0, 0, 255);" id="onsc5">
function templateInstance(elemStr, index) {</span><br id="uyeu118" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc6">
&amp;#160; return &amp;quot;&amp;lt;div class=\&amp;quot;&amp;quot; + getClassName(StringArrTest.className,
index) + &amp;quot;\&amp;quot;&amp;gt;&amp;quot; + elemStr + &amp;quot; &amp;quot; + index + &amp;quot; &amp;lt;/div&amp;gt;&amp;quot;&amp;#160; ;</span><br id="uyeu119" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc7">
}</span><br id="uyeu120" />

<br id="uyeu121" />
<span style="color: rgb(255, 0, 255);" id="onsc8">
/*</span><br id="uyeu122" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc9">
&amp;#160;* @description 设置class</span><br id="uyeu123" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc10">
&amp;#160;* @param &amp;lt;array&amp;gt; arr 可以是HTML元素字串</span><br id="uyeu124" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc11">
&amp;#160;* @param &amp;lt;int&amp;gt; index 序号</span><br id="uyeu125" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc12">
&amp;#160;* @return &amp;lt;string&amp;gt; 返回class名称</span><br id="uyeu126" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc13">
&amp;#160;*/</span><br id="uyeu127" />
<span style="color: rgb(0, 0, 255);" id="onsc14">
function getClassName(arr, index) {</span><br id="uyeu128" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc15">
&amp;#160;&amp;#160;&amp;#160; return arr[index];</span><br id="uyeu129" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc16">
}</span><br id="uyeu130" />

<br id="uyeu131" />
<span style="color: rgb(255, 0, 255);" id="onsc17">
/**</span><br id="uyeu132" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc18">
&amp;#160;* @description 给指定对象下的子集加装指定事件</span><br id="uyeu133" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc19">
&amp;#160;* @param &amp;lt;element&amp;gt; obj HTML element 对象</span><br id="uyeu134" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc20">
&amp;#160;* @param &amp;lt;array&amp;gt; eve 需要绑载的事件数组 </span><br id="uyeu135" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="onsc21">
&amp;#160;*/</span><br id="uyeu136" />
<span style="color: rgb(0, 0, 255);" id="onsc22">
function addEventsForArray(obj, eve) {</span><br id="uyeu137" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc23">
&amp;#160;&amp;#160;&amp;#160; for (var j = 0; j &amp;lt;eve.length; j++ ) {</span><br id="uyeu138" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc24">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu139" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc25">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; // 用匿名函数执行作用域</span><br id="uyeu140" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc26">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; ( function() {</span><br id="uyeu141" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc27">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; var eves = eve[j];</span><br id="uyeu142" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc28">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu143" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc29">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; obj[&amp;quot;on&amp;quot; + eves] = function() {</span><br id="uyeu144" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc30">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; // 绑定相应函数</span><br id="uyeu145" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc31">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;document.title = eves;</span><br id="uyeu146" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc32">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; }</span><br id="uyeu147" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc33">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu148" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc34">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu149" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc35">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; )();</span><br id="uyeu150" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc36">
&amp;#160;&amp;#160;&amp;#160; }</span><br id="uyeu151" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="onsc37">
}</span><br id="uyeu152" />

<br id="uyeu153" />
<span style="color: rgb(255, 0, 255);" id="s8lc">
/**</span><br id="uyeu154" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="s8lc0">
&amp;#160;* @description 给指定对象下的子集加装指定事件，且给该事件指定具体行为</span><br id="uyeu155" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="s8lc1">
&amp;#160;* @param &amp;lt;element&amp;gt; obj HTML element 对象</span><br id="uyeu156" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="s8lc2">
&amp;#160;* @param &amp;lt;array&amp;gt; arr 需要绑载的事件数组 </span><br id="uyeu157" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="s8lc3">
&amp;#160;* @param &amp;lt;object&amp;gt; eventFnObject 事件函数对象</span><br id="uyeu158" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="s8lc4">
&amp;#160;*/</span><br id="uyeu159" />
<span style="color: rgb(0, 0, 255);" id="pnrc">
function addFnForArray(obj, arr, eventFnObject) {&amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu160" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc0">
&amp;#160;&amp;#160;&amp;#160; var childDiv = obj.getElementsByTagName(&amp;quot;div&amp;quot;);</span><br id="uyeu161" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc1">
&amp;#160;&amp;#160;&amp;#160; var eve = arr ;</span><br id="uyeu162" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc2">
&amp;#160;&amp;#160;&amp;#160; var fn = new functionAction();</span><br id="uyeu163" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc3">
&amp;#160;&amp;#160;&amp;#160; //alert(ov.toString());</span><br id="uyeu164" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc4">
&amp;#160;&amp;#160;&amp;#160; for(var i = 0; i &amp;lt; childDiv.length; i++) {</span><br id="uyeu165" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc5">
&amp;#160;&amp;#160;&amp;#160; //循环所有的子对象</span><br id="uyeu166" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc6">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; for(var j = 0; j &amp;lt; eve.length; j++) {</span><br id="uyeu167" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc7">
&amp;#160;&amp;#160;&amp;#160; // 循环所有的事件</span><br id="uyeu168" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc8">
&amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu169" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc9">
&amp;#160;&amp;#160;&amp;#160; //匿名函数给每个对象上加装事件</span><br id="uyeu170" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc10">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; (&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu171" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc11">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; function() {</span><br id="uyeu172" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc12">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; var child&amp;#160;&amp;#160; = childDiv[i];</span><br id="uyeu173" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc13">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; var onEvent = eve[j];</span><br id="uyeu174" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc14">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu175" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc15">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; switch(onEvent) {</span><br id="uyeu176" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc16">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; case onEvent : </span><br id="uyeu177" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc17">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;child[&amp;quot;on&amp;quot; + onEvent] = eventFnObject[ eventFnObject[onEvent] ];</span><br id="uyeu178" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc18">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;// 给该对象的时间挂载指定的函数,eventFnObject里有同名对应的函数</span><br id="uyeu179" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc19">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;// div[&amp;quot;onclick&amp;quot;] = eventFnObject[&amp;quot;onDivClick&amp;quot;];</span><br id="uyeu180" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc20">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;</span><br id="uyeu181" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc21">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; default&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : null;</span><br id="uyeu182" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc22">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; }</span><br id="uyeu183" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc23">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu184" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc24">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; }</span><br id="uyeu185" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc25">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; )();&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu186" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc26">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;}</span><br id="uyeu187" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc27">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;}</span><br id="uyeu188" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc28">
}</span><br id="uyeu189" />

<br id="uyeu190" />
<span style="color: rgb(255, 0, 255);" id="pnrc29">
/**</span><br id="uyeu191" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="pnrc30">
&amp;#160;* @description 例子1，扩展Array原型fold方法</span><br id="uyeu192" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="pnrc31">
&amp;#160;* @param &amp;lt;function&amp;gt; templateFn 一个函数对象</span><br id="uyeu193" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="pnrc32">
&amp;#160;* @return &amp;lt;string&amp;gt; str 返回HTML字符串</span><br id="uyeu194" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="pnrc33">
&amp;#160;*/</span><br id="uyeu195" />
<span style="color: rgb(0, 0, 255);" id="pnrc34">
Array.prototype.fold = function(templateFn) {</span><br id="uyeu196" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc35">
&amp;#160; var len = this.length;</span><br id="uyeu197" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc36">
&amp;#160; var str = &amp;quot;&amp;quot;;</span><br id="uyeu198" style="color: rgb(0, 0, 255);" />

<br id="uyeu199" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc37">
&amp;#160; for(var i = 0 ; i &amp;lt; len ; i++) {</span><br id="uyeu200" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc38">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; str += ( templateFn(this[i], i) );</span><br id="uyeu201" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc39">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; // templateFn是传递过来的函数，这个函数数里面可以来组合HTML</span><br id="uyeu202" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc40">
&amp;#160;&amp;#160;&amp;#160; }</span><br id="uyeu203" style="color: rgb(0, 0, 255);" />

<br id="uyeu204" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc41">
&amp;#160; return str;</span><br id="uyeu205" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc42">
}</span><br id="uyeu206" />

<br id="uyeu207" />
<span style="color: rgb(0, 0, 255);" id="pnrc43">
G(&amp;quot;div1&amp;quot;).innerHTML = (StringArrTest.htmlString.fold(templateInstance));</span><br id="uyeu208" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc44">
addFnForArray(G(&amp;quot;div1&amp;quot;), StringArrTest.events, EventsBindFunction);</span><br id="uyeu209" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc45">
addEventsForArray(G(&amp;quot;div1&amp;quot;), StringArrTest.events);<br id="pnrc46" />
</span><br id="uyeu210" />
<span style="color: rgb(255, 0, 255);" id="pnrc47">
/**</span><br id="uyeu211" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="pnrc48">
&amp;#160;* @description 例子2，把字符串模板函数作为参数来调用，生成HTML字符串</span><br id="uyeu212" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="pnrc49">
&amp;#160;* @param &amp;lt;array&amp;gt; arr 数组，组合HTML用</span><br id="uyeu213" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="pnrc50">
&amp;#160;* @param &amp;lt;function&amp;gt; templateFn 组合HTML用的函数</span><br id="uyeu214" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="pnrc51">
&amp;#160;* @return &amp;lt;string&amp;gt; str 返回HTML字符串</span><br id="uyeu215" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="pnrc52">
&amp;#160;*/</span><br id="uyeu216" />
<span style="color: rgb(0, 0, 255);" id="pnrc53">
function genderHTML(arr, templateFn) {</span><br id="uyeu217" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc54">
&amp;#160;&amp;#160;&amp;#160; var len = arr.length;</span><br id="uyeu218" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc55">
&amp;#160;&amp;#160;&amp;#160; var str = &amp;quot;&amp;quot;;</span><br id="uyeu219" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc56">
&amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu220" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc57">
&amp;#160;&amp;#160;&amp;#160; for(var i = 0 ; i &amp;lt; len ; i++) {&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu221" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc58">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; str += ( templateFn(arr[i], i) );</span><br id="uyeu222" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc59">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; // 调用生成HTML字符串的函数</span><br id="uyeu223" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc60">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; }</span><br id="uyeu224" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc61">
&amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu225" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc62">
&amp;#160;&amp;#160;&amp;#160; return str;</span><br id="uyeu226" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc63">
}</span><br id="uyeu227" />

<br id="uyeu228" />
<span style="color: rgb(0, 0, 255);" id="pnrc64">
G(&amp;quot;div2&amp;quot;).innerHTML = ( genderHTML(StringArrTest.htmlString, templateInstance) );</span><br id="uyeu229" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc65">
addFnForArray(G(&amp;quot;div2&amp;quot;), StringArrTest.events, EventsBindFunction);</span><br id="uyeu230" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="pnrc66">
addEventsForArray(G(&amp;quot;div2&amp;quot;), StringArrTest.events);<br id="pnrc67" />
</span><br id="uyeu231" />

<br id="uyeu232" />
<span style="color: rgb(255, 0, 255);" id="znz0">
/**</span><br id="uyeu233" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="znz00">
&amp;#160;* @description 例子3。常见的普通例子，直接返回HTML字符串</span><br id="uyeu234" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="znz01">
&amp;#160;* @param &amp;lt;array&amp;gt; arr 数组，组合HTML用</span><br id="uyeu235" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="znz02">
&amp;#160;* @return &amp;lt;string&amp;gt; str 返回HTML字符串</span><br id="uyeu236" style="color: rgb(255, 0, 255);" />
<span style="color: rgb(255, 0, 255);" id="znz03">
&amp;#160;*/</span><br id="uyeu237" />
<span style="color: rgb(0, 0, 255);" id="eyz1">
function getHTML(arr) {</span><br id="uyeu238" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz10">
&amp;#160;&amp;#160;&amp;#160; var len = arr.length;</span><br id="uyeu239" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz11">
&amp;#160;&amp;#160;&amp;#160; var str = &amp;quot;&amp;quot;;</span><br id="uyeu240" style="color: rgb(0, 0, 255);" />

<br id="uyeu241" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz12">
&amp;#160;&amp;#160;&amp;#160; for (var i = 0; i &amp;lt; len; i++) {</span><br id="uyeu242" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz13">
&amp;#160;&amp;#160;&amp;#160; &amp;#160; var elemStr = arr[i];</span><br id="uyeu243" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz14">
&amp;#160;&amp;#160;&amp;#160; &amp;#160; str += (&amp;quot;&amp;lt;div class=\&amp;quot;&amp;quot; + StringArrTest.className[i] + &amp;quot;\&amp;quot;&amp;gt;&amp;quot; + elemStr + &amp;quot; &amp;quot; + i + &amp;quot; &amp;lt;/div&amp;gt;&amp;quot; ); </span><br id="uyeu244" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz15">
&amp;#160;&amp;#160;&amp;#160; &amp;#160; // 拼接字符串，会比较长，不采用外调函数的方式</span><br id="uyeu245" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz16">
&amp;#160;&amp;#160;&amp;#160; }</span><br id="uyeu246" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz17">
&amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu247" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz18">
&amp;#160;&amp;#160;&amp;#160; var eve = StringArrTest.events;</span><br id="uyeu248" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz19">
&amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu249" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz110">
&amp;#160;&amp;#160;&amp;#160; for (var j = 0; j &amp;lt;eve.length; j++ ) {</span><br id="uyeu250" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz111">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu251" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz112">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; // 用匿名函数执行作用域，跟addEventsForArray一致</span><br id="uyeu252" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz113">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; ( function() {</span><br id="uyeu253" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz114">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; var eves = eve[j];</span><br id="uyeu254" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz115">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu255" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz116">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; G(&amp;quot;div3&amp;quot;)[&amp;quot;on&amp;quot; + eves] = function() {</span><br id="uyeu256" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz117">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; // 绑定相应函数</span><br id="uyeu257" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz118">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;document.title = eves;</span><br id="uyeu258" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz119">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; }</span><br id="uyeu259" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz120">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu260" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz121">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; </span><br id="uyeu261" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz122">
&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; )();</span><br id="uyeu262" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz123">
&amp;#160;&amp;#160;&amp;#160; }</span><br id="uyeu263" style="color: rgb(0, 0, 255);" />

<br id="uyeu264" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz124">
&amp;#160;&amp;#160;&amp;#160; return str;</span><br id="uyeu265" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz125">
}</span><br id="uyeu266" />

<br id="uyeu267" />

<br id="uyeu268" />
<span style="color: rgb(0, 0, 255);" id="eyz126">
G(&amp;quot;div3&amp;quot;).innerHTML = (getHTML(StringArrTest.htmlString));</span><br id="uyeu269" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz127">
addFnForArray(G(&amp;quot;div3&amp;quot;), StringArrTest.events, EventsBindFunction);</span><br id="uyeu270" />

<br id="uyeu271" />

//--&amp;gt;<br id="uyeu272" />

&amp;lt;/script&amp;gt;<br id="uyeu273" />

代码如下：&amp;lt;br/&amp;gt;<br id="uyeu274" />

&amp;lt;textarea id=&amp;quot;code&amp;quot; cols=&amp;quot;120&amp;quot; rows=&amp;quot;20&amp;quot; style=&amp;quot;font-size:12px;background:#ffe&amp;quot;&amp;gt;<br id="uyeu275" />

&amp;lt;/textarea&amp;gt;<br id="uyeu276" />

&amp;lt;script&amp;gt;<br id="uyeu277" />
<span style="color: rgb(0, 0, 255);" id="eyz128">
(function() {</span><br id="uyeu278" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz129">
&amp;#160;&amp;#160;&amp;#160; var scriptObj = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];</span><br id="uyeu279" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz130">
&amp;#160;&amp;#160;&amp;#160; G(&amp;quot;code&amp;quot;).value = (scriptObj.innerHTML);</span><br id="uyeu280" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz131">
}</span><br id="uyeu281" style="color: rgb(0, 0, 255);" />
<span style="color: rgb(0, 0, 255);" id="eyz132">
)();</span><br id="uyeu282" />

&amp;lt;/script&amp;gt;<br id="uyeu283" />

参考<br id="uyeu284" />
<a id="e4d5" href="http://www.ibm.com/developerworks/cn/web/wa-javascript.html" title="http://www.ibm.com/developerworks/cn/web/wa-javascript.html">http://www.ibm.com/developerworks/cn/web/wa-javascript.html</a> <br id="uyeu285" />
<a id="n1ht" href="http://shiningray.cn/functional_javascript_programming.html" title="http://shiningray.cn/functional_javascript_programming.html">http://shiningray.cn/functional_javascript_programming.html</a> <br id="uyeu286" />
<a id="oaxh" href="http://www.javaeye.com/topic/101055?page=1" title="http://www.javaeye.com/topic/101055?page=1">http://www.javaeye.com/topic/101055?page=1</a> <br id="uyeu287" />
<a id="x.j7" href="http://www.infoq.com/cn/news/2008/03/revoerability-and-testing-oo-fp" title="http://www.infoq.com/cn/news/2008/03/revoerability-and-testing-oo-fp">http://www.infoq.com/cn/news/2008/03/revoerability-and-testing-oo-fp</a> <br id="uyeu288" />
<a id="tyry" href="http://www.cnblogs.com/RChen/archive/2007/07/24/829755.html" title="http://www.cnblogs.com/RChen/archive/2007/07/24/829755.html">http://www.cnblogs.com/RChen/archive/2007/07/24/829755.html</a> <br id="uyeu289" />

&amp;lt;/body&amp;gt;<br id="uyeu290" />

&amp;lt;/html&amp;gt;<br id="uyeu291" />

<br id="uyeu292" />

本次试验主要在函数调用函数以及采用匿名函数挂载事件上，感觉确实有他的好处。采用面向对象实现可能会更复杂，而一般的函数编程会把一个函数搞得很复杂，读起来会比较累。总体感觉是，确实不错的样子。<br id="uyeu294" />

当然了，在实际开发过程中哦，我还是推崇面向对象的。无论Java、PHP、JavaScript等，面向对象确实让程序变得更简单、更具有复用和可维护
性。但是，毋庸置疑，函数式编程对于OOP将是一个很好的补充。在OOP的大框架里，有时采用一下函数式风格，确实能解决一些问题。
就好象对于事件的处理，如果采用匿名函数来配合，那一切要变得方便的多。<br id="uyeu297" />


      <br id="hmq43" />]]></description> 
<guid isPermaLink="false">6768082@http://jiarry.bokee.com/</guid> 
<dc:subject>Web 开发</dc:subject> 
<dc:date>2008-07-25T19:12:20Z</dc:date> 
</item> 
<item> 
<title><![CDATA[《赤壁》不像网上说的那么没水准啊]]></title> 
<link>http://jiarry.bokee.com/6764905.html</link> 
<description><![CDATA[
昨天在万达影院看了一场《赤壁》，2个多小时，让我充分享受了影音娱乐带来的视听感受。<br /><br />不太同意网络上众多的笑场，<a href="http://ent.sina.com.cn/f/m/chibi/index.shtml">http://ent.sina.com.cn/f/m/chibi/index.shtml </a>新浪网整理了相关的一些信息。很全面，可以先看一下。<br /><br />我在看《赤壁》之前就看到了网上很多关于赤壁的评论，主要以吴导以美国式幽默演绎《赤壁》遭到的笑场。<br />比如：<br />1、曹操为美女而战，曰：“欲望使人年轻”<br />2、诸葛亮“略懂”，以及“需要冷静”和给鸽子洗澡<br />3、周瑜“也需要冷静”<br />4、张飞练书法，刘备劝吃饭、织草鞋，关云长教书<br />5、孙尚香“匹女” ，鲁肃“匹马”<br />另外，也对《赤壁》未眼遵照史实而讨伐，如：<br />1、比如关羽的赤兔马，以及没有参加<br />2、曹操为了一个女人而战<br />3、武将亲自出阵杀戮<br /><br />正是因为原来看到诸多的评论，才下定决心一定要看看究竟是否果真如此。<br />看完之后，发现这是一部好片子，并不像一些网友评价的那样。尤其有些网友在看完之后，大骂特骂，认为“不仅缺乏美学品位和人文价值，即便是制作水平也只能用平庸来形容，甚至音乐也不能留给人任何印象，片尾的那首所谓“主题曲”也毫无特色。
《赤壁》不仅平庸，而且媚俗，低估了观众的电影鉴赏能力，至少从我而言，没有听到周围任何一个人从正面评价这部超级大片的”<br /><br />我想对这位作者说，你不懂电影。尤其不懂得功夫、战争片和烂漫主义的史诗巨片。缺乏美学我不知道他是怎么看出来的，如此波澜壮阔的气势怎么就不美？如此忠勇仁爱怎么就不美？至于制作水平，我觉得目前国内没有比《赤壁》更好的，除张艺谋勉强堪比，陈、冯等拍的均不及此。音乐，确实稍显一般，但是里面的悠扬的笛声和瑜亮的琵琶合奏确属上佳之作，战争中的鼓角争鸣时声效气势磅礴，万船齐发时也有雷霆万钧之势。怎么那位仁兄就听不到呢？<br /><br />至于与史实有出入，我想如果差别不大，没有超出必要限制，作为一种艺术，可以有所夸张放大。你想下《三国演义》有多少人物被神话了呢？苏东坡的《念奴娇·赤壁怀古》呢？那里还有小乔初嫁了。其实关于赤壁是否完全符合史实没有必要上升到学术范畴的讨论，毕竟这不是历史纪实篇。这只是一部来有浪漫主义色彩的娱乐电影。对于电影艺术来讲，你不能过分较真。否则，那种万船航行的气势哪里得来？那种一夫当关、万夫莫开的精彩打斗哪里会有？我想无论是诸葛亮“略懂”、“冷静”，还是关羽徒步杀敌，抑或张飞写隶属都不为过。因为，为了戏剧的需要可以有那么一点让人觉着好玩的东西。当然了，什么孙尚香“匹女” 以及点穴，抗拒和亲，还有足球(蹴鞠好像是宋朝的事，而《赤壁》里出来的竟然是足球)等，确实有些搞笑，让人看了甚觉无趣。<br /><br />但是，相比之下，虽难及《阿甘》、《勇敢的心》之类的，但是亦可与《指环王》媲美。<br /><br />想起<a target="_blank" class="akey" href="http://ent.sina.com.cn/m/c/f/yingx/index.shtml"><span class="keyword">《英雄》</span></a><a target="_blank" class="akey" href="http://www.thepromise.sina.com.cn/"><span class="keyword">《无极》</span></a><a target="_blank" class="akey" href="http://www.yeyan.sina.com.cn/"><span class="keyword">《夜宴》</span></a><a target="_blank" class="akey" href="http://ent.sina.com.cn/f/m/mchj/index.shtml"><span class="keyword">《满城尽带黄金甲》，</span></a><br />这些才是那位仁兄所说的平庸的大片，《无极》都不能入列到这行，只能算是无聊的片子。《赤壁》其实正是一部真正意义上的大片。<br /><br />看下有这么介绍的：<br />那是个英雄辈出的乱世，情义重，死生轻——明知凶险仍杀入敌阵，浴血带回主公之子，是人臣之义；单枪匹马拖住敌众，是兄弟之义；宁可损兵折将也要护得百姓
周全，是仁爱之义；不发一言全凭抚琴神交，是知音之义；乱军丛中帮赵云身挡一箭，是英雄相惜之义；受人一箭之恩便知日后图报，是君子涌泉之义；一个不肯背
后伤人，另一个宁愿放虎归山，是敌我对手之义……<br /><br />还有什么比这更意义呢？可以说，《赤壁》有情有义，有精彩绝伦的打斗厮杀，有美景如画的场景……<br /><br />http://ent.sina.com.cn/r/m/2008-07-11/05482096816.shtml<br />http://blog.sina.com.cn/s/blog_482580270100aspu.html<br />http://ent.sina.com.cn/r/2008-07-11/14002097293.shtml<br /><br /><br />
]]></description> 
<guid isPermaLink="false">6764905@http://jiarry.bokee.com/</guid> 
<dc:subject>我的生活</dc:subject> 
<dc:date>2008-07-21T11:57:06Z</dc:date> 
</item> 
<item> 
<title><![CDATA[奥运单双号行驶]]></title> 
<link>http://jiarry.bokee.com/6764859.html</link> 
<description><![CDATA[
奥运是越来越近了，走在北京的大街小巷里，随处可见奥运的气息。昨天，北京正式施行单双号行驶计划--在7.20到9.20期间，非营运的机动车按车牌尾数的单双号出行。<br /><br />我昨天出去了一趟，从北五环一直走到西南四环。刚开始驾车出来时，周围车辆较少，路面明显比平时空旷。但是，进入主干道以后，尤其是经过鸟巢附进的亚运村，鸟巢附近仍然交通管制，再加上路边划出了专门的公交专线以及奥运专线，就感觉基本上跟之前的差不太多。也许在高峰时期，会感觉更通畅一些吧。因为若在平时的高峰期，这个路段是非常拥堵的。<br /><br />根据提示，夜里3点至5点是不限单双号行驶的，所以若有事夜里仍是可以出行的。<br /><br />今天周一是个单日，所以坐城铁来上的班。发现城铁充值改成机器柜员自动的了，这对于提高效率以及节省人力成本来讲大有好处啊。不用排长，也不用看原来售票员不屑的脸色，感受是方便多了。就是人力成本节省之后，不知道原来地铁公司的售票员是否要下岗？<br /><br />充值是方便了，但进站的时候需要进行严格的安检，跟乘长途列车类似。这下，原本拥挤的大厅就排满了长队。因为都是上班，大家都带着公文包之类的，都要进行磁检，有些还要打开包来接受检验。下车出站时，还要刷卡出站。由于之前实行的一票制，出站并不刷卡，所以一下感觉并不习惯。而且似乎出站的机器总是有问题，不时地要求重刷卡。大家出站时明显比平时慢了很多。不太清楚出站刷卡的目的，我想大概是为了以后按里程收费，或者记录客流量吧，抑或为了安全？<br /><br />总之，奥运的到来，能感受到政府做了很多的工作。一切都是为了平安、绿色、和谐的奥运会，为了这场牵动亿万人的心的运动会成功召开。但是，如何能真正做到这一点，真正体现高度文明奥林匹克精神，这仍将是个非常大的挑战。<br />]]></description> 
<guid isPermaLink="false">6764859@http://jiarry.bokee.com/</guid> 
<dc:subject>我的生活</dc:subject> 
<dc:date>2008-07-21T10:19:14Z</dc:date> 
</item> 
<item> 
<title><![CDATA[读范泡泡的《追寻有意义的教育》]]></title> 
<link>http://jiarry.bokee.com/6757470.html</link> 
<description><![CDATA[很好的一段文章《<a href="http://blog.sina.com.cn/s/blog_52ee4aef01009gy8.html">追寻有意义的教育</a>》，最近炒得这么火热的Runing Fan。本来对这个人一无所知，但是从过他的博文，让我了解到Fan确实是个人才。至少在做很纯粹的事情、很坦然、很自我、很个性，只是不知道为何，活到他那样居然还郁闷痛苦，如此可以发挥个性，张扬自我，完全不会受限某个圈子、某个职业、某个身份该是多么爽快的一件事。<br /><br />我很难想象批评他们的人，直接只要对Fan多一些了解，看他的文章，就会发现范美忠其实是一个有血有肉、不屈不挠的汉子，真性情中人也。<br /><br />但看到这些段时，感触颇深，怎么就那么多人不去理解呢？有的只是罪责于范美忠弃学生而逃。<br /><br />上北大的第一年是军训。我受到很大震动，因为突然间我觉得自己的优势不仅全没了，而且在某些方面还很无知，很无能。我不会唱歌，不会跳舞，也不会踢足球！
同寝室的北京同学听的唱的英文歌曲和摇滚我闻所未闻；他们还看米兰？昆德拉等作家的小说，这些人的名字都是我所不知道的，当时我甚至还看不懂。这时我才发
现，他们的见识远在我之上。我被应试教育教傻了！虽然在高中时，我是同学中公认的比较喜欢读课外书，知识也比较渊博的人，但大城市和农村，重点中学和一般
中学的环境差异造成了这样的结果。<br /><br />到大四时，我已经觉得要成为学贯古今中西的学术大师的梦想恐怕不太可能实现了，于是，我产生了要到中学去，改变基础教育现状的强烈冲动。我为当代中国没有
思想大师、文学大师、史学大师感到深深的遗憾！我想：未来的大师应该由我培养出来。要是能培养出鲁迅、王国维这样的人，我该是多么幸福呀！<br /><br />虽然自己读了很多书，但我发现，这些书对我的工作帮助并不大，或者说这固然是一个基础，但却不能直接转化为工作能力。因为一般的工作都用不上这么高端的文
学、学术知识和思想。一般来说，这些工作需要的是综合能力，比如要同时具备外语的听、说、读、写能力、电脑的操作能力、对新闻的敏感和策划能力、协调人际
关系的能力、创造能力、基于具体工作需要的实践能力，还有就是不断学习的能力和迎接挑战的精神。<br /><br /><br />其实他内心的孤苦是无人能支持他，至少无人能同情他，能听他倾诉。一个从未说过的人，从他字里行间都到了思想和拼搏与孤独。<br /><br />最后一位老师说的看似挺好，但是仔细看下就觉得什么也没说，这个话无可挑剔，考虑周全，但是有什么实际作用吗？<br /><br />老师的评价则复杂得多：
<p>　
不可否认范老师学识的渊博，思想的深刻，他的课可能很受学生（尤其是处于青春期极具叛逆精神的中学生）欢迎，范老师在大学的课堂里可能还能立足，但在中学
的课堂中，个人感觉不是很合适……课堂上如果不跟随教纲、考纲，结果只能是在高考中吃亏。中国的教育需要改革，是不争的趋势和事实，国家的考试评价体系，
教材的设置体系，教师的课堂教育，学生的学习模式等等，改革必须是各方面配套进行的，绝对不是靠一个老师或几个老师的几堂素质课就可以解决的，试问抛开教
材，单纯讲学生认可的内容……结果会是什么？如果最后不能上大学，家长又有几个说无所谓的？</p>但是，你仔细想想。如果没有像范老师这样的人站出来喊，站出来跟大家说，体制改革能进行的了吗？范老师跟杨恒均<a href="http://yanghengjun.blog.hexun.com/">http://yanghengjun.blog.hexun.com/</a>非常像，观点略有超前，看似与现实不符。但是如果没有这些人在推广，如何才能迎来新的变革？我对他们的感觉是上个世纪的5.4新青年。他们称道的终究会是方向！人们，尤其是现有的一些精英或者既得利益者虽说不去跟着冒进，但是绝对不应该去反对或是恶毒的批判！<br /><br />从范老师的地震逃跑，没有照看学生这件事让范老师出名了，这下更多的人了解到了他的思想。替他高兴也。不过对于是应该危难时刻首先保护自己？还是危难时刻舍己为人？这个事情我觉得无需多言，道德应该是有底线的，舍己为人不是道德基本要求，而是神圣的要求。对于不害人、不作恶、危难时刻也没有舍己为人的人，人们不应该罪责。而反过来，对于舍己为人、乐于助人的人应该加以鼓励和表彰，毕竟这不是常人能做到的。所以，这里根本就用评论范跑跑的行为。当然了，范老师在博客上宣扬自己为保护自己的利益而离弃学生的作为也不太好，你自己这么做了，不要当作示范，宣传给大家。对于这一点，我觉得我如果处于范老师的情境，我会选择喊大家一起离开，去帮助大家。不过，如果当时没这么做，也不会觉得怎么样？毕竟，只是做出了自己最想做的事情，而这件事是合乎法律和行为规范的。<br /><br />对于那些罪责与范老师的人，我想说一句，不要拿自己不敢的事情(你真的舍己为人？)或者自己想(你真的乐于助人，宽容待人吗？)的来要求别人，骂一个人很简单，真遇到事情你是否仍能保持那份虚荣？我希望社会上乐于助人的人多起来，但是我希望大家都是这样，或者说不要求大家都这样。你呢？<br /><br />
]]></description> 
<guid isPermaLink="false">6757470@http://jiarry.bokee.com/</guid> 
<dc:subject>社会杂谈</dc:subject> 
<dc:date>2008-07-10T16:17:41Z</dc:date> 
</item> 
<item> 
<title><![CDATA[Linux 下安装配置 Jdk1.6+Tomcat6.0.x+MySql5.x+Apache2.2.x+jk_mod1.2+PHP5.x 简版]]></title> 
<link>http://jiarry.bokee.com/6753907.html</link> 
<description><![CDATA[                              <b id="j3k4">Linux 下安装配置 Jdk1.6+Tomcat6.0.x+MySql5.x+Apache2.2.x+jk_mod1.2+PHP5.x 简版</b><br id="j3k40" /><br id="j3k41" />本篇以Redhat AS5，内核为Linux 2.6.18-8.el5 为例，其中Redhat/Fedora系列基本一致，其他Linux或者版本均可以参考。<br id="j3k42" /><br id="j3k43" /><b id="j3k44">STEP 1</b> <br id="j3k45" /><b id="hqvq">软件下载:</b><br id="j3k46" />1. jdk1.6.x&amp;#160;&amp;#160;&amp;#160;<a id="bl:-" href="http://java.sun.com/javase/downloads/index.jsp" title="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a> <br id="j3k47" />2. tomcat6.x&amp;#160;&amp;#160; <a id="o.yx" href="http://tomcat.apache.org/download-60.cgi" title="http://tomcat.apache.org/download-60.cgi">http://tomcat.apache.org/download-60.cgi</a> <br id="j3k48" />3. mysql5.x&amp;#160;&amp;#160;&amp;#160; <a id="pdr2" href="http://dev.mysql.com/downloads/mysql/5.0.html" title="http://dev.mysql.com/downloads/mysql/5.0.html">http://dev.mysql.com/downloads/mysql/5.0.html</a> <br id="j3k49" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <a id="txaw" href="http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.51a-linux-i686.tar.gz/from/pick" title="http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.51a-linux-i686.tar.gz/from/pick">http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.51a-linux-i686.tar.gz/from/pick</a> <br id="j3k410" />4. JDBC connector&amp;#160;&amp;#160; <a id="lx_8" href="http://dev.mysql.com/downloads/connector/j/5.1.html" title="http://dev.mysql.com/downloads/connector/j/5.1.html">http://dev.mysql.com/downloads/connector/j/5.1.html</a> <br id="j3k411" />5. apache2.x&amp;#160;&amp;#160; <a id="j:fl" href="http://httpd.apache.org/download.cgi" title="http://httpd.apache.org/download.cgi">http://httpd.apache.org/download.cgi</a> <br id="j3k412" />6. php5.x&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; <a id="ncmf" href="http://www.php.net/downloads.php" title="http://www.php.net/downloads.php">http://www.php.net/downloads.php</a> <br id="j3k413" />7. jk_mod1.2.x&amp;#160; <a id="kgj7" href="http://tomcat.apache.org/download-connectors.cgi" title="http://tomcat.apache.org/download-connectors.cgi">http://tomcat.apache.org/download-connectors.cgi</a> <br id="j3k414" /><br id="j3k417" /><b id="j3k418">SETP 2</b><br id="j3k419" /><b id="iali">1. JDK安装</b><br id="j3k420" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;1.1&amp;#160; 解压并授权<br id="j3k421" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost webServer]$ <span style="color: rgb(255, 0, 0); background-color: rgb(255, 255, 255);" id="zyca">chmod a+r jdk-6u10-beta-linux-i586.bin </span><br id="j3k422" style="color: rgb(0, 0, 255);" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;＊＊＊ 一段许可协议 ***<br id="j3k423" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;Do you agree to the above license terms? [yes or no]<br id="j3k424" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost webServer]$ <span style="color: rgb(255, 0, 0);" id="x0y0"><span id="zyca0">yes</span></span><br id="j3k425" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;***&amp;#160; 解压过程 ***<br id="j3k426" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;Done.<br id="j3k427" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; [work@localhost webServer]$ <span style="color: rgb(255, 0, 0);" id="x0y00"><span id="zyca1">mv jdk1.6.0_10 /home/work/usr/local/</span></span><br id="j3k430" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost local]$<span style="color: rgb(0, 0, 255);" id="zyca2"> <span style="color: rgb(255, 0, 0);" id="x0y01"><span id="bs9i1">ln -s jdk1.6.0_10 jdk </span></span></span><br id="j3k431" /><br id="j3k433" />&amp;#160;&amp;#160; &amp;#160;1.2&amp;#160; 配置环境变量<br id="j3k434" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; 编辑/etc/profile文件或者在/etc/profile.d/文件下新建java.sh文件<br id="j3k435" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; [work@localhost local]$<span style="color: rgb(0, 255, 0);" id="zyca3"> <span style="color: rgb(255, 0, 0);" id="chkd"><span id="zyca4">vim /etc/profile.d/java.sh</span></span></span><br id="j3k437" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; 添加内容如下：<br id="j3k438" /><br id="j3k439" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;#set java 环境变量<br id="j3k440" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;<span style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" id="duzd">JAVA_HOME=/home/work/usr/local/jdk</span><br id="j3k441" style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" /><span style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" id="duzd0">&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;PATH=$PATH:/$JAVA_HOME/bin</span><br id="j3k442" style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" /><span style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" id="duzd1">&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;CLASSPATH=.:$JAVA_HOME/lib</span><br id="j3k443" style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" /><span style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" id="duzd2">&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;JRE_HOME=$JAVA_HOME/jre</span><br id="j3k444" style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" /><span style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" id="duzd3">&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;export JAVA_HOME PATH CLASSPATH JRE_HOME</span><br id="j3k445" /><br id="j3k446" />&amp;#160;&amp;#160; &amp;#160;1.3&amp;#160; 设置java和javac的符号连接，<br id="j3k447" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost local]#<span style="color: rgb(255, 0, 0);" id="wi4x">cd /usr/bin</span><b style="color: rgb(255, 0, 0);" id="wi4x0"> </b><br id="j3k448" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost local]#<span style="color: rgb(255, 0, 0);" id="wi4x1">su root</span><b id="de1:0">&amp;#160;</b>&amp;#160;&amp;#160;&amp;#160;&amp;#160; <br id="j3k449" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[root@localhost bin]# <span style="color: rgb(255, 0, 0);" id="wi4x2">ln -s -f /home/work/usr/local/jdk/jre/bin/java</span><br id="j3k450" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[root@localhost bin]# <span style="color: rgb(255, 0, 0);" id="wi4x3">ln -s -f /home/work/usr/local/jdk/bin/javac</span><br id="j3k451" /><br id="j3k452" />&amp;#160;&amp;#160; &amp;#160;JDK安装完成，有问题请参考：<a id="c16y" href="http://jiarry.bokee.com/2425368.html" title="http://jiarry.bokee.com/2425368.html">http://jiarry.bokee.com/2425368.html</a> <br id="j3k453" /><br id="j3k454" /><b id="iali0">2.&amp;#160; Tomcat安装</b><br id="j3k455" />&amp;#160;&amp;#160; &amp;#160;2.1&amp;#160; 解压后移动文件夹到指定目录<br id="j3k456" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost webServer]$ <span style="color: rgb(255, 0, 0);" id="chkd0">tar -zxvf apache-tomcat-6.0.16.tar.gz </span><br id="j3k457" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost webServer]$ <span style="color: rgb(255, 0, 0);" id="chkd1">mv apache-tomcat-6.0.16 /home/work/usr/local/</span><br id="j3k458" />&amp;#160;&amp;#160; &amp;#160;2.2&amp;#160; 配置环境变量<br id="j3k459" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;编辑刚新建的/etc/profile.d/java.sh文件<br id="j3k460" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;<span style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" id="chkd2">TOMCAT_HOME = /home/work/usr/local/tomcat</span><br id="j3k461" style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" /><span style="color: rgb(0, 0, 0); background-color: rgb(217, 234, 211);" id="chkd3">&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;export JAVA_HOME PATH CLASSPATH JRE_HOME TOMCAT_HOME</span><br id="j3k462" /><br id="j3k463" /><b id="iali1">3.&amp;#160;&amp;#160; &amp;#160;测试安装</b><br id="j3k464" />&amp;#160;&amp;#160; &amp;#160;3.1&amp;#160;&amp;#160; 检查环境变量和java版本&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; <br id="j3k466" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost ~]$<span style="color: rgb(255, 0, 0);" id="r.zz"> echo $JAVA_HOME</span>&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;<br id="j3k467" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;/home/work/usr/local/jdk<br id="j3k468" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost ~]$ <span style="color: rgb(255, 0, 0);" id="r.zz0">echo $PATH</span><br id="j3k469" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;输出的含有/home/work/usr/local/jdk/bin:<br id="j3k470" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost ~]$<span style="color: rgb(255, 0, 0);" id="r.zz1"> echo $CLASSPATH</span><br id="j3k471" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;.:/home/work/usr/local/jdk/lib<br id="j3k472" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;[work@localhost ~]$ <span style="color: rgb(255, 0, 0);" id="r.zz2">echo $TOMCAT_HOME</span><br id="j3k473" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;/home/work/usr/local/tomcat<br id="j3k475" />&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160; [work@localhost ~]$ <span style="color: rgb(255, 0, 0);" id="r.zz3">java -version</span><br id="j3k485" /><br id="j3k486" />&amp;#160;&amp;#160;&amp;#160; 3.2&amp;#160;&amp;#160; 启动tomcat<br id="j3k487" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost local]$ <span style="color: rgb(255, 0, 0);" id="b-t70">sh /home/work/usr/local/tomcat/bin/startup.sh</span><br id="j3k488" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 在浏览器地址栏输入&amp;#160;&amp;#160;&amp;#160; <a id="p._t" href="http://localhost:8080/" title="http://localhost:8080/">http://localhost:8080/</a>&amp;#160; <b id="w2_t"><br id="j3k490" /></b><br id="j3k491" />&amp;#160;&amp;#160;&amp;#160; 3.3&amp;#160; 给Tomcat添加项目<br id="j3k492" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 3.3.1&amp;#160; 修改tomcat/conf/server.xml：<br id="j3k493" /><br id="j3k494" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="xmzg">&amp;lt;Context path=&amp;quot;/test&amp;quot; reloadable=&amp;quot;true&amp;quot; docBase=&amp;quot;/home/work/dev/test&amp;quot;</span><br id="j3k495" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xmzg0">&amp;#160;&amp;#160;&amp;#160; workDir=&amp;quot;/home/work/usr/local/tomcat/work/test&amp;quot; /&amp;gt;</span>&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <br id="j3k4100" /><br id="j3k4101" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 3.3.2&amp;#160; 开启目录浏览：<br id="j3k4102" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="eo:y">&amp;lt;param-name&amp;gt;listings&amp;lt;/param-name&amp;gt;</span><br id="j3k4103" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="eo:y0">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;param-value&amp;gt;true&amp;lt;/param-value&amp;gt;</span><br id="j3k4104" /><br id="j3k4105" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 3.3.3&amp;#160; 开启servlet直接访问，打开注释<br id="j3k4107" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;<span style="background-color: rgb(217, 234, 211);" id="eo:y1"> &amp;lt;servlet-name&amp;gt;invoker&amp;lt;/servlet-name&amp;gt;</span><br id="j3k4108" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="eo:y2">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;lt;servlet-class&amp;gt;</span><br id="j3k4109" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="eo:y3">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; org.apache.catalina.servlets.InvokerServlet</span><br id="j3k4110" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="eo:y4">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;lt;/servlet-class&amp;gt;</span><br id="j3k4111" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 还有这段<br id="j3k4112" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;<span style="background-color: rgb(217, 234, 211);" id="eo:y5"> &amp;lt;servlet-mapping&amp;gt;</span><br id="j3k4113" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="eo:y6">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;lt;servlet-name&amp;gt;invoker&amp;lt;/servlet-name&amp;gt;</span><br id="j3k4114" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <br id="j3k4115" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; context.xml文件里&amp;lt;Context&amp;gt;增加privileged<br id="j3k4116" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="eo:y7">&amp;lt;Context privileged=&amp;quot;true&amp;quot;&amp;gt;</span><br id="j3k4117" /><br id="j3k4118" /><b id="iali2">SETP 3 MySql与JDBC connector</b><br id="j3k4119" /><b id="xxzc">1.&amp;#160; 解压缩mysql-5.0.51a-linux-i686.tar.gz</b><br id="j3k4120" />&amp;#160;&amp;#160;&amp;#160; [work@localhost webServer]$ <span style="color: rgb(255, 0, 0);" id="l75t">tar -zxvf mysql-5.0.51a-linux-i686.tar.gz </span><br id="j3k4121" />&amp;#160;&amp;#160;&amp;#160; [work@localhost webServer]$<span style="color: rgb(255, 0, 0);" id="l75t0"> mv mysql-5.0.51a-linux-i686 /home/work/usr/local/</span><br id="j3k4122" /><br id="j3k4123" /><b id="xxzc0">2. 参照INSTALL-BINARY文件安装mysql</b><br id="j3k4124" />&amp;#160;&amp;#160;&amp;#160; 2.1&amp;#160; 建立一个mysql符号连接<br id="j3k4125" />&amp;#160;&amp;#160;&amp;#160; [work@localhost local]$ <span style="color: rgb(255, 0, 0);" id="l75t1">cd /home/work/usr/local/</span><br id="j3k4126" />&amp;#160;&amp;#160;&amp;#160; [root@localhost local]# <span style="color: rgb(255, 0, 0);" id="l75t2">ln -s mysql-5.0.51a-linux-i686 mysql</span><br id="j3k4127" />&amp;#160;&amp;#160;&amp;#160; [work@localhost local]$ <span style="color: rgb(255, 0, 0);" id="l75t3">su root</span><br id="j3k4130" />&amp;#160;&amp;#160;&amp;#160; [root@localhost local]# <span style="color: rgb(255, 0, 0);" id="l75t4">su -</span><br id="j3k4131" />&amp;#160;&amp;#160;&amp;#160; [root@localhost ~]#<span style="color: rgb(255, 0, 0);" id="l75t5"> groupadd mysql</span><br id="j3k4132" />&amp;#160;&amp;#160;&amp;#160; [root@localhost ~]# <span style="color: rgb(255, 0, 0);" id="l75t6">useradd -g mysql mysql</span><br id="j3k4133" /><br id="j3k4134" />&amp;#160;&amp;#160;&amp;#160; 回到/home/work/usr/local/mysql/，更改目录所属为mysql<br id="j3k4135" />&amp;#160;&amp;#160;&amp;#160; [root@localhost ~]# <span style="color: rgb(255, 0, 0);" id="l75t7">cd /home/work/usr/local/mysql/&amp;#160;</span>&amp;#160;&amp;#160; <br id="j3k4136" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="l75t8">chown -R mysql .</span><br id="j3k4137" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="l75t9">chgrp -R mysql .</span><br id="j3k4138" /><br id="j3k4139" />&amp;#160;&amp;#160;&amp;#160; 执行脚本生成mysql系统数据库<br id="j3k4140" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="l75t10">scripts/mysql_install_db&amp;#160; --user=mysql</span><br id="j3k4141" /><br id="j3k4142" />&amp;#160;&amp;#160;&amp;#160; Installing MySQL system tables...<br id="j3k4143" />&amp;#160;&amp;#160;&amp;#160; OK<br id="j3k4144" />&amp;#160;&amp;#160;&amp;#160; Filling help tables...<br id="j3k4145" />&amp;#160;&amp;#160;&amp;#160; OK<br id="j3k4146" />&amp;#160;&amp;#160;&amp;#160; ……<br id="j3k4147" />&amp;#160;&amp;#160;&amp;#160; 出现成功提示之后，授权返还给work，但是data目录仍然给mysql账号&amp;#160;&amp;#160;&amp;#160; <br id="j3k4148" /><br id="j3k4149" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="yy7j">chown -R work . </span><br id="j3k4150" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="yy7j0">chown -R mysql data</span><br id="j3k4151" /><br id="j3k4152" />&amp;#160;&amp;#160;&amp;#160; 2.2&amp;#160; 看/var/run/是否有mysqld目录，如果没有就新建。<br id="j3k4153" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="yy7j1">cd&amp;#160; /var/run/mysqld</span><br id="j3k4154" />&amp;#160;&amp;#160;&amp;#160; [root@localhost run]# <span style="color: rgb(255, 0, 0);" id="yy7j2">mkdir mysqld</span><br id="j3k4155" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysqld]# <span style="color: rgb(255, 0, 0);" id="yy7j3">cd mysqld</span><br id="j3k4156" />&amp;#160;&amp;#160;&amp;#160; [root@localhost run]#<span style="color: rgb(255, 0, 0);" id="yy7j4"> chown -R mysql mysqld . </span><br id="j3k4157" />&amp;#160;&amp;#160;&amp;#160; [root@localhost run]# <span style="color: rgb(255, 0, 0);" id="nxn0">chgrp -R mysql mysqld . </span><br id="j3k4158" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]#<span style="color: rgb(255, 0, 0);" id="mtf7">su mysql&amp;#160;&amp;#160;&amp;#160; </span><br id="j3k4159" />&amp;#160;&amp;#160;&amp;#160; [mysql@localhost mysql]$ <span style="color: rgb(255, 0, 0);" id="mtf70">vi /var/run/mysqld/mysqld.pid</span><br id="j3k4160" /><br id="j3k4161" />&amp;#160;&amp;#160;&amp;#160; 查看/tmp/下是否有mysql.sock文件，把/home/mysql/mysql.sock做个符号连接到/tmp/临时文件夹下<br id="j3k4162" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="mtf71">ln -s /home/mysql/mysql.sock /tmp/mysql.sock</span><br id="j3k4164" />&amp;#160;&amp;#160;&amp;#160; [root@localhost tmp]# <span style="color: rgb(255, 0, 0);" id="mtf72">chown -R mysql mysql.sock </span><br id="j3k4165" />&amp;#160;&amp;#160;&amp;#160; [root@localhost tmp]# <span style="color: rgb(255, 0, 0);" id="mtf73">chgrp -R mysql mysql.sock</span><br id="j3k4166" /><br id="j3k4167" />&amp;#160;&amp;#160;&amp;#160; 也可以查看一下/etc/my.cnf，检查配置<br id="j3k4168" />&amp;#160;&amp;#160;&amp;#160; [root@localhost tmp]# <span style="color: rgb(255, 0, 0);" id="mtf74">cat /etc/my.cnf </span><br id="j3k4169" /><br id="j3k4170" />&amp;#160;&amp;#160;&amp;#160; 2.3&amp;#160; 启动mysql服务<br id="j3k4171" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]#<span style="color: rgb(255, 0, 0);" id="mtf75"> bin/mysqld_safe --user=mysql &amp;amp;</span><br id="j3k4172" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# Starting mysqld daemon with databases from /var/lib/mysql<br id="j3k4173" /><br id="j3k4174" />&amp;#160;&amp;#160;&amp;#160; 启动成功后，查看一下mysql的进程：<br id="j3k4175" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="r-5m">ps -el | grep mysqld</span><br id="j3k4176" />&amp;#160;&amp;#160;&amp;#160; 4 S&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0 14213 13164&amp;#160; 0&amp;#160; 84&amp;#160;&amp;#160; 0 -&amp;#160; 1171 wait&amp;#160;&amp;#160; pts/0&amp;#160;&amp;#160;&amp;#160; 00:00:00 mysqld_safe<br id="j3k4177" />&amp;#160;&amp;#160;&amp;#160; 4 S&amp;#160;&amp;#160; 502 14241 14213&amp;#160; 0&amp;#160; 85&amp;#160;&amp;#160; 0 -&amp;#160; 8223 -&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pts/0&amp;#160;&amp;#160;&amp;#160; 00:00:00 mysqld<br id="j3k4178" />&amp;#160;&amp;#160;&amp;#160; 1 S&amp;#160;&amp;#160; 502 14242 14241&amp;#160; 0&amp;#160; 78&amp;#160;&amp;#160; 0 -&amp;#160; 8223 -&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pts/0&amp;#160;&amp;#160;&amp;#160; 00:00:00 mysqld<br id="j3k4179" />&amp;#160;&amp;#160;&amp;#160; 1 S&amp;#160;&amp;#160; 502 14243 14242&amp;#160; 0&amp;#160; 85&amp;#160;&amp;#160; 0 -&amp;#160; 8223 rt_sig pts/0&amp;#160;&amp;#160;&amp;#160; 00:00:00 mysqld<br id="j3k4180" />&amp;#160;&amp;#160;&amp;#160; [root@localhost tmp]# netstat -na | grep 3306<br id="j3k4181" />&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0 0.0.0.0:3306&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0.0.0.0:*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LISTEN&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; <br id="j3k4182" /><br id="j3k4184" />&amp;#160;&amp;#160;&amp;#160; 2.4&amp;#160; 登录mysql试一下，可用其他账户<br id="j3k4185" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="r-5m0">su work</span><br id="j3k4186" />&amp;#160;&amp;#160;&amp;#160; [work@localhost mysql]$ <span style="color: rgb(255, 0, 0);" id="r-5m1">cd /home/work/usr/local/mysql/</span><br id="j3k4187" />&amp;#160;&amp;#160;&amp;#160; [work@localhost mysql]$<span style="color: rgb(255, 0, 0);" id="r-5m2"> bin/mysql -uroot -p密码</span>&amp;#160;&amp;#160;&amp;#160; <br id="j3k4220" /><br id="j3k4221" />&amp;#160;&amp;#160;&amp;#160; 2.5&amp;#160; 配置自动启动<br id="j3k4222" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="j9:o1">cp support-files/mysql.server /etc/rc.d/init.d/mysqld</span><br id="j3k4223" />&amp;#160;&amp;#160;&amp;#160; [root@localhost mysql]# <span style="color: rgb(255, 0, 0);" id="j9:o2">chmod 777 /etc/init.d/mysqld </span><br id="j3k4224" />&amp;#160;&amp;#160;&amp;#160; [root@localhost init.d]# <span style="color: rgb(255, 0, 0);" id="j9:o3">su -</span><br id="j3k4225" />&amp;#160;&amp;#160;&amp;#160; [root@localhost ~]# <span style="color: rgb(255, 0, 0);" id="j9:o4">chkconfig --add mysqld</span><br id="j3k4226" /><br id="j3k4227" />&amp;#160;&amp;#160;&amp;#160; <b id="cv82">mysql配置完成。</b><b id="cv820"><span style="background-color: rgb(255, 255, 255);" id="gtn:"></span></b><br id="j3k4304" /><br id="j3k4305" /><b id="xxzc1">3. mysql-connector-java安装</b><br id="j3k4306" />&amp;#160;&amp;#160;&amp;#160; 3.1&amp;#160; 解压缩，把jar文件移到tomcat lib目录下&amp;#160;&amp;#160;&amp;#160; <br id="j3k4307" />&amp;#160;&amp;#160;&amp;#160; [work@localhost webServer]$ <span style="color: rgb(255, 0, 0);" id="kg00">tar -zxvf mysql-connector-java-5.1.6.tar.gz </span><br id="j3k4308" />&amp;#160;&amp;#160;&amp;#160; [work@localhost webServer]$ <span style="color: rgb(255, 0, 0);" id="kg000">cp mysql-connector-java-5.1.6/mysql-connector-java-5.1.6-bin.jar /home/work/usr/local/tomcat/lib/</span><br id="j3k4309" />&amp;#160;&amp;#160;&amp;#160; 3.2&amp;#160;&amp;#160; 配置数据池连接<br id="j3k4310" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 3.2 .1&amp;#160; 修改tomcat/conf/server.xml，对原来test项目进行修改，添加数据池配置<br id="j3k4311" />&amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="kg001">&amp;#160;&amp;lt;Context path=&amp;quot;/test&amp;quot; docBase=&amp;quot;/home/work/dev/test&amp;quot;</span><br id="j3k4312" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="kg002">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; debug=&amp;quot;5&amp;quot; reloadable=&amp;quot;true&amp;quot; crossContext=&amp;quot;true&amp;quot;&amp;#160; workDir=&amp;quot;/home/work/usr/local/tomcat/work/test&amp;quot;&amp;gt;</span><br id="j3k4313" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="kg003">&amp;#160; &amp;lt;Resource&amp;#160; name=&amp;quot;jdbc/test&amp;quot;</span><br id="j3k4314" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="kg004">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; auth=&amp;quot;Container&amp;quot;</span><br id="j3k4315" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="kg005">&amp;#160;&amp;#160;&amp;#160; type=&amp;quot;javax.sql.DataSource&amp;quot;</span><br id="j3k4316" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="kg006">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; maxActive=&amp;quot;100&amp;quot; maxIdle=&amp;quot;30&amp;quot; maxWait=&amp;quot;10000&amp;quot;</span><br id="j3k4317" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="kg007">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; username=&amp;quot;root&amp;quot; password=&amp;quot;&amp;quot;</span><br id="j3k4318" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="kg008">&amp;#160;&amp;#160;&amp;#160; driverClassName=&amp;quot;com.mysql.jdbc.Driver&amp;quot;</span><br id="j3k4319" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="kg009">&amp;#160;&amp;#160;&amp;#160;
url=&amp;quot;jdbc:mysql://localhost:3306/test_db_name?autoReconnect=true&amp;amp;amp;useUnicode=true&amp;amp;amp;characterEncoding=utf-8&amp;quot;/&amp;gt;</span><br id="j3k4320" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="kg0010">&amp;#160;&amp;lt;/Context&amp;gt; </span><br id="j3k4321" /><br id="j3k4322" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 3.2 .2&amp;#160; 在/home/work/dev/test/下建立WEB-INF/web.xml文件，加入如下内容：<br id="j3k4323" />&amp;#160;&amp;#160;&amp;#160;<span style="background-color: rgb(217, 234, 211);" id="fmm7"> &amp;lt;web-app xmlns=&amp;quot;http://java.sun.com/xml/ns/j2ee&amp;quot;</span><br id="j3k4324" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm70">&amp;#160;&amp;#160;&amp;#160; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;</span><br id="j3k4325" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm71">&amp;#160;&amp;#160;&amp;#160; xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/j2ee</span><br id="j3k4326" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm72">http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&amp;quot;</span><br id="j3k4327" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm73">&amp;#160;&amp;#160;&amp;#160; version=&amp;quot;2.4&amp;quot;&amp;gt;</span><br id="j3k4328" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm74">&amp;#160; &amp;lt;description&amp;gt;My Test App&amp;lt;/description&amp;gt;</span><br id="j3k4329" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm75">&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;resource-ref&amp;gt;</span><br id="j3k4330" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm76">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;description&amp;gt;DB Connection&amp;lt;/description&amp;gt;</span><br id="j3k4331" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm77">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;res-ref-name&amp;gt;jdbc/test&amp;lt;/res-ref-name&amp;gt;</span><br id="j3k4332" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm78">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;res-type&amp;gt;javax.sql.DataSource&amp;lt;/res-type&amp;gt;</span><br id="j3k4333" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm79">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;res-auth&amp;gt;Container&amp;lt;/res-auth&amp;gt;</span><br id="j3k4334" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm710">&amp;#160; &amp;lt;/resource-ref&amp;gt;</span><br id="j3k4335" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="fmm711">&amp;#160; &amp;lt;/web-app&amp;gt; </span><br id="j3k4336" /><br id="n-5_" />&amp;#160;&amp;#160; 3.2.3 建立一个测试文件<br id="n-5_0" />
&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="ofsm">&amp;lt;%@ page language=&amp;quot;java&amp;quot; contentType=&amp;quot;text/html; charset=utf-8&amp;quot; pageEncoding=&amp;quot;utf-8&amp;quot;%&amp;gt;</span><br id="j3k4339" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm0">&amp;#160;&amp;#160;&amp;#160; &amp;lt;%@ page import=&amp;quot;java.sql.*&amp;quot;%&amp;gt;</span><br id="j3k4340" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm1">&amp;#160;&amp;#160;&amp;#160; &amp;lt;%@ page import=&amp;quot;javax.sql.*&amp;quot;%&amp;gt;</span><br id="j3k4341" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm2">&amp;#160;&amp;#160;&amp;#160; &amp;lt;%@ page import=&amp;quot;javax.naming.*&amp;quot;%&amp;gt;</span><br id="j3k4342" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm3"></span><span style="background-color: rgb(217, 234, 211);" id="ofsm7">&amp;#160;&amp;#160;&amp;#160;&amp;#160; 数据库连接池测试结果：</span><br id="j3k4347" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm8">&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%</span><br id="j3k4348" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm9">&amp;#160;&amp;#160;&amp;#160;&amp;#160; out.println(&amp;quot;JDBC驱动检查&amp;lt;br&amp;gt;&amp;quot;);</span><br id="j3k4349" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm10">&amp;#160;&amp;#160;&amp;#160;&amp;#160; try {</span><br id="j3k4350" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm11">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Class.forName(&amp;quot;com.mysql.jdbc.Driver&amp;quot;);</span><br id="j3k4351" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm12">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; out.println(&amp;quot;检查成功！&amp;lt;br&amp;gt;&amp;quot;);</span><br id="j3k4352" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm13">&amp;#160;&amp;#160;&amp;#160;&amp;#160; } catch (ClassNotFoundException cnfe) {</span><br id="j3k4353" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm14">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; out.println(&amp;quot;JDBC驱动创建失败！&amp;lt;br&amp;gt;&amp;quot;);</span><br id="j3k4354" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm15">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cnfe.printStackTrace();</span><br id="j3k4355" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm16">&amp;#160;&amp;#160;&amp;#160;&amp;#160; }</span><span style="background-color: rgb(217, 234, 211);" id="ofsm17">&amp;#160;&amp;#160;&amp;#160; </span><br id="j3k4357" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm18">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; out.println(&amp;quot;&amp;lt;br&amp;gt;环境命名空间检查&amp;lt;br&amp;gt;&amp;quot;);</span><br id="j3k4358" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm19">&amp;#160;&amp;#160;&amp;#160;&amp;#160; try {</span><br id="j3k4359" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm20">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; javax.naming.Context ctx = new javax.naming.InitialContext();</span><br id="j3k4360" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm21">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; javax.naming.Context envContext =</span><br id="j3k4361" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm22">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (javax.naming.Context) ctx.lookup(&amp;quot;java:/comp/env&amp;quot;);</span><br id="j3k4362" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm23">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; out.println(&amp;quot;检查成功！&amp;lt;br&amp;gt;&amp;quot;);</span><span style="background-color: rgb(217, 234, 211);" id="ofsm24">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; </span><br id="j3k4364" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm25">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; out.println(&amp;quot;&amp;lt;br&amp;gt;查找数据源&amp;lt;br&amp;gt;&amp;quot;);</span><br id="j3k4366" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm26">&amp;#160;<span style="background-color: rgb(255, 242, 204);" id="ofsm27">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; // org.apache.commons.dbcp.BasicDataSource ds =</span></span><br id="j3k4367" style="background-color: rgb(255, 242, 204);" />
<span style="background-color: rgb(255, 242, 204);" id="ofsm28">&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; //&amp;#160;&amp;#160; (org.apache.commons.dbcp.BasicDataSource) envContext.lookup(&amp;quot;jdbc/test&amp;quot;);</span><br id="j3k4368" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm29">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataSource ds =(DataSource)ctx.lookup(&amp;quot;java:comp/env/jdbc/test&amp;quot;);</span><br id="j3k4369" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm30">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; out.println(&amp;quot;查找成功!&amp;lt;br&amp;gt;&amp;quot;);</span><br id="j3k4370" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm31"></span><span style="background-color: rgb(217, 234, 211);" id="ofsm44">&amp;#160;&amp;#160;&amp;#160; } catch (javax.naming.NamingException e) {</span><br id="j3k4385" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm45">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; out.println(&amp;quot;环境变量上下文创建失败！&amp;lt;br&amp;gt;&amp;quot;);</span><br id="j3k4386" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm46">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; e.printStackTrace();</span><br id="j3k4387" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm47"></span><span style="background-color: rgb(217, 234, 211);" id="ofsm52">&amp;#160;&amp;#160;&amp;#160;&amp;#160; }</span><br id="j3k4393" style="background-color: rgb(217, 234, 211);" />
<span style="background-color: rgb(217, 234, 211);" id="ofsm53">&amp;#160;&amp;#160; %&amp;gt;</span><br id="n-5_30" />
<br id="j3k4337" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 参考:<a id="wg6w" href="http://jiarry.bokee.com/6234733.html" title="http://jiarry.bokee.com/6234733.html">http://jiarry.bokee.com/6234733.html</a> <br id="j3k4397" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <a id="ss75" href="http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html" title="http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html">http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html</a> <br id="j3k4398" />&amp;#160;&amp;#160;&amp;#160; <br id="j3k4399" /><b id="gtn:0">SETP 4 Apache安装配置</b><br id="j3k4400" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 1&amp;#160; 解压缩Apache，<br id="j3k4401" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost webServer]$ <span style="color: rgb(255, 0, 0);" id="fapd">tar -zxvf httpd-2.2.9.tar.gz </span><br id="j3k4402" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 可以把得到的文件夹移动到安装目录，比如/home/work/software/下，这里放在/home/work/software/webServer/<br id="j3k4403" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost webServer]$ <span style="color: rgb(255, 0, 0);" id="fapd0">cd httpd-2.2.9</span><br id="j3k4404" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost httpd-2.2.9]$ <span style="color: rgb(255, 0, 0);" id="v1-2">./configure --help </span><br id="j3k4405" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost httpd-2.2.9]$<span style="color: rgb(255, 0, 0);" id="prg:"> ./configure --prefix=/home/work/usr/local/apache2 --enable-mods-shared=all </span><br id="j3k4406" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost httpd-2.2.9]$ <span style="color: rgb(255, 0, 0);" id="prg:0">make</span>&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <br id="j3k4407" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost httpd-2.2.9]$ <span style="color: rgb(255, 0, 0);" id="prg:1">make install</span><br id="j3k4408" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost httpd-2.2.9]$<span style="color: rgb(255, 0, 0);" id="prg:2"> cd /home/work/usr/local/apache2</span><br id="j3k4409" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [root@localhost apache2]#<span style="color: rgb(255, 0, 0);" id="prg:3"> su root</span><br id="j3k4410" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost apache2]$<span style="color: rgb(255, 0, 0);" id="prg:4"> bin/apachectl start</span><br id="j3k4411" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 编译安装--enable-so-mods-shared=all新版的安装文档里没有提示需要加载，直接./configure --prefix=/home/work/usr/local/apache2即可<br id="j3k4412" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 安装过程要2分钟时间，完成后，切换到root账号启动Apache<br id="j3k4413" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 在地址栏输入http://localhost/，看到 it works欢迎页表示成功<br id="j3k4414" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 参照：<a id="oh:i" href="http://httpd.apache.org/docs/2.2/install.html" title="http://httpd.apache.org/docs/2.2/install.html">http://httpd.apache.org/docs/2.2/install.html</a> <br id="j3k4415" /><br id="j3k4416" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 2&amp;#160; 配置apache/conf/http.conf<br id="j3k4417" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; #添加test项目<br id="j3k4418" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="sfbc">Alias /ut &amp;quot;/home/work/dev/test&amp;quot;</span><br id="j3k4419" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="sfbc0">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;lt;Directory &amp;quot;/home/work/dev/test&amp;quot;&amp;gt;</span><br id="j3k4420" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="sfbc1">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; Options Indexes FollowSymLinks MultiViews Includes ExecCGI</span><br id="j3k4421" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="sfbc2">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; AllowOverride None</span><br id="j3k4422" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="sfbc3">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; Order allow,deny</span><br id="j3k4423" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="sfbc4">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; Allow from all</span><br id="j3k4424" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="sfbc5">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;lt;/Directory&amp;gt;</span><br id="j3k4425" /><br id="j3k4426" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; #禁止访问WEB-INF文件夹<br id="j3k4427" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="sfbc6">&amp;lt;Directory&amp;#160; &amp;quot;/home/work/dev/test/WEB-INF&amp;quot;&amp;gt;</span><br id="j3k4428" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="sfbc7">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160; Order allow,deny</span><br id="j3k4429" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="sfbc8">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;lt;/Directory&amp;gt; </span><br id="j3k4430" /><br id="j3k4431" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 打开注释配置语言，可以设置默认中文<br id="j3k4432" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;<span style="background-color: rgb(217, 234, 211);" id="sfbc9"> Include conf/extra/httpd-languages.conf</span><br id="mue2" /><br id="j3k4433" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 在extra/httpd-languages.conf增加如下代码：<br id="j3k4434" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="sfbc10">DefaultLanguage zh-CN</span><br id="j3k4435" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="sfbc11">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160; AddDefaultCharset gb2312</span><br id="j3k4436" /><br id="j3k4437" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 3&amp;#160; 打开浏览器输入<a id="z8j-" href="http://localhost/test/" title="http://localhost/test/">http://localhost/test/</a> 是否能看到目录列表呢，访问测试。<br id="j3k4438" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 如果遇到禁止访问，则需要授权 [work@localhost ut]$ <span style="color: rgb(255, 0, 0);" id="vasc">chmod 777 * </span><br id="j3k4439" /><br id="j3k4440" /><b id="q-eo">SETP 5 jk_mod整合Apache与Tomcat&amp;#160;&amp;#160;</b>&amp;#160; <br id="j3k4441" />&amp;#160;&amp;#160;&amp;#160; <b id="q-eo0">1&amp;#160; 把下载到的二进制文件mod_jk-1.2.26-httpd-2.2.6.so复制到apache的modules目录下</b><br id="j3k4442" />&amp;#160;&amp;#160;&amp;#160; 下载地址：　<a id="cxit" href="http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.26/" title="http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.26/">http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.26/</a> <br id="j3k4443" />&amp;#160;&amp;#160;&amp;#160; <br id="j3k4444" />&amp;#160;&amp;#160;&amp;#160; <b id="w1dz">2&amp;#160; 在Apache的conf目录新建立两个文件，mod_jk.conf和workers.properties文件，配置过程与windows基本一样。</b><br id="j3k4445" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; mod_jk.conf的内容是jk的配置文件，包括装载模块和日志信息以及指定解析的工作器和目录，workers.properties是Tomcat wokers的配置文件。<br id="j3k4446" /><br id="j3k4447" />&amp;#160;&amp;#160;&amp;#160; <b id="w1dz0">3&amp;#160; 在mod_jk.conf里加入以下内容(mod_jk.conf文件是方便管理，而不需要把配置都写在httpd.conf里)</b><br id="j3k4448" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(255, 242, 204);" id="xc6.">#加载jk模块，名字要对应</span><br id="j3k4449" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.0">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.6.so&amp;#160; </span><br id="j3k4450" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.1"></span><span style="background-color: rgb(217, 234, 211);" id="xc6.3">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkWorkersFile conf/workers.properties</span><br id="j3k4452" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.4"></span><span style="background-color: rgb(217, 234, 211);" id="xc6.5">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkLogFile logs/mod_jk.log</span><br id="j3k4454" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.6"></span><span style="background-color: rgb(217, 234, 211);" id="xc6.7">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkShmFile logs/mod_jk.shm</span><br id="j3k4456" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.8">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkLogLevel info</span><br id="j3k4457" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.9"></span><span style="background-color: rgb(217, 234, 211);" id="xc6.10">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkLogStampFormat &amp;quot;[%a %b %d %H:%M:%S %Y] &amp;quot;</span><br id="j3k4459" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.11"></span><br id="j3k4460" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.12">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories</span><br id="j3k4461" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.13"></span><span style="background-color: rgb(217, 234, 211);" id="xc6.14">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkRequestLogFormat &amp;quot;%w %V %T&amp;quot;</span><br id="j3k4463" style="background-color: rgb(217, 234, 211);" /><br id="j3k4464" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.15"><span id="nfo63" style="background-color: rgb(255, 242, 204);"></span></span><span style="background-color: rgb(217, 234, 211);" id="xc6.16">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkMount /servlet/* ajp13&amp;#160;&amp;#160;&amp;#160;&amp;#160; </span><br id="j3k4466" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.17">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkMount /*.jsp ajp13</span><br id="j3k4467" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.18">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkMount /*.do ajp13&amp;#160;&amp;#160;&amp;#160;&amp;#160; </span><br id="j3k4468" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.19">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span id="rr1-" style="background-color: rgb(255, 242, 204);"># JkMount 表示使用Tomcat来解析， JkUnMount则相反</span></span><br id="j3k4469" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.20">&amp;#160;</span><span style="background-color: rgb(217, 234, 211);" id="xc6.21"></span><span style="background-color: rgb(217, 234, 211);" id="xc6.24"></span><span style="background-color: rgb(217, 234, 211);" id="xc6.25">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;<span id="rr1-1"> <span style="background-color: rgb(255, 242, 204);" id="d4bn0">#JkAutoAlias /home/work/dev/test/*&amp;#160; </span></span></span><span style="background-color: rgb(255, 242, 204);" id="xc6.26"></span><br id="i954" /><span style="background-color: rgb(217, 234, 211);" id="xc6.27">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; JkMount /test/servlet/* ajp13&amp;#160;&amp;#160;&amp;#160; </span><br id="j3k4477" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="xc6.28">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span id="rr1-2" style="background-color: rgb(255, 242, 204);">#/test/servlet/下所有的文件也交给Tomcat处理</span></span><br id="j3k4478" style="background-color: rgb(255, 242, 204);" /><br id="j3k4479" />&amp;#160;&amp;#160;&amp;#160; <b id="w1dz1">4&amp;#160; 编辑Apache的httpd.conf文件，添加：</b><br id="j3k4480" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="r99h">Include conf/mod_jk.conf</span><br id="j3k4481" /><br id="j3k4482" />&amp;#160;&amp;#160;&amp;#160; <b id="w1dz2">5&amp;#160; 编辑workers.properties文件，添加：</b><br id="j3k4483" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(217, 234, 211);" id="d4bn2">workers.tomcat_home=/home/work/usr/local/tomcat/</span><br id="j3k4484" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="d4bn3">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; workers.java_home=/home/work/usr/local/jdk/</span><br id="j3k4485" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="d4bn4">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; ps=\</span><br id="j3k4486" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="d4bn5">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; worker.list=ajp13</span><br id="j3k4487" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="d4bn6">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; worker.ajp13.port=8009</span><br id="j3k4488" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="d4bn7">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; worker.ajp13.host=localhost</span><br id="j3k4489" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="d4bn8">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; worker.ajp13.type=ajp13</span><br id="j3k4490" style="background-color: rgb(217, 234, 211);" /><span style="background-color: rgb(217, 234, 211);" id="d4bn9">&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; worker.ajp13.lbfactor=1</span><br id="j3k4491" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <span style="background-color: rgb(255, 242, 204);" id="d4bn10">#如果没有专门的配置，也可以不添加这些内容，空文件或者不要该也可以</span><br id="j3k4492" style="background-color: rgb(255, 242, 204);" /><span style="background-color: rgb(255, 242, 204);" id="d4bn11"></span>&amp;#160;&amp;#160;&amp;#160;<b id="w1dz3"> </b><br id="j3k4520" />&amp;#160;&amp;#160;&amp;#160; <b id="w1dz4">7&amp;#160;&amp;#160; 重启Apache测试</b><br id="j3k4521" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost modules]$ <span style="background-color: rgb(217, 234, 211); color: rgb(255, 0, 0);" id="e4or">su -c '/home/work/usr/local/apache2/bin/apachectl restart'</span><br id="j3k4522" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 打开浏览器，分别通过以下两个地址访问jsp文件，如果均能正常解析表示整合成功，根据之前Apache和Tomcat的配置，test指向同一个目录<br id="j3k4523" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; http://localhost/test/ 　<br id="j3k4524" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; http://localhost:8080/test/ <br id="j3k4525" /><br id="j3k4526" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 这样，Ａpache与Tomcat加Jk_mod就整理完成了。<br id="j3k4529" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 配置文件详解：<br id="j3k4530" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <a id="fqqj" href="http://tomcat.apache.org/connectors-doc/reference/apache.html" title="http://tomcat.apache.org/connectors-doc/reference/apache.html">http://tomcat.apache.org/connectors-doc/reference/apache.html</a> <br id="j3k4531" /><br id="j3k4532" /><b id="w1dz5">SETP 5 安装PHP</b><br id="j3k4533" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <b id="w1dz6">1&amp;#160; 先要安装zlib，libpng和libxml、gd2库等，以便支持图形库等，可以根据需要来选装。</b><br id="j3k4534" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 下载地址：<br id="j3k4535" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 1)zlib： &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;<a id="xfnn" href="http://www.zlib.net/" title="http://www.zlib.net/">http://www.zlib.net/</a> <br id="j3k4536" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 2)libpng： &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <a id="a_vg" href="http://www.libpng.org/pub/png/libpng.html" title="http://www.libpng.org/pub/png/libpng.html">http://www.libpng.org/pub/png/libpng.html</a> <br id="j3k4537" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 3)libxml2： &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <a id="xp8e" href="ftp://xmlsoft.org/libxml2/" title="ftp://xmlsoft.org/libxml2/">ftp://xmlsoft.org/libxml2/</a> <br id="j3k4538" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 4)libtiff： &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <a id="j8.l" href="ftp://ftp.remotesensing.org/pub/libtiff/" title="ftp://ftp.remotesensing.org/pub/libtiff/">ftp://ftp.remotesensing.org/pub/libtiff/</a> <br id="j3k4539" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 5)jpegsrc： &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <a id="me9a" href="ftp://ftp.uu.net/graphics/jpeg/" title="ftp://ftp.uu.net/graphics/jpeg/">ftp://ftp.uu.net/graphics/jpeg/</a> <br id="j3k4540" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 6)freetype2： &amp;#160;&amp;#160;&amp;#160; <a id="axr1" href="http://freetype.sourceforge.net/download.html" title="http://freetype.sourceforge.net/download.html">http://freetype.sourceforge.net/download.html</a> <br id="j3k4541" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 7)gd2： &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <a id="i5w1" href="http://www.libgd.org/Downloads" title="http://www.libgd.org/Downloads">http://www.libgd.org/Downloads</a> <br id="j3k4542" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 8)openssl:&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <a id="ea8-" href="http://www.openssl.org/source/" title="http://www.openssl.org/source/">http://www.openssl.org/source/</a> <br id="j3k4543" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; <br id="j3k4544" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 这几个PHP的库安装方式都是一致的，命令如下：<br id="j3k4545" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; ./configure [--prefix=/path]<br id="j3k4546" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; make check<br id="j3k4547" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; make install<br id="j3k4548" /><br id="j3k4549" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 1.1&amp;#160; zlib安装：<br id="j3k4550" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost php_lib]$ <span style="color: rgb(255, 0, 0);" id="zxr.">tar -zxvf zlib-1.2.3.tar.gz </span><br id="j3k4551" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost php_lib]$ <span style="color: rgb(255, 0, 0);" id="zxr.0">cd zlib-1.2.3</span><br id="j3k4552" />&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [work@localhost zlib-1.2.3]$ <span style="color: rgb(255, 0, 0);" id="zxr.1">./configure --prefix=/home/work/usr/local/zlib/</span><br id="j3k4553" />&amp;#160;&amp;#160;&amp;#160; 