﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-shishaomeng</title><link>http://www.blogjava.net/shishaomeng/</link><description>让一切触手可及！</description><language>zh-cn</language><lastBuildDate>Fri, 19 Jun 2026 15:14:01 GMT</lastBuildDate><pubDate>Fri, 19 Jun 2026 15:14:01 GMT</pubDate><ttl>60</ttl><item><title>目前最全的浏览器/CSS选择器兼容性总结(包括Safari 4 beta)</title><link>http://www.blogjava.net/shishaomeng/articles/284107.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Thu, 25 Jun 2009 06:58:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/284107.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/284107.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/284107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/284107.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/284107.html</trackback:ping><description><![CDATA[<p style="text-align: center;"><a href="http://blog.bingo929.com/css-browser-support.html"><img wp-image-2283="" aligncenter="" title="css-浏览器-兼容性" alt="css-浏览器-兼容性" src="http://blog.bingo929.com/wp-content/uploads/2009/02/css-browsers-0.png" width="366" height="142" /></a></p>
<p>2009年2月24日，Safari 4.0
beta版正式发布，Safari从它的3.2版本开始就已经支持所有的CSS选择器(包括最新的CSS3)。不过为了方便大家的工作，下面提供了最新版本的CSS选择器浏览器支持情况，其中包括最新的CSS3和Safari
4.0 Beta的支持情况。感谢<a href="http://www.evotech.net/blog/about/" target="_blank">Estelle Weyl</a>的总结。<br />
<br />
注:</p>
<ul>
    <li>绿色 / &#8730;&nbsp; 表示目前支持。
    </li>
    <li>橙色/ &#916;&nbsp;&nbsp; 表示浏览器部分支持当前CSS选择器。
    </li>
    <li>红色/ &#935;&nbsp;&nbsp; 表示浏览器完全不支持。 </li>
</ul>
<p><a href="http://blog.bingo929.com/wp-content/uploads/2009/02/css-browsers-1.png" target="_blank"><img size-medium="" wp-image-2282="" title="css-浏览器-兼容性" alt="css-浏览器-兼容性" src="http://blog.bingo929.com/wp-content/uploads/2009/02/css-browsers-1-500x142.png" width="500" height="142" /></a><br />
<em>点击上图查看清晰大图</em></p>
<p><a href="http://blog.bingo929.com/wp-content/uploads/2009/02/css-browsers-2.png" target="_blank"><img size-medium="" wp-image-2284="" title="css-浏览器-兼容" alt="css-浏览器-兼容" src="http://blog.bingo929.com/wp-content/uploads/2009/02/css-browsers-2-500x721.png" width="500" height="721" /></a><br />
<em>点击上图查看清晰大图</em></p>
<img src ="http://www.blogjava.net/shishaomeng/aggbug/284107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-06-25 14:58 <a href="http://www.blogjava.net/shishaomeng/articles/284107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp:forward 与request.sendRedirect</title><link>http://www.blogjava.net/shishaomeng/articles/283455.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Sun, 21 Jun 2009 06:12:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/283455.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/283455.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/283455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/283455.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/283455.html</trackback:ping><description><![CDATA[forward是请求转发的意思。<br />
它是把请求转发给统一应用程序的其他WEB组件。<br />
比如servlet作为流程控制器，它检查HTTP请求数据，并将请求转发到合适的目标组件，目标组件执行具体的请求处理操作。&nbsp;&nbsp;&nbsp;<br />
&nbsp;转发是共享request范围内数据的 &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 重定向是把重定向信息发还给浏览器，浏览器重新请求重定向地址，重定向不在一个request范围内共享数据
<img src ="http://www.blogjava.net/shishaomeng/aggbug/283455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-06-21 14:12 <a href="http://www.blogjava.net/shishaomeng/articles/283455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp初学者在线教程</title><link>http://www.blogjava.net/shishaomeng/articles/283446.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Sun, 21 Jun 2009 04:42:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/283446.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/283446.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/283446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/283446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/283446.html</trackback:ping><description><![CDATA[http://www.family168.com/tutorial/jsp/html/index.html
<img src ="http://www.blogjava.net/shishaomeng/aggbug/283446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-06-21 12:42 <a href="http://www.blogjava.net/shishaomeng/articles/283446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java日期处理方法</title><link>http://www.blogjava.net/shishaomeng/articles/268284.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Thu, 30 Apr 2009 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/268284.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/268284.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/268284.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/268284.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/268284.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 日期类* @date &nbsp; * @version 1.0*/import&nbsp;java.util.*;import&nbsp;java.text.*;import&nbsp;java.util.Calendar;&nbsp;public&nbsp;class VeDate {&nbsp;/**&nbsp; * 获取现在时间&nbsp; *...&nbsp;&nbsp;<a href='http://www.blogjava.net/shishaomeng/articles/268284.html'>阅读全文</a><img src ="http://www.blogjava.net/shishaomeng/aggbug/268284.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-30 09:34 <a href="http://www.blogjava.net/shishaomeng/articles/268284.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>lightwindow2.0的使用教程</title><link>http://www.blogjava.net/shishaomeng/articles/267369.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Fri, 24 Apr 2009 07:23:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/267369.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/267369.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/267369.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/267369.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/267369.html</trackback:ping><description><![CDATA[<p>Light Window v2.0不错的web 2.0应用代码，可在当前窗口调用其他页面，包括注册，登录，搜索，flash，图片，视频等文件&#8230;&#8230;<br />
<u><font color="#c4a30c">点我下载</font></u></p>
<p><u><font color="#c4a30c">演示</font></u><br />
声明：本教程只是将英文原版的翻译了过来。<br />
<br />
<br />
第一步：将三个js文件和一个css文件包含在你要实现的页面中。<br />
&lt;script type="text/javascript" src="javascript/prototype.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="javascript/scriptaculous.js?load=effects"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="javascript/lightwindow.js"&gt;&lt;/script&gt;<br />
&lt;link rel="stylesheet" href="css/lightwindow.css" type="text/css" media="screen" /&gt;<br />
<br />
第二步：在超链接&lt;a&gt;(hyperlink)标签里，你可以改变如下属性。<br />
params="lightwindow_width=516,lightwindow_height=530,lightwindow_show_images=2"<br />
<br />
可选属性如下：<br />
lightwindow_width&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>// 窗口的宽度<br />
lightwindow_height&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> // 窗口的高度<br />
lightwindow_show_images&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>// 在一个画廊里一次性要展示的图片的数量,默认是 1, 这很方便声明不管你是在设置前还是在设置后<br />
lightwindow_top&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>// 设置窗口距顶部的整数距离<br />
lightwindow_left&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> // 设置窗口距左边的整数距离<br />
lightwindow_type&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> // 指定窗口要指定的数据类型, external, image, media, inline<br />
lightwindow_loading_animation // Set to false to opt to not fade out the Loading Cover（缓冲条动画的相关设置）<br />
lightwindow_iframe_embed&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> // 嵌入一个媒体到框架内，而不是嵌入到一个div标签内<br />
lightwindow_form&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> // 表单的名字<br />
<br />
要实例化任何一个窗口，仅仅是在超链接内加入一个"lightwindow"类，再为这个类做一再相关的设置<br />
例如：&lt;a href="http://www.foo.com/bar.jpg class="lightwindow"&gt;foo da bar&lt;/a&gt;<br />
即在foo da bar这个超链接内加入了一个lightwindow类，使得通过点击它可以调出一个lightwindow来显示那幅jpg图片。<br />
<br />
不同的媒体类型：<br />
Movie<br />
&lt;a href="http://images.apple.com/movies/newline/the_number_23/the_number_23-tlr1_h.640.mov" class="lightwindow" params="lightwindow_width=640,lightwindow_height=290" &gt;链接名称&lt;/a&gt;<br />
<br />
SWF<br />
&lt;a href="gallery/header.swf?You-could-put-a-GET-string-here-for-your-flashvars" class="lightwindow" params="lightwindow_width=800,lightwindow_height=345" title="Preview: Doesn't your masthead look perdy?" &gt;链接名称&lt;/a&gt;<br />
<br />
PDF<br />
&lt;a href="http://www.ready.gov/business/_downloads/sampleplan.pdf" class="lightwindow"&gt;Link Name&lt;/a&gt;<br />
如果要使该媒体类型得到正常显示，你的电脑里要装有pdf阅读器。或者你可以使用Flash Paper代替。<br />
<br />
<br />
External (i.e. A Website)<br />
该类型是一个扩展类型，窗口显示的是一个网页，所以在属性中我们又加入了title和caption用来说明该网页。<br />
&lt;a href="http://www.rubyonrails.com/" class="lightwindow" title="Ruby on Rails" caption="One of my favorites, and really it should be one of yours."&gt;链接名称&lt;/a&gt;<br />
<br />
<br />
Images<br />
画廊用到了一个rel标签，格式为：画廊名[类名]。图片在页面中显示的位置会依此来判断。<br />
<br />
single image<br />
&lt;a href="images/image-5.jpg" class="lightwindow" title="What is this Plant?" author="Unknown" caption="Whatever it is, it is still a pretty cool picture. ."&gt;链接名称&lt;/a&gt;<br />
<br />
a gallery<br />
&lt;a href="gallery/0-sushi.jpg" class="lightwindow" rel="/\\:;*?&lt;&gt;'&#8221;|&#[Sushi]" title="Left Behind" caption="Look's super tasty!" author="Unknown"&gt;image #1&lt;/a&gt;<br />
<br />
&lt;a href="gallery/1-sushi.jpg" class="lightwindow" rel="/\\:;*?&lt;&gt;'&#8221;|&#[Sushi]" title="Beware of warewolves..." caption="I shouldn't be doing this when I am hungry" author="Unknown"&gt;image #2&lt;/a&gt;<br />
<br />
&lt;a href="gallery/2-sushi.jpg" class="lightwindow" rel="/\\:;*?&lt;&gt;'&#8221;|&#[Sushi]" title="That was good!" caption="Take that sushi!" author="Unknown"&gt;image #3&lt;/a&gt;<br />
<br />
<br />
下面是一个实例：<br />
如果你只想实例化一个窗口，我们就可以使用函数createWindow(id)。<br />
你可以使用作者创建的myLightWindow对象，当然你也可以使用你自己创建的对象。<br />
代码如下：<br />
&lt;a href="http://stickmanlabs.com/images/kevin_vegas.jpg" id="sample-link"&gt;链接名称&lt;/a&gt;<br />
&lt;script type="text/javascript"&gt;&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>myLightWindow.createWindow('sample-link');<br />
&lt;/script&gt;<br />
<br />
创建生成一个窗口，使用javascript<br />
在使用作者创建的myLightWindow对象下，你可以使用activateWindow函数<br />
myLightWindow.activateWindow({<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>href:'http://stickmanlabs.com/images/kevin_vegas.jpg',<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>title:'Waiting for the show to start in Las Vegas',<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>author:'Jazzmatt',<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>caption:'Mmmmm Margaritas! And yes , this is me...',<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>left: 300<br />
});<br />
你也可以设置更多的选项，如下：<br />
href&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//窗口链接的位置<br />
title&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> //窗口的标题<br />
author&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//窗口的作者<br />
caption&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> //窗口的说明文字<br />
rel&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> //设置rel标签<br />
top&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> //窗口的顶部位置<br />
left&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//窗口的左边位置<br />
type&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//窗口要展现的媒体类型<br />
showImages&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//图片的数量<br />
height&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//窗口的高度<br />
width&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> //窗口的宽度<br />
loadingAnimation //缓冲动画设置<br />
iframeEmbed&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> //嵌入媒体到一个框架内而不是一个div内<br />
form&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//表单的名称<br />
<br />
<br />
Local Page<br />
这个页面会自适应内容的大小，除非你设置的窗口的大小不足够大或者你在属性里设置了不同的大小。<br />
&lt;a href="blank.html" class="lightwindow"&gt;链接名称&lt;/a&gt;<br />
<br />
Inline Content<br />
正在加载的library将会寻找一个容器，隐藏它只是引用它的内容到新窗口。<br />
&lt;a href="#id-of-container" class="lightwindow" &gt;链接名称&lt;/a&gt;<br />
<br />
Forms<br />
表单有一些麻烦，我们需要先创建一个本地页面<br />
&lt;a href="blank.html" class="lightwindow" &gt; 链接名称&lt;/a&gt;<br />
现在在那个表单页，提交按钮需要定义一个动作。<br />
<br />
Submit form Button Sample<br />
下面为你展示了如何表单创建一个提交按钮<br />
&lt;a href="hello.php" params="lightwindow_form=sample-form" class="lightwindow_action" rel="submitForm"&gt;&lt;button&gt;Submit&lt;/button&gt;&lt;/a&gt;<br />
<br />
Close Button Sample<br />
下面为你展示了如何创建一个取消按钮。<br />
&lt;a href="#" class="lightwindow_action" rel="deactivate"&gt;Cancel&lt;/a&gt;<br />
<br />
Iframe Calls<br />
Iframe calls非常通用，你所作的就是在函数调用之前加入以下代码：<br />
&lt;a href="http://www.stickmanlabs.com" class="lightwindow_iframe_link" &gt;&lt;strong&gt;Open a LightWindow from an iframe!&lt;/strong&gt;&lt;/a&gt;<br />
&lt;script type="text/javascript"&gt;&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> var links = $$('.lightwindow_iframe_link');&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> links.each(function(link) {&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> Event.observe(link, 'click', function() {parent.myLightWindow.activate(null, link);}, false);&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> link.onclick = function() {return false;};&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> });&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
&lt;/script&gt;<br />
<br />
<br />
开始！Actions的学习<br />
Configuration Options（设置选项）<br />
下面是一些你可能设置的选项，以及它们可能的默认值如下：<br />
//The resize speed 0-10<br />
resizeSpeed : 8,<br />
contentOffset: {<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>height:20,<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>width :20<br />
},<br />
//Default sizes for each type<br />
dimensions :{<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>image: {height:250, width:250},<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>page : {height:250, width:250},<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>inline:{height:250, width:250},<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>media:{height:250, width:250},<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>external:{height:250, width:250},<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>titleHeight:25<br />
},<br />
//The class names to look for to create a LightWindow or an action<br />
classNames:{<br />
&nbsp;<wbr>&nbsp;<wbr> standard : 'lightwindow',<br />
&nbsp;<wbr>&nbsp;<wbr> action: 'lightwindow_action'<br />
},<br />
//The file types resepctive to their actions<br />
fileTypes:{<br />
page : ['asp', 'aspx', 'cgi', 'htm', 'html', 'pl', 'php4', 'php3', 'php', 'php5', 'phtml', 'rhtml', 'shtml', 'txt', 'vbs', 'rb'],&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
media : ['aif', 'aiff', 'asf', 'avi', 'divx', 'm1v', 'm2a', 'm2v', 'm3u', 'mid', 'midi', 'mov', 'moov', 'movie', 'mp2', 'mp3', 'mpa', 'mpa', 'mpe', 'mpeg', 'mpg', 'mpg', 'mpga', 'pps', 'qt', 'rm', 'ram', 'swf', 'viv', 'vivo', 'wav'],&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
image : ['bmp', 'gif', 'jpg', 'png', 'tiff']<br />
},<br />
//Mime types for the file types<br />
mimeTypes:{<br />
avi:'video/avi',<br />
aif:'audio/aiff',<br />
aiff : 'audio/aiff',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
gif : 'image/gif',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
bmp : 'image/bmp',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
jpeg : 'image/jpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
m1v : 'video/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
m2a : 'audio/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
m2v : 'video/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
m3u : 'audio/x-mpequrl',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mid : 'audio/x-midi',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
midi : 'audio/x-midi',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mjpg : 'video/x-motion-jpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
moov : 'video/quicktime',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mov : 'video/quicktime',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
movie : 'video/x-sgi-movie',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mp2 : 'audio/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mp3 : 'audio/mpeg3',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mpa : 'audio/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mpa : 'video/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mpe : 'video/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mpeg : 'video/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mpg : 'audio/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mpg : 'video/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
mpga : 'audio/mpeg',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
pdf : 'application/pdf',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
png : 'image/png',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
pps : 'application/mspowerpoint',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
qt : 'video/quicktime',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
ram : 'audio/x-pn-realaudio-plugin',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
rm : 'application/vnd.rn-realmedia',&nbsp;<wbr>&nbsp;<wbr><br />
<br />
swf&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>: 'application/x-shockwave-flash',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
tiff : 'image/tiff',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
viv : 'video/vivo',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
vivo : 'video/vivo',&nbsp;<wbr>&nbsp;<wbr><br />
wav : 'audio/wav',<br />
wmv : 'video/x-ms-wmv'&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
},<br />
//ActiveX Classids for file types<br />
classids:{<br />
mov : 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
swf : 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
wmv : 'clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6'<br />
},<br />
//The plugin sources for the file types<br />
codebases:{<br />
mov : 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
swf : 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
wmv : 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715'<br />
},<br />
// The default padding for the viewport when a window is to fit the browser<br />
viewportPadding : 10,<br />
// What files types should the EOLAS Fix be applied to<br />
EOLASFix : 'swf,wmv,fla,flv',<br />
// What are our overlay images and default opacity, the preset has to be prebuilt for firefox as we cannot use an opacity setting<br />
overlay : {&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
opacity : 0.7,&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
image : 'images/black.png',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
presetImage : 'images/black-70.png'<br />
},<br />
</p>
<table class="item-info table-break" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td class="topic word-break">
            <div class="topic">Re:lightwindow2.0的使用教程</div>
            </td>
        </tr>
        <tr>
            <td class="remark word-break" style="height: 200px" valign="top">
            <div class="remark word-break" id="div-view-remark2">// The default skin and associate markup, the id's and class are required<br />
            skin :&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> {<br />
            main:'&lt;div id="lightwindow_container" &gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;div id="lightwindow_title_bar" &gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;div id="lightwindow_title_bar_inner" &gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;span id="lightwindow_title_bar_title"&gt;&lt;/span&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;a id="lightwindow_title_bar_close_link" &gt;close&lt;/a&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/div&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;/div&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;div id="lightwindow_stage" &gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;div id="lightwindow_contents" &gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/div&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;div id="lightwindow_navigation" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;a href="#" id="lightwindow_previous" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;span id="lightwindow_previous_title"&gt;&lt;/span&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/a&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;a href="#" id="lightwindow_next" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;span id="lightwindow_next_title"&gt;&lt;/span&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/a&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;iframe name="lightwindow_navigation_shim" id="lightwindow_navigation_shim" src="javascript:false;" frameBorder="0" scrolling="no"&gt;&lt;/iframe&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/div&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;div id="lightwindow_galleries"&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;div id="lightwindow_galleries_tab_container" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;a href="#" id="lightwindow_galleries_tab" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;span id="lightwindow_galleries_tab_span" class="up" &gt;Galleries&lt;/span&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/a&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;/div&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;div id="lightwindow_galleries_list" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/div&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;/div&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;/div&gt;'+&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;div id="lightwindow_data_slide" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;div id="lightwindow_data_slide_inner" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;div id="lightwindow_data_details" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;div id="lightwindow_data_gallery_container" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;span id="lightwindow_data_gallery_current"&gt;&lt;/span&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>' of '+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;span id="lightwindow_data_gallery_total"&gt;&lt;/span&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;/div&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;div id="lightwindow_data_author_container" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 'by &lt;span id="lightwindow_data_author"&gt;&lt;/span&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/div&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/div&gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;div id="lightwindow_data_caption" &gt;'+<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;/div&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;/div&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/div&gt;'+<br />
            '&lt;/div&gt;',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            loading:'&lt;div id="lightwindow_loading" &gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;img src="images/ajax-loading.gif" alt="loading" /&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;span&gt;Loading or &lt;a href="javascript: myLightWindow.deactivate();"&gt;Cancel&lt;/a&gt;&lt;/span&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;iframe name="lightwindow_loading_shim" id="lightwindow_loading_shim" src="javascript:false;" frameBorder="0" scrolling="no"&gt;&lt;/iframe&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            '&lt;/div&gt;',<br />
            iframe:'&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            '&lt;body&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            '{body_replace}'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            '&lt;/body&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            '&lt;/html&gt;',<br />
            gallery : {<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>top :&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;div class="lightwindow_galleries_list"&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;h1&gt;{gallery_title_replace}&lt;/h1&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;ul&gt;',<br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>middle :&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;li&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '{gallery_link_replace}'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;/li&gt;',&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>bottom :&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> '&lt;/ul&gt;'+&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>'&lt;/div&gt;'&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />
            &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> }<br />
            },<br />
            //What form method should be used<br />
            formMethod:'get',<br />
            //should flash objects be hidden on the page when the window opens<br />
            hideFlash:false,<br />
            //Hide the gallery tab<br />
            hideGalleryTab:false,<br />
            //Show the gallery count when viewing a gallery<br />
            showGalleryCount :true,<br />
            //Define your own handlers here,see the 'How to Theme Section'<br />
            animationHeandler:false,<br />
            navigationHandler:false,<br />
            transitionHandler:false,<br />
            finalanimationHandler:false,<br />
            formHandler:false,<br />
            galleryAnimationHandler:false</div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/shishaomeng/aggbug/267369.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-24 15:23 <a href="http://www.blogjava.net/shishaomeng/articles/267369.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>proxool 简单使用</title><link>http://www.blogjava.net/shishaomeng/articles/267288.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Fri, 24 Apr 2009 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/267288.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/267288.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/267288.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/267288.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/267288.html</trackback:ping><description><![CDATA[首先从 http://<a href="http://proxool.sourceforge.net/">proxool.sourceforge.net/ </a>下载<br />
proxool-0.9.0RC2.zip
<p><font size="+0">解压后，把proxool-0.9.0RC2.jar放到工程的lib文件夹里面。<br />
proxool是一个非常强大的连接池工具包，我觉得相比dbcp、c3p0这两个连接池包都要好用，我用loadrunner测试过，这三个连接池的从性能上排名如下：proxool&gt;c3p0&gt;dbcp，特别是dbcp在大并发的情况下总是出现各种异常。详细关于dbcp的介绍请参考dbcp用户指南，dbcp实现参考<a href="http://tvjody.javaeye.com/admin/show/117225">tvjody.javaeye.com/admin/show/117225</a>。</font></p>
<p>下面是实现proxool的几种方式：<br />
<br />
<font size="3"><strong>JDBC连接方法：</strong></font></p>
<p>首先建一个proxool的配置文件proxool.xml<br />
</p>
<div class="code_title">proxool.xml 代码</div>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar">
<ol class="dp-xml">
    <li class="alt"><span><span class="tag"><!----><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"UTF-8"</span><span class="tag">?&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></span> </span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span><span class="comments"><!----></span><span>&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">something-else-entirely</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">proxool</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments"><!----></span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">alias</span><span class="tag">&gt;</span><span>DBPool</span><span class="tag"><span class="tag-name">alias</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments"><!----></span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">driver-url</span><span class="tag">&gt;</span><span>jdbc:oracle:thin:@192.168.0.40:1521:drcom</span><span class="tag"><span class="tag-name">driver-url</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments"><!----></span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">driver-class</span><span class="tag">&gt;</span><span>oracle.jdbc.driver.OracleDriver</span><span class="tag"><span class="tag-name">driver-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">driver-properties</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"user"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"drcom"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"password"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"drcom"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">driver-properties</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments"><!----></span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">house-keeping-sleep-time</span><span class="tag">&gt;</span><span>90000</span><span class="tag"><span class="tag-name">house-keeping-sleep-time</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments"><!----></span><span>&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">maximum-new-connections</span><span class="tag">&gt;</span><span>150</span><span class="tag"><span class="tag-name">maximum-new-connections</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments"><!----></span><span>&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">prototype-count</span><span class="tag">&gt;</span><span>3</span><span class="tag"><span class="tag-name">prototype-count</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments"><!----></span><span>&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">maximum-connection-count</span><span class="tag">&gt;</span><span>100</span><span class="tag"><span class="tag-name">maximum-connection-count</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments"><!----></span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">minimum-connection-count</span><span class="tag">&gt;</span><span>3</span><span class="tag"><span class="tag-name">minimum-connection-count</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">proxool</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class=""><span><span class="tag"><span class="tag-name">something-else-entirely</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>再在web.xml中进行配置，其中的ServletConfigurator是装载WEB-INF目录下的proxool.xml,并设置为Tomcat启动时就加载。Admin这个Servlet是proxool提供的察看连接池的信息的工具，<br />
<br />
<br />
<strong>web.xml 代码</strong></p>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar">
<ol class="dp-xml">
    <li class="alt"><span><span class="tag"><!----><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"UTF-8"</span><span class="tag">?&gt;</span><span>&nbsp;&nbsp;</span></span> </span>
    <li class=""><span><span class="tag">&lt;</span><span class="tag-name">web-app</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">"2.4"</span><span>&nbsp;</span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">"http://java.sun.com/xml/ns/j2ee"</span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xmlns:xsi</span><span>=</span><span class="attribute-value">"http://www.w3.org/2001/XMLSchema-instance"</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xsi:schemaLocation</span><span>="http://java.sun.com/xml/ns/j2ee&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>ServletConfigurator</span><span class="tag"><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.logicalcobwebs.proxool.configuration.ServletConfigurator &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">init-param</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param-name</span><span class="tag">&gt;</span><span>xmlFile</span><span class="tag"><span class="tag-name">param-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param-value</span><span class="tag">&gt;</span><span>WEB-INF/proxool.xml</span><span class="tag"><span class="tag-name">param-value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">init-param</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">load-on-startup</span><span class="tag">&gt;</span><span>1</span><span class="tag"><span class="tag-name">load-on-startup</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>Admin</span><span class="tag"><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.logicalcobwebs.proxool.admin.servlet.AdminServlet &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>Admin</span><span class="tag"><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>/admin</span><span class="tag"><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>TestServlet</span><span class="tag"><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selfservice.TestServlet &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">servlet-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">servlet</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>TestServlet</span><span class="tag"><span class="tag-name">servlet-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>/TestServlet</span><span class="tag"><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">servlet-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span><span class="tag"><span class="tag-name">web-app</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
</ol>
</div>
<br />
<br />
以上配置完成后，第三步就可以创建一个连接池的类了 <br />
<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar">
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">package</span><span>&nbsp;selfservice;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span><span class="keyword">import</span><span>&nbsp;java.sql.Connection;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span><span class="keyword">import</span><span>&nbsp;java.sql.DriverManager;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span><span class="keyword">import</span><span>&nbsp;java.sql.ResultSet;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span><span class="keyword">import</span><span>&nbsp;java.sql.SQLException;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span><span class="keyword">import</span><span>&nbsp;java.sql.Statement;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span><span class="keyword">import</span><span>&nbsp;org.logicalcobwebs.proxool.ProxoolException;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span><span class="keyword">import</span><span>&nbsp;org.logicalcobwebs.proxool.ProxoolFacade;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span><span class="keyword">import</span><span>&nbsp;org.logicalcobwebs.proxool.admin.SnapshotIF;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;PoolManager&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">int</span><span>&nbsp;activeCount&nbsp;=&nbsp;</span><span class="number">0</span><span>;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;PoolManager(){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**&nbsp;&nbsp;&nbsp; </span>&nbsp;
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;获取连接&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;getConnection&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;name&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;Connection&nbsp;getConnection()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(</span><span class="string">"org.logicalcobwebs.proxool.ProxoolDriver"</span><span>);</span><span class="comment">//proxool驱动类&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;conn&nbsp;=&nbsp;DriverManager.getConnection(</span><span class="string">"proxool.DBPool"</span><span>);&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//此处的DBPool是在proxool.xml中配置的连接池别名&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;showSnapshotInfo();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;conn;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span class="keyword">catch</span><span>(Exception&nbsp;ex){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ex.printStackTrace();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">null</span><span>;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**&nbsp;&nbsp;&nbsp; </span>&nbsp;
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;此方法可以得到连接池的信息&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;showSnapshotInfo&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;showSnapshotInfo(){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SnapshotIF&nbsp;snapshot&nbsp;=&nbsp;ProxoolFacade.getSnapshot(</span><span class="string">"DBPool"</span><span>,&nbsp;</span><span class="keyword">true</span><span>);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">int</span><span>&nbsp;curActiveCount=snapshot.getActiveConnectionCount();</span><span class="comment">//获得活动连接数&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">int</span><span>&nbsp;availableCount=snapshot.getAvailableConnectionCount();</span><span class="comment">//获得可得到的连接数&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">int</span><span>&nbsp;maxCount=snapshot.getMaximumConnectionCount()&nbsp;;</span><span class="comment">//获得总连接数&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(curActiveCount!=activeCount)</span><span class="comment">//当活动连接数变化时输出的信息&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span class="string">"活动连接数:"</span><span>+curActiveCount+</span><span class="string">"(active)&nbsp;&nbsp;可得到的连接数:"</span><span>+availableCount+</span><span class="string">"(available)&nbsp;&nbsp;总连接数:"</span><span>+maxCount+</span><span class="string">"(max)"</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;activeCount=curActiveCount;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span class="keyword">catch</span><span>(ProxoolException&nbsp;e){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**&nbsp;&nbsp;&nbsp; </span>&nbsp;
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;获取连接&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;getConnection&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;name&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;Connection&nbsp;getConnection(String&nbsp;name){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;getConnection();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**&nbsp;&nbsp;&nbsp; </span>&nbsp;
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;释放连接&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;freeConnection&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;conn&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;freeConnection(Connection&nbsp;conn){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(conn!=</span><span class="keyword">null</span><span>){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.close();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">catch</span><span>&nbsp;(SQLException&nbsp;e)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**&nbsp;&nbsp;&nbsp; </span>&nbsp;
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;释放连接&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;freeConnection&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;name&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;con&nbsp;&nbsp;&nbsp; </span>&nbsp;</span>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;freeConnection&nbsp;(String&nbsp;name,Connection&nbsp;con){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;freeConnection(con);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;getQuery()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;conn&nbsp;=&nbsp;getConnection();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(conn&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Statement&nbsp;statement&nbsp;=&nbsp;conn.createStatement();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;=&nbsp;statement.executeQuery(</span><span class="string">"select&nbsp;*&nbsp;from&nbsp;tblgxinterface"</span><span>);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">int</span><span>&nbsp;c&nbsp;=&nbsp;rs.getMetaData().getColumnCount();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span>(rs.next()){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>(</span><span class="keyword">int</span><span>&nbsp;i=</span><span class="number">1</span><span>;i&lt;=c;i++){&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(rs.getObject(i));&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.close();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;freeConnection(conn);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">catch</span><span>&nbsp;(SQLException&nbsp;e)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>&nbsp;</p>
<p><br />
就这样我们完成了一个连接池的功能。proxool的连接池我用loadrunner进行大并发的测试，性能还是很好的。<br />
<br />
<font size="3"><strong>Hibernate中proxool连接池的方式：<br />
</strong></font><br />
首先步骤跟JDBC的连接池一样，也是新建一个proxool.xml配置文件，再在web.xml中配置，具体参考上面。<br />
第二步在hibernate的配置文件hibernate.cfg.xml中配置proxool连接设置：<br />
<br />
</p>
<div class="code_title">hibernate.cfg.xml代码</div>
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar">
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"hibernate.connection.provider_class"</span><span class="tag">&gt;</span><span>org.hibernate.connection.ProxoolConnectionProvider</span><span class="tag"><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span> </span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"hibernate.proxool.pool_alias"</span><span class="tag">&gt;</span><span>DBPool</span><span class="tag"><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"hibernate.proxool.xml"</span><span class="tag">&gt;</span><span>proxoolconf.xml</span><span class="tag"><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
</ol>
</div>
<p><br />
<strong><font size="3">Spring中proxool连接池的方式：<br />
</font></strong><br />
首先布骤与JDBC的连接池一样，先建一个proxool.xml配置文件，再在web.xml中配置，具体参考上面的。<br />
第二步在spring配置文件applicationContext.xml中配置proxool连接设置<br />
</p>
<div class="code_title">applicationContext.xml代码
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar">
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">"dataSource"</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.springframework.jdbc.datasource.DriverManagerDataSource"</span><span>&nbsp;</span><span class="attribute">singleton</span><span>=</span><span class="attribute-value">"true"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"driverClassName"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"org.logicalcobwebs.proxool.ProxoolDriver"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"url"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"proxool.StatDBPool"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">bean</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">"transactionManager"</span><span>&nbsp; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.springframework.jdbc.datasource.DataSourceTransactionManager"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"dataSource"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">ref</span><span>&nbsp;</span><span class="attribute">local</span><span>=</span><span class="attribute-value">"dataSource"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">property</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">bean</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;</span> </span></li>
</ol>
</div>
<span class="tag"><span class="tag"></span></div>
<span class="tag"><span class="tag"><span class="tag"><br />
<p>这样spring就能得到一个dataSource的数据源。<br />
<br />
<br />
proxool还有很多功能，我这只是简单的应用。具体请察看proxool用户指南。<br />
</p>
</span></span></span></span></div>
</div>
</span></span></span></span></span></span></span></span></span></div>
</span></span></div>
</span></span></span></div>
<img src ="http://www.blogjava.net/shishaomeng/aggbug/267288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-24 10:13 <a href="http://www.blogjava.net/shishaomeng/articles/267288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>连接池的基本工作原理</title><link>http://www.blogjava.net/shishaomeng/articles/267285.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Fri, 24 Apr 2009 02:01:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/267285.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/267285.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/267285.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/267285.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/267285.html</trackback:ping><description><![CDATA[<p>　　连接池的基本工作原理</p>
<p>　　1、基本概念及原理</p>
<p>　　由上面的分析可以看出，问题的根源就在于对数据库连接资源的低效管理。我们知道，对于共享资源，有一个很著名的设计模式：资源池 (Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题，可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个&#8220;缓冲池&#8221;。预先在缓冲池中放入一定数量的连接，当需要建立数据库连接时，只需从&#8220;缓冲池&#8221;中取出一个，使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量?使用情况，为系统开发?测试及性能调整提供依据。</p>
<p>　　2、服务器自带的连接池</p>
<p>　　JDBC的API中没有提供连接池的方法。一些大型的WEB应用服务器如BEA的WebLogic和IBM的WebSphere等提供了连接池的机制，但是必须有其第三方的专用类方法支持连接池的用法。</p>
<p>　　连接池关键问题分析</p>
<p>　　1、并发问题</p>
<p>　　为了使连接管理服务具有最大的通用性，必须考虑多线程环境，即并发问题。这个问题相对比较好解决，因为Java语言自身提供了对并发管理的支持，使用synchronized关键字即可确保线程是同步的。使用方法为直接在类方法前面加上synchronized关键字，如：</p>
<p>　　public synchronized Connection getConnection()</p>
<p>　　2、多数据库服务器和多用户</p>
<p>　　对于大型的企业级应用，常常需要同时连接不同的数据库(如连接Oracle和Sybase)。如何连接不同的数据库呢?我们采用的策略是：设计一个符合单例模式的连接池管理类，在连接池管理类的唯一实例被创建时读取一个资源文件，其中资源文件中存放着多个数据库的url地址()?用户名()?密码()等信息。如 tx.url=172.21.15.123：5000/tx_it，tx.user=yang，tx.password=yang321。根据资源文件提供的信息，创建多个连接池类的实例，每一个实例都是一个特定数据库的连接池。连接池管理类实例为每个连接池实例取一个名字，通过不同的名字来管理不同的连接池。</p>
<p>　　对于同一个数据库有多个用户使用不同的名称和密码访问的情况，也可以通过资源文件处理，即在资源文件中设置多个具有相同url地址，但具有不同用户名和密码的数据库连接信息。</p>
<p>　　3、事务处理</p>
<p>　　我们知道，事务具有原子性，此时要求对数据库的操作符合&#8220;ALL-ALL-NOTHING&#8221;原则,即对于一组SQL语句要么全做，要么全不做。</p>
<p>　　在Java语言中，Connection类本身提供了对事务的支持，可以通过设置Connection的AutoCommit属性为 false,然后显式的调用commit或rollback方法来实现。但要高效的进行Connection复用，就必须提供相应的事务支持机制。可采用每一个事务独占一个连接来实现，这种方法可以大大降低事务管理的复杂性。</p>
<p>　　4、连接池的分配与释放</p>
<p>　　连接池的分配与释放，对系统的性能有很大的影响。合理的分配与释放，可以提高连接的复用度，从而降低建立新连接的开销，同时还可以加快用户的访问速度。</p>
<p>　　对于连接的管理可使用空闲池。即把已经创建但尚未分配出去的连接按创建时间存放到一个空闲池中。每当用户请求一个连接时，系统首先检查空闲池内有没有空闲连接。如果有就把建立时间最长(通过容器的顺序存放实现)的那个连接分配给他(实际是先做连接是否有效的判断，如果可用就分配给用户，如不可用就把这个连接从空闲池删掉，重新检测空闲池是否还有连接);如果没有则检查当前所开连接池是否达到连接池所允许的最大连接数(maxConn),如果没有达到，就新建一个连接，如果已经达到，就等待一定的时间(timeout)。如果在等待的时间内有连接被释放出来就可以把这个连接分配给等待的用户，如果等待时间超过预定时间timeout,则返回空值(null)。系统对已经分配出去正在使用的连接只做计数，当使用完后再返还给空闲池。对于空闲连接的状态，可开辟专门的线程定时检测，这样会花费一定的系统开销，但可以保证较快的响应速度。也可采取不开辟专门线程，只是在分配前检测的方法。</p>
<p>　　5、连接池的配置与维护</p>
<p>　　连接池中到底应该放置多少连接，才能使系统的性能最佳?系统可采取设置最小连接数(minConn)和最大连接数(maxConn)来控制连接池中的连接。最小连接数是系统启动时连接池所创建的连接数。如果创建过多，则系统启动就慢，但创建后系统的响应速度会很快;如果创建过少，则系统启动的很快，响应起来却慢。这样，可以在开发时，设置较小的最小连接数，开发起来会快，而在系统实际使用时设置较大的，因为这样对访问客户来说速度会快些。最大连接数是连接池中允许连接的最大数目，具体设置多少，要看系统的访问量，可通过反复测试，找到最佳点。</p>
<p>　　如何确保连接池中的最小连接数呢?有动态和静态两种策略。动态即每隔一定时间就对连接池进行检测，如果发现连接数量小于最小连接数，则补充相应数量的新连接,以保证连接池的正常运转。静态是发现空闲连接不够时再去检查。</p>
<p>　　连接池的实现</p>
<p>　　1、连接池模型</p>
<p>　　本文讨论的连接池包括一个连接池类(DBConnectionPool)和一个连接池管理类 (DBConnetionPoolManager)。连接池类是对某一数据库所有连接的&#8220;缓冲池&#8221;，主要实现以下功能：①从连接池获取或创建可用连接;② 使用完毕之后，把连接返还给连接池;③在系统关闭前，断开所有连接并释放连接占用的系统资源;④还能够处理无效连接(原来登记为可用的连接，由于某种原因不再可用，如超时，通讯问题)，并能够限制连接池中的连接总数不低于某个预定值和不超过某个预定值。</p>
<p>　　连接池管理类是连接池类的外覆类(wrapper),符合单例模式，即系统中只能有一个连接池管理类的实例。其主要用于对多个连接池对象的管理，具有以下功能：①装载并注册特定数据库的JDBC驱动程序;②根据属性文件给定的信息，创建连接池对象;③为方便管理多个连接池对象，为每一个连接池对象取一个名字，实现连接池名字与其实例之间的映射;④跟踪客户使用连接情况，以便需要是关闭连接释放资源。连接池管理类的引入主要是为了方便对多个连接池的使用和管理，如系统需要连接不同的数据库，或连接相同的数据库但由于安全性问题，需要不同的用户使用不同的名称和密码。</p>
<p>　　2、连接池实现</p>
<p>　　下面给出连接池类和连接池管理类的主要属性及所要实现的基本接口：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://blog.csdn.net/ilibaba/archive/2009/03/17/3996962.aspx#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://blog.csdn.net/ilibaba/archive/2009/03/17/3996962.aspx#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://blog.csdn.net/ilibaba/archive/2009/03/17/3996962.aspx#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://blog.csdn.net/ilibaba/archive/2009/03/17/3996962.aspx#">?</a></div>
</div>
<ol class="dp-j">
    <li class="alt"><span><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;DBConnectionPool&nbsp;</span><span class="keyword">implements</span><span>&nbsp;TimerListener{ &nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">int</span><span>&nbsp;checkedOut;</span><span class="comment">//已被分配出去的连接数 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">private</span><span>&nbsp;ArrayList&nbsp;freeConnections=</span><span class="keyword">new</span><span>&nbsp;ArrayList(); &nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="comment">//容器，空闲池，根据//创建时间顺序存放已创建但尚未分配出去的连接 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">int</span><span>&nbsp;minConn;</span><span class="comment">//连接池里连接的最小数量 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">int</span><span>&nbsp;maxConn;</span><span class="comment">//连接池里允许存在的最大连接数 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">private</span><span>&nbsp;String&nbsp;name;</span><span class="comment">//为这个连接池取个名字，方便管理 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">private</span><span>&nbsp;String&nbsp;password;</span><span class="comment">//连接数据库时需要的密码 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">private</span><span>&nbsp;String&nbsp;url;</span><span class="comment">//所要创建连接的数据库的地址 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">private</span><span>&nbsp;String&nbsp;user;</span><span class="comment">//连接数据库时需要的用户名 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">public</span><span>&nbsp;Timer&nbsp;timer;</span><span class="comment">//定时器 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;DBConnectionPool(String&nbsp;name,String&nbsp;URL,String&nbsp;user, &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　String&nbsp;password,</span><span class="keyword">int</span><span>&nbsp;maxConn)</span><span class="comment">//公开的构造函数 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">synchronized</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;freeConnection(Connection&nbsp;con) &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//使用完毕之后，把连接返还给空闲池 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">synchronized</span><span>&nbsp;Connection&nbsp;getConnection(</span><span class="keyword">long</span><span>&nbsp;timeout) &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//得到一个连接，timeout是等待时间 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">synchronized</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;release() &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//断开所有连接，释放占用的系统资源 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">private</span><span>&nbsp;Connection&nbsp;newConnection() &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//新建一个数据库连接 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">synchronized</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;TimerEvent() &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//定时器事件处理函数 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;DBConnectionManager&nbsp;{ &nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">private</span><span>&nbsp;DBConnectionManager&nbsp;instance; &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//连接池管理类的唯一实例 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">int</span><span>&nbsp;clients;</span><span class="comment">//客户数量 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">private</span><span>&nbsp;ArrayList&nbsp;drivers=</span><span class="keyword">new</span><span>&nbsp;ArrayList(); &nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="comment">//容器，存放数据库驱动程序 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">private</span><span>&nbsp;HashMap&nbsp;pools&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;HashMap(); &nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="comment">//以name/value的形式存取连接池对象的名字及连接池对象 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">synchronized</span><span>&nbsp;</span><span class="keyword">public</span><span>&nbsp;DBConnectionManager&nbsp;getInstance() &nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="comment">/**如果唯一的实例instance已经创建，直接返回这个实例;否则，调用私有构造函数， </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">　　创建连接池管理类的唯一实例*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">private</span><span>&nbsp;DBConnectionManager() &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//私有构造函数,在其中调用初始化函数init() </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;freeConnection(String&nbsp;name,Connection&nbsp;con) &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//释放一个连接，name是一个连接池对象的名字 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;Connection&nbsp;getConnection(String&nbsp;name) &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//从名字为name的连接池对象中得到一个连接 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;Connection&nbsp;getConnection(String&nbsp;name,</span><span class="keyword">long</span><span>&nbsp;time) &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="comment">//从名字为name的连接池对象中取得一个连接，time是等待时间 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">synchronized</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;release()</span><span class="comment">//释放所有资源 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;createPools(Properties&nbsp;props) &nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="comment">//根据属性文件提供的信息，创建一个或多个连接池 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;init()</span><span class="comment">//初始化连接池管理类的唯一实例，由私有构造函数调用 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;loadDrivers(Properties&nbsp;props)</span><span class="comment">//装载数据库驱动程序 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　}&nbsp;&nbsp;</span></li>
</ol>
</div>
<textarea class="java" style="display: none" name="code" rows="15" cols="50">　　public class DBConnectionPool implements TimerListener{
　　private int checkedOut;//已被分配出去的连接数
　　private ArrayList freeConnections=new ArrayList();
　　//容器，空闲池，根据//创建时间顺序存放已创建但尚未分配出去的连接
　　private int minConn;//连接池里连接的最小数量
　　private int maxConn;//连接池里允许存在的最大连接数
　　private String name;//为这个连接池取个名字，方便管理
　　private String password;//连接数据库时需要的密码
　　private String url;//所要创建连接的数据库的地址
　　private String user;//连接数据库时需要的用户名
　　public Timer timer;//定时器
　　public DBConnectionPool(String name,String URL,String user,
　　String password,int maxConn)//公开的构造函数
　　public synchronized void freeConnection(Connection con)
　　//使用完毕之后，把连接返还给空闲池
　　public synchronized Connection getConnection(long timeout)
　　//得到一个连接，timeout是等待时间
　　public synchronized void release()
　　//断开所有连接，释放占用的系统资源
　　private Connection newConnection()
　　//新建一个数据库连接
　　public synchronized void TimerEvent()
　　//定时器事件处理函数
　　}
　　public class DBConnectionManager {
　　static private DBConnectionManager instance;
　　//连接池管理类的唯一实例
　　static private int clients;//客户数量
　　private ArrayList drivers=new ArrayList();
　　//容器，存放数据库驱动程序
　　private HashMap pools = new HashMap();
　　//以name/value的形式存取连接池对象的名字及连接池对象
　　static synchronized public DBConnectionManager getInstance()
　　/**如果唯一的实例instance已经创建，直接返回这个实例;否则，调用私有构造函数，
　　创建连接池管理类的唯一实例*/
　　private DBConnectionManager()
　　//私有构造函数,在其中调用初始化函数init()
　　public void freeConnection(String name,Connection con)
　　//释放一个连接，name是一个连接池对象的名字
　　public Connection getConnection(String name)
　　//从名字为name的连接池对象中得到一个连接
　　public Connection getConnection(String name,long time)
　　//从名字为name的连接池对象中取得一个连接，time是等待时间
　　public synchronized void release()//释放所有资源
　　private void createPools(Properties props)
　　//根据属性文件提供的信息，创建一个或多个连接池
　　private void init()//初始化连接池管理类的唯一实例，由私有构造函数调用
　　private void loadDrivers(Properties props)//装载数据库驱动程序
　　}</textarea> <br />
<p>　　3、连接池使用</p>
<p>　　上面所实现的连接池在程序开发时如何应用到系统中呢?下面以Servlet为例说明连接池的使用。</p>
<p>　　Servlet的生命周期是：在开始建立servlet时，调用其初始化(init)方法。之后每个用户请求都导致一个调用前面建立的实例的service方法的线程。最后，当服务器决定卸载一个servlet时，它首先调用该servlet的destroy方法。</p>
<p>　　根据servlet的特点，我们可以在初始化函数中生成连接池管理类的唯一实例(其中包括创建一个或多个连接池)。如：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://blog.csdn.net/ilibaba/archive/2009/03/17/3996962.aspx#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://blog.csdn.net/ilibaba/archive/2009/03/17/3996962.aspx#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://blog.csdn.net/ilibaba/archive/2009/03/17/3996962.aspx#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://blog.csdn.net/ilibaba/archive/2009/03/17/3996962.aspx#">?</a></div>
</div>
<ol class="dp-j">
    <li class="alt"><span><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;init()&nbsp;</span><span class="keyword">throws</span><span>&nbsp;ServletException &nbsp;&nbsp;</span></span></li>
    <li class=""><span>　　{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>　　connMgr=DBConnectionManager.getInstance(); &nbsp;&nbsp;</span></li>
    <li class=""><span>　　} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>　　然后就可以在service方法中通过连接池名称使用连接池，执行数据库操作。最后在destroy方法中释放占用的系统资源，如： &nbsp;&nbsp;</span></li>
    <li class=""><span>　　</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;destroy(){ &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　connMgr.release(); &nbsp;&nbsp;</span></li>
    <li class=""><span>　　</span><span class="keyword">super</span><span>.destroy(); &nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>　　}&nbsp;&nbsp;</span></li>
</ol>
</div>
<textarea class="java" style="display: none" name="code" rows="15" cols="50">　　public void init() throws ServletException
　　{
　　connMgr=DBConnectionManager.getInstance();
　　}
　　然后就可以在service方法中通过连接池名称使用连接池，执行数据库操作。最后在destroy方法中释放占用的系统资源，如：
　　public void destroy(){
　　connMgr.release();
　　super.destroy();
　　}</textarea> <br />
<p>　　结束语</p>
<p>　　在使用JDBC进行与数据库有关的应用开发中，数据库连接的管理是一个难点。很多时候，连接的混乱管理所造成的系统资源开销过大成为制约大型企业级应用效率的瓶颈。对于众多用户访问的Web应用，采用数据库连接技术的系统在效率和稳定性上比采用传统的其他方式的系统要好很多。本文阐述了使用 JDBC访问数据库的技术?讨论了基于连接池技术的数据库连接管理的关键问题并给出了一个实现模型。文章所给出的是连接池管理程序的一种基本模式，为提高系统的整体性能，在此基础上还可以进行很多有意义的扩展。</p>
<img src ="http://www.blogjava.net/shishaomeng/aggbug/267285.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-24 10:01 <a href="http://www.blogjava.net/shishaomeng/articles/267285.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript中event.keyCode键码值表</title><link>http://www.blogjava.net/shishaomeng/articles/267220.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Thu, 23 Apr 2009 12:07:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/267220.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/267220.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/267220.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/267220.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/267220.html</trackback:ping><description><![CDATA[<table style="width: 400px" cellspacing="1" cellpadding="1" align="left" bgcolor="#999999" border="0">
    <tbody>
        <tr align="center" bgcolor="#ffffff">
            <td colspan="8"><strong>字母和数字键的键码值(keyCode)</strong></td>
        </tr>
        <tr align="center" bgcolor="#dddddd">
            <td><font color="#003399">按键</font></td>
            <td><font color="#996600">键码</font></td>
            <td><font color="#003399">按键</font></td>
            <td><font color="#996600">键码</font></td>
            <td><font color="#003399">按键</font></td>
            <td><font color="#996600">键码</font></td>
            <td><font color="#003399">按键</font></td>
            <td><font color="#996600">键码</font></td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td>
            <p><font color="#ff0000">A</font></p>
            </td>
            <td>65</td>
            <td><font color="#ff0000">J</font></td>
            <td>74</td>
            <td><font color="#ff0000">S</font></td>
            <td>83</td>
            <td><font color="#ff0000">1</font></td>
            <td>49</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">B</font></td>
            <td>66</td>
            <td><font color="#ff0000">K</font></td>
            <td>75</td>
            <td><font color="#ff0000">T</font></td>
            <td>84</td>
            <td><font color="#ff0000">2</font></td>
            <td>50</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">C</font></td>
            <td>67</td>
            <td><font color="#ff0000">L</font></td>
            <td>76</td>
            <td><font color="#ff0000">U</font></td>
            <td>85</td>
            <td><font color="#ff0000">3</font></td>
            <td>51</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">D</font></td>
            <td>68</td>
            <td><font color="#ff0000">M</font></td>
            <td>77</td>
            <td><font color="#ff0000">V</font></td>
            <td>86</td>
            <td><font color="#ff0000">4</font></td>
            <td>52</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">E</font></td>
            <td>69</td>
            <td><font color="#ff0000">N</font></td>
            <td>78</td>
            <td><font color="#ff0000">W</font></td>
            <td>87</td>
            <td><font color="#ff0000">5</font></td>
            <td>53</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">F</font></td>
            <td>70</td>
            <td><font color="#ff0000">O</font></td>
            <td>79</td>
            <td><font color="#ff0000">X</font></td>
            <td>88</td>
            <td><font color="#ff0000">6</font></td>
            <td>54</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">G</font></td>
            <td>71</td>
            <td><font color="#ff0000">P</font></td>
            <td>80</td>
            <td><font color="#ff0000">Y</font></td>
            <td>89</td>
            <td><font color="#ff0000">7</font></td>
            <td>55</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">H</font></td>
            <td>72</td>
            <td><font color="#ff0000">Q</font></td>
            <td>81</td>
            <td><font color="#ff0000">Z</font></td>
            <td>90</td>
            <td><font color="#ff0000">8</font></td>
            <td>56</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">I</font></td>
            <td>73</td>
            <td><font color="#ff0000">R</font></td>
            <td>82</td>
            <td><font color="#ff0000">0</font></td>
            <td>48</td>
            <td><font color="#ff0000">9</font></td>
            <td>57</td>
        </tr>
    </tbody>
</table>
<div style="clear: both"></div>
<p>&nbsp;</p>
<div>
<table style="width: 400px" cellspacing="1" cellpadding="1" align="left" bgcolor="#999999" border="0">
    <tbody>
        <tr align="center" bgcolor="#ffffff">
            <td colspan="4"><strong>数字键盘上的键的键码值(keyCode)</strong></td>
            <td colspan="4"><strong>功能键键码值(keyCode)</strong></td>
        </tr>
        <tr align="center" bgcolor="#dddddd">
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td>
            <p><font color="#ff0000">0</font></p>
            </td>
            <td>96</td>
            <td><font color="#ff0000">8</font></td>
            <td>104</td>
            <td><font color="#ff0000">F1</font></td>
            <td>112</td>
            <td><font color="#ff0000">F7</font></td>
            <td>118</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">1</font></td>
            <td>97</td>
            <td><font color="#ff0000">9</font></td>
            <td>105</td>
            <td><font color="#ff0000">F2</font></td>
            <td>113</td>
            <td><font color="#ff0000">F8</font></td>
            <td>119</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">2</font></td>
            <td>98</td>
            <td><font color="#ff0000">*</font></td>
            <td>106</td>
            <td><font color="#ff0000">F3</font></td>
            <td>114</td>
            <td><font color="#ff0000">F9</font></td>
            <td>120</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">3</font></td>
            <td>99</td>
            <td><font color="#ff0000">+</font></td>
            <td>107</td>
            <td><font color="#ff0000">F4</font></td>
            <td>115</td>
            <td><font color="#ff0000">F10</font></td>
            <td>121</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">4</font></td>
            <td>100</td>
            <td><font color="#ff0000">Enter</font></td>
            <td>108</td>
            <td><font color="#ff0000">F5</font></td>
            <td>116</td>
            <td><font color="#ff0000">F11</font></td>
            <td>122</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">5</font></td>
            <td>101</td>
            <td><font color="#ff0000">-</font></td>
            <td>109</td>
            <td><font color="#ff0000">F6</font></td>
            <td>117</td>
            <td><font color="#ff0000">F12</font></td>
            <td>123</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">6</font></td>
            <td>102</td>
            <td>
            <p>　　<font color="#ff0000">.</font></p>
            </td>
            <td>110</td>
            <td><br />
            </td>
            <td><br />
            </td>
            <td><br />
            </td>
            <td><br />
            </td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">7</font></td>
            <td>
            <p>　　103</p>
            </td>
            <td><font color="#ff0000">/</font></td>
            <td>111</td>
            <td><br />
            </td>
            <td><br />
            </td>
            <td><br />
            </td>
            <td><br />
            </td>
        </tr>
    </tbody>
</table>
</div>
<div style="clear: both"></div>
<p>&nbsp;</p>
<div>
<table style="width: 400px" cellspacing="1" cellpadding="1" align="left" bgcolor="#999999" border="0">
    <tbody>
        <tr align="center" bgcolor="#ffffff">
            <td colspan="8"><strong>控制键键码值(keyCode)</strong></td>
        </tr>
        <tr align="center" bgcolor="#dddddd">
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
            <td width="10%"><font color="#003399">按键</font></td>
            <td width="10%"><font color="#996600">键码</font></td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">BackSpace</font></td>
            <td>8</td>
            <td><font color="#ff0000">Esc</font></td>
            <td>27</td>
            <td><font color="#ff0000">Right Arrow</font></td>
            <td>39</td>
            <td><font color="#ff0000">-_</font></td>
            <td>189</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Tab</font></td>
            <td>9</td>
            <td><font color="#ff0000">Spacebar</font></td>
            <td>32</td>
            <td><font color="#ff0000">Down Arrow</font></td>
            <td>40</td>
            <td><font color="#ff0000">.&gt;</font></td>
            <td>190</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Clear</font></td>
            <td>12</td>
            <td><font color="#ff0000">Page Up</font></td>
            <td>33</td>
            <td><font color="#ff0000">Insert</font></td>
            <td>45</td>
            <td><font color="#ff0000">/?</font></td>
            <td>191</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Enter</font></td>
            <td>13</td>
            <td><font color="#ff0000">Page Down</font></td>
            <td>34</td>
            <td><font color="#ff0000">Delete</font></td>
            <td>46</td>
            <td><font color="#ff0000">`~</font></td>
            <td>192</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Shift</font></td>
            <td>16</td>
            <td><font color="#ff0000">End</font></td>
            <td>35</td>
            <td><font color="#ff0000">Num Lock</font></td>
            <td>144</td>
            <td><font color="#ff0000">[{</font></td>
            <td>219</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Control</font></td>
            <td>17</td>
            <td><font color="#ff0000">Home</font></td>
            <td>36</td>
            <td><font color="#ff0000">;:</font></td>
            <td>186</td>
            <td><font color="#ff0000">\|</font></td>
            <td>220</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Alt</font></td>
            <td>18</td>
            <td><font color="#ff0000">Left Arrow</font></td>
            <td>37</td>
            <td><font color="#ff0000">=+</font></td>
            <td>187</td>
            <td><font color="#ff0000">]}</font></td>
            <td>221</td>
        </tr>
        <tr align="center" bgcolor="#ffffff">
            <td><font color="#ff0000">Cape Lock</font></td>
            <td>20</td>
            <td><font color="#ff0000">Up Arrow</font></td>
            <td>38</td>
            <td><font color="#ff0000">,&lt;</font></td>
            <td>188</td>
            <td><font color="#ff0000">'"</font></td>
            <td>222</td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
<div align="right"><font color="#000066"></font>&nbsp;</div>
<img src ="http://www.blogjava.net/shishaomeng/aggbug/267220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-23 20:07 <a href="http://www.blogjava.net/shishaomeng/articles/267220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript对象概念（转 愚人码头）</title><link>http://www.blogjava.net/shishaomeng/articles/266983.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Wed, 22 Apr 2009 06:26:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/266983.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/266983.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/266983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/266983.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/266983.html</trackback:ping><description><![CDATA[<br />
本文介绍了几乎所有关于对象的基本概念，什么是对象，如何创建对象，对象的属性的设置和读取，删除属性的方法，构造函数，对象原型，父类，子类，继承等等。<br />
1.对象 <br />
* 对象是一种复合数据类型，它们将多个数据值集中在一个单元中，而且运行使用名字来存取这些值。解释对象的另一种方式是，对象是一个无序的属性集合，每个属性都有自己的名字和值。存储在对象中的已命名的值可以是数字和字符串这样的原始值，也可以是对象。<br />
*/<br />
var o = new Object();<br />
2.对象直接量创建对象 <br />
* 对象直接量由属性说明列表构成，列表包含在大括号中，其中的属性说明由逗号隔开。<br />
* 对象直接量中的每个属性说明都由属性名加上冒号和属性值构成。<br />
*/<br />
var zhangsan = {name:&#8221;zhangsan&#8221;, age:34, married:true};<br />
window.alert(typeof zhangsan); //输出object<br />
3.属性的读取和设置<br />
* 对象的属性通过点号运算符读取和设置。对象的新属性可以通过直接创建。<br />
*/<br />
window.alert(zhangsan.car); //输出undefined<br />
zhangsan.car=&#8221;BMW&#8221;; //直接赋值<br />
window.alert(zhangsan.car); //输出BMW<br />
&nbsp;4.属性的枚举<br />
* 通过for循环枚举每一个属性，顺序不能保证固定。<br />
* 注意枚举出的是属性名称，并不是属性值。<br />
*/<br />
var values = &#8220;&#8221;;<br />
for(var v in zhangsan)values += v+&#8221;\n&#8221;; //枚举每一个属性<br />
window.alert(values);<br />
5.属性的删除使用delete，如delete zhangsan.car<br />
*/<br />
6.构造函数 <br />
* 构造函数是具有两个特性的javascript函数：<br />
* (1)它由new 运算符调用；<br />
* (2)传递给它的是一个对新创建的空对象的应用，将该引用作为关键字this的值，而且它还要对新创建的对象进行适当的初始化。<br />
* 记住：构造函数只是初始化对象，并不返回新创建的对象。<br />
*/<br />
function Rectangle(w, h){<br />
this.width = w;<br />
this.height = h;<br />
}<br />
var ret1 = new Rectangle(2, 1);<br />
//注意构造函数是如何使用它的参数来初始化this关键字所引用的对象的属性<br />
7.对象的方法 <br />
* 所谓方法，就是通过对象调用的javascript函数。我们知道，函数就是数值，它们所使用的名字没有任何特殊之处，可以将函数赋给任何变量，甚至赋给一个对象的任何属性，那么这个属性就是对象的方法了。<br />
* 在对象的方法体内，关键字this的值就成了调用该方法的对象。<br />
*/<br />
function print(){}<br />
ret1.print = print;<br />
&nbsp;8.关于this的讨论<br />
* 任何一个用作方法的函数都会得到一个额外的实际参数，即调用该函数的对象。由于方法通常是对那个对象执行某种操作，所以要表达函数作用于对象这一事实，最好采用方法的调用语法。<br />
* 如rect.setSize(width, height);<br />
* setSize(rect, width, height);<br />
* 虽然这两行代码对对象rect执行相同的操作，但是第一行代码在表达对象rect是操作的焦点(或者说操作的目标)这一观点时显然清楚得多。<br />
*<br />
* 虽然有区别地对待函数和方法比较有用，但实际上它们之间的差别并不大。回忆一下，函数是存储在变量中的值，而那个变量也不过是全局对象的一个属性。因此，当你调用一个函数时，实际上调用的是全局对象的一个方法。<br />
* 在这样的函数中，关键字this引用的是全局对象。所以函数和方法之间在技术上没有差别，真正的差别在于设计和目的上，方法是用来对this对象进行操作的，而函数通常会是独立的，并不需要使用this对象。<br />
*/<br />
(function f(){<br />
var values = &#8220;&#8221;;<br />
for(var v in this)values += v + &#8221; &#8220;;<br />
window.alert(values);<br />
})(); //返回window对象的所有属性和方法名称<br />
9.原型对象和继承<br />
* javascript每个对象都有原型对象，每个对象都继承原型对象的所有属性。<br />
* 一个对象的原型是由创建并初始化该对象的构造函数定义的。javascript中的所有函数都有prototype属性，它引用了一个对象。虽然原型对象初始化时是空的，<br />
* 但是你在其中定义的任何属性都会被该构造函数创建的所有对象继承。<br />
*<br />
* 构造函数定义了对象的类，并初始化了类中状态变量的属性，如width和height。因为原型对象和构造函数关联在一起，所以类的每个成员都从原型对象继承了相同的属性。<br />
* 这说明原型对象是存放方法和其他常量属性的理想场所。<br />
*<br />
* 注意，继承是在查询一个属性值时自动发生的。属性并非从原型对象复制到新的对象的，它们只不过看起来像是那些对象的属性。这其中有两点重要的含义。<br />
* 一是使用原型对象可以大量减少每个对象对内存的需求量，因为对象可以继承许多属性。二是即使属性在对象被创建之后才添加到它的原型对象中，对象也能够继承这些属性。<br />
*<br />
* 每个类都有一个原型对象，这个原型对象都具有一套属性。但是实际上却有大量的类实例，每个实例都能继承原型对象的属性。由于一个原型对象能够被多个对象继承，所以javascript<br />
* 必须强化读写属性值之间的不对称性。在读对象o的属性p时，javas会首先检查o是否具有一个名为p的属性。如果o没有这个属性，javascript就会再检查o的原型对象是否具有这个属性。这样才使得以原型为基础的继承机制起作用。<br />
*<br />
* 但是当写一个属性的值时，javascript并不会检查原型对象中是否有这个属性的值。因为，如果允许改变原型对象的这一属性，那就改变了整个对象类的p值，包括其他new出来的对象变量的属性值。<br />
*<br />
* 因此，属性的继承只发生在读属性值时，而不会发生在写属性值时。如果你设置的对象o的属性p是对象o从它的原型对象继承而来的，那么结果就是你直接在对象o中创建了一个新属性p。现在o已经有了一个自己的名为p的属性，它就不会再从它的原型对象继承p的值了。当你读p的值时，java首先查询o的属性。<br />
* 由于它发现了o中定义的p，就不必再查询原型对象，也就不会再发现原型对象中定义的p值了。我们称之为o中的p&#8221;遮蔽&#8221;了或者说&#8221;隐藏&#8221;了原型对象中的属性p。<br />
*<br />
* 因为原型对象的属性被一个类的所有对象共享，所以通常只用它们来定义类中所有对象的相同的属性。这使得原型对象适用于方法定义和常量的定义。<br />
*/<br />
10. 实例属性、实例方法、类属性、类方法<br />
* 每个对象都有它自己单独的实例属性的副本。我们说javas中的实例属性是那些在对象中用构造函数创建的或初始化的属性。<br />
*<br />
* 实例方法是由特定对象或实例调用的。实例方法使用了关键字this来引用它们要操作的对象或实例。虽然一个类的任何实例都可以调用实例方法，并不意味着每个对象都像实例属性那样含有自己专有的方法副本。相反，每个实例方法都是由类的所有实例共享的。在javascript中，给类定义一个实例方法，是通过把构造函数的原型对象中的一个属性设置为函数值来实现的。<br />
* 这样，由那个构造函数创建的所有实例都会共享一个已继承的对函数的引用。<br />
*<br />
* 类属性表示在所有类实例中只有一个副本。在javascript中，类属性本质上就是全局变量。但是它们与一个类关联在一起，在javascript的名字空间中拥有一个逻辑位置，这样它们就不会被其他的同名属性覆盖。<br />
* 如Circle.PI=3.14。虽然Circle是一个构造函数，但是由于javascript函数是对象，所以我们可以创建函数的属性，就像创建对象的属性一样。<br />
*<br />
* 类方法与类属性相似。在javascript中，要定义一个类方法，只需要用合适的函数作为构造函数的属性即可。<br />
*/<br />
11. 父类和子类 <br />
* 在javascript中，Object类所有类的父类，处于类层次图的最上层。所有的类都继承了Object类的所有方法。<br />
*<br />
* 我们已经学会了对象如何从它们构造函数的原型对象中继承属性，那么它们又是如何继承类Object的属性哪？我们知道，原型对象本身就是一个对象，它是由构造函数Object()创建的。<br />
* 这就意味着原型对象继承了Object.prototype属性。因此，ret1会继承Rectangle.prototype的属性，还会继承Object.prototype的属性。整因为所有对象的prototype属性会继承Object.prototype属性，<br />
* 所以所有javascript子类都继承了Object的所有属性，也即Object类是javascript的根类，处于类层次图的最顶层。<br />
*/<br />
&nbsp;12.使用[]读取和设置对象的属性 <br />
* 通常会采用点号运算符访问对象的属性，但是点号后面的属性是标识符。在javascript中，标识符必须逐字输入，它们不是一种数据类型。如果程序中属性是动态的、不确定的，那么我们将无法访问。<br />
* 前面解释过，对象是一群属性的集合，也就是数组。那么可以使用数组访问成员的运算符[]来访问对象的属性。[]中是属性名称，是字符串类型，我们就可以动态的确定对象属性名称了。<br />
*<br />
* 使用[]运算符的对象我们也称之为关联数组。关联数组是一种数据结构，允许你动态地将任意值和任意字符串关联在一起。实际上，javascript对象在内部就是用关联数组实现的。使用点号运算符只是为了是他们看起来更像C++和Java的静态对象而已。<br />
*<br />
* 前面的for/in循环实际上是对数组的操作。<br />
*<br />
* 我们通常意义说的数组是将任何值和非负整数关联在一起的数据结构。<br />
*<br />
* 数组实际上是一个具有额外功能层的对象。如var a = new Array();window.alert(typeof a);输出Object。<br />
*/<br />
13. Object类的属性和方法<br />
* constructor属性表示初始化该对象的构造函数。因此，可以使用该属性来判断对象的类型。<br />
*/<br />
function A(){return &#8220;aaaaaaaaa&#8221;};<br />
var a = new A();<br />
window.alert(a.constructor); //输出的是A的函数定义<br />
window.alert(a.constructor==A); //结果是true<br />
window.alert(a.constructor()); //输出aaaaaaaaaa<br />
/**<br />
* toString()方法没有任何实际参数，它返回的是一个字符串，该字符串代表了调用它的对象的类型或值。当javascript需要将一个对象转化成字符串时就调用这个对象的toString方法。<br />
* 例如，当用运算符&#8221;+&#8221;把一个字符串和一个对象连接到一起时，或者把一个对象传递给alert()或document.write()方法时，就会调用toString()方法。<br />
*/<br />
本文来源于WEB前端开发 http://www.css88.com , 原文地址： http://www.css88.com/archives/512 <br />
<img src ="http://www.blogjava.net/shishaomeng/aggbug/266983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-22 14:26 <a href="http://www.blogjava.net/shishaomeng/articles/266983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>blueprint–css framework研究 </title><link>http://www.blogjava.net/shishaomeng/articles/266930.html</link><dc:creator>时邵猛</dc:creator><author>时邵猛</author><pubDate>Wed, 22 Apr 2009 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/shishaomeng/articles/266930.html</guid><wfw:comment>http://www.blogjava.net/shishaomeng/comments/266930.html</wfw:comment><comments>http://www.blogjava.net/shishaomeng/articles/266930.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shishaomeng/comments/commentRss/266930.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shishaomeng/services/trackbacks/266930.html</trackback:ping><description><![CDATA[<div class="entrybody">
<h3>1、介绍</h3>
<blockquote>
<p><a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://code.google.com/p/blueprintcss/');" href="http://code.google.com/p/blueprintcss/" target="_blank">blueprint</a>是一个所谓的css framework，相比较而言blueprint 代码中的注释还是比较详细的。</p>
<p>按照Jeff Croft的<a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.alistapart.com/articles/frameworksfordesigners');" href="http://www.alistapart.com/articles/frameworksfordesigners" target="_blank">Frameworks for Designers</a>(或中文版本 <a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://css.chinahtml.com/2007/css-118602092315431.shtml');" href="http://css.chinahtml.com/2007/css-118602092315431.shtml" target="_blank">理解Web框架，和如何构建一个CSS框架</a>)描述的如何构建一个css framework的方法：</p>
<p><font size="2"><em>There are several possible ways to go about building a framework, but the most common and arguably the most useful is to abstract your common CSS into individual stylesheets that each cover a particular part of the whole. For example, you may have a stylesheet that sets up the typography and another that handles the mass reset. The beauty of the approach is the ability to selectively include only the styles that you need. You may end up with six or seven different stylesheets in your framework, but if a particular project doesn&#8217;t need one or two of them, they don&#8217;t have to be included. The framework we created in our office has five stylesheets:.</em></font></p>
<ul>
    <li><em>reset.css—handles the mass reset. </em>
    <li><em>type.css—handles the typography. </em>
    <li><em>grid.css—handles the layout grid. </em>
    <li><em>widgets.css—handles widgets like tabs, drop-down menus, and &#8220;read more&#8221; buttons. </em>
    <li><em>base.css—includes all the other stylesheets, so that we only need to call base.css from our (X)HTML documents to use the entire framework.</em> </li>
</ul>
<p>blueprint的构建方式也与此类似：</p>
<p><strong>分而治之</strong>：</p>
<p>buleprint在功能组织上，将诸如布局(layout)、排版(typography)、组件（widget）、重置（reset）、打印(print)等功能分散到不同的css文件中。这样方便使用者只需要导入自己所要使用的功能，不用导入全部文件，提高页面装载性能。目前在组件部分只提供了对button的处理，尚未做到麦肯锡的MECE（&#8221;相互独立，完全穷尽&#8221;）的道。</p>
<p><strong>统一接口：</strong></p>
<p>尽管功能分散到多个css文件，但是导入时候，仍然只需要包含同样的文件screen.css文件，具体的导入细节在screen.css中再处理，统一了对外接口。</p>
<p>&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;css/blueprint/screen.css&#8221; type=&#8221;text/css&#8221; media=&#8221;screen, projection&#8221; /&gt;</p>
<p><strong>blueprint 所包含的css文件说明：</strong></p>
<ul>
    <li>screen.css<br />
    This is the main file of the framework. It imports other CSS<br />
    files from the &#8220;lib&#8221; directory, and should be included on<br />
    every page. </li>
</ul>
<p>类似于Jeff Croft的base.css功能，只需要包含此文件，就可以导入</p>
<ul>
    <li>print.css<br />
    This file sets some default print rules, so that printed versions<br />
    of your site looks better than they usually would. It should be<br />
    included on every page. </li>
</ul>
<p>用于处理打印，可以归类为widget。</p>
<ul>
    <li>lib/grid.css<br />
    This file sets up the grid (it&#8217;s true). It has a lot of classes<br />
    you apply to divs to set up any sort of column-based grid. </li>
</ul>
<p>用于处理页面的布局（栏目）</p>
<ul>
    <li>lib/typography.css<br />
    This file sets some default typography. It also has a few<br />
    methods for some really fancy stuff to do with your text. </li>
</ul>
<p>用于处理页面元素的排版。</p>
<ul>
    <li>lib/reset.css<br />
    This file resets CSS values that browsers tend to set for you. </li>
</ul>
<p>用于重置页面，对没有指定css属性的页面元素指定缺省值。</p>
<ul>
    <li>lib/buttons.css<br />
    Provides some great CSS-only buttons. </li>
</ul>
<p>用于处理按钮,可以归类为widget</p>
<ul>
    <li>lib/compressed.css<br />
    A compressed version of the core files. Use this on every live site.<br />
    See screen.css for instructions </li>
</ul>
<p>提供压缩过的（包含grid.css,tyopgraphy.css,reset.css,buttons.css）的css文件。</p>
</blockquote>
<h3>2、各模块用法研究</h3>
<h3>2.1、grid.css研究</h3>
<ul>
    <li><font size="4">对跨浏览器居中处理的兼容性处理</font> </li>
</ul>
<blockquote>
<p>一般而言，要处理firefox、ie在处理居中时候的不同，采用如下方式：</p>
</blockquote>
<blockquote>
<pre>body
{
text-align: center;
}
div#container
{
margin-left: auto;
margin-right: auto;
width: 50em;
text-align: left;
}</pre>
</blockquote>
<p>摘自：<a title="http://www.maxdesign.com.au/presentation/center/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.maxdesign.com.au/presentation/center/');" href="http://www.maxdesign.com.au/presentation/center/">http://www.maxdesign.com.au/presentation/center/</a></p>
<blockquote>
<p>blueprint的处理方式：</p>
</blockquote>
<blockquote>
<pre>body {
text-align: center; <span>/* IE6 Fix */</span>
margin:36px 0;
}
<span>/* A container should group all your columns. */</span>
.container {
text-align: left;
position: relative;
padding: 0;
margin: 0 auto;   <span>/* Centers layout */</span>
width: 1150px;     <span>/* Total width */</span>
}</pre>
</blockquote>
<ul>
    <li>
    <pre><font size="4">分栏（Columns）的实现</font></pre>
    </li>
</ul>
<p>blueprint的处理方式：</p>
<p>blueprint定义了.column , .span-x ,.last ，两者结合来实现分栏功能。</p>
<p>其中：.column定义栏目的float属性；.span-x定义栏目宽度；.last将margin-right置为0px,</p>
<blockquote>
<pre>.column {
<span>float</span>: left;
margin-right: 10px;
padding: 0;
}
</pre>
<pre><span>/* Use these classes to set how wide a column should be. */</span>
.span-1   { width: 30px; }
.span-2   { width: 70px; }
.span-3   { width: 110px; }
.span-4   { width: 150px; }
...
.span-8   { width: 310px; }
.span-9   { width: 350px; }
.span-10  { width: 390px; }
...
.span-23  { width: 910px; }
.span-24  { width: 950px; margin: 0; }
.span-25  { width: 200px; }
.span-26 { width: 1150px; margin: 0; }
<span>/* The last element in a multi-column block needs this class. */</span>
.last     { margin-right: 0; }</pre>
<pre></pre>
<pre>三栏的实现：</pre>
<pre>&lt;div <span>class</span>=<span>"container"</span>&gt;
&lt;div <span>class</span>=<span>"column span-24"</span>&gt;
Header
&lt;/div&gt;
&lt;div <span>class</span>=<span>"column span-4"</span>&gt;
Left sidebar
&lt;/div&gt;
&lt;div <span>class</span>=<span>"column span-16"</span>&gt;
Main content
&lt;/div&gt;
&lt;div <span>class</span>=<span>"column span-4 last"</span>&gt;
Right sidebar
&lt;/div&gt;
&lt;/div&gt;</pre>
</blockquote>
<pre>     四栏的实现：</pre>
<blockquote>
<pre>&lt;div <span>class</span>=<span>"container"</span>&gt;
&lt;div <span>class</span>=<span>"column span-26"</span>&gt;
Header
&lt;/div&gt;
&lt;div <span>class</span>=<span>"column span-4"</span>&gt;
Left sidebar
&lt;/div&gt;
&lt;div <span>class</span>=<span>"column span-3 "</span>&gt;
Main content 0
&lt;/div&gt;
&lt;div <span>class</span>=<span>"column span-25"</span>&gt;
Main content  1
&lt;/div&gt;
&lt;div <span>class</span>=<span>"column span-4 last"</span>&gt;
Right sidebar
&lt;/div&gt;
&lt;/div&gt;</pre>
<pre>注意把.container中的width(定义了整个页面的width)修改为1150px</pre>
<pre>空白栏目的实现：</pre>
<pre>   对于多栏目（例如5栏目），其中有空白栏目（例如左右两栏目为空白），可以使用.append-x和.prepend-x来填充。</pre>
<pre>其中.append-x在栏目后（padding-right）添加空白栏目，.prepend-x在栏目前（padding-left）添加空白栏目。</pre>
</blockquote>
<ul>
    <li>
    <pre><font size="4">通用的容器定义</font></pre>
    </li>
</ul>
<blockquote>
<pre><span>/* A container should group all your columns. */</span>
.container {
text-align: left;
position: relative;
padding: 0;
margin: 0 auto;   <span>/* Centers layout */</span>
width: 1150px;     <span>/* Total width */</span>
}</pre>
</blockquote>
<pre></pre>
<h4>2.2、reset.css研究</h4>
<blockquote>
<p>reset.css的最初代码应该来自于Eric Meyer,Eric Meyer有两篇关于reset的日志，用于处理跨浏览器缺省值不同的问题。Eric Meyer的文档写得很精彩：</p>
<p>Reset Reasoning：<a title="http://meyerweb.com/eric/thoughts/2007/04/18/reset-reasoning/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://meyerweb.com/eric/thoughts/2007/04/18/reset-reasoning/');" href="http://meyerweb.com/eric/thoughts/2007/04/18/reset-reasoning/">http://meyerweb.com/eric/thoughts/2007/04/18/reset-reasoning/</a></p>
<p>Reset Reloaded：<a title="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/');" href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/</a></p>
</blockquote>
<ul>
    <li>为何要reset </li>
</ul>
<blockquote>
<p><em>The basic reason is that all browsers have presentation defaults, but no browsers have the same defaults. (Okay, no two browser families—most Gecko-based browsers do have the same defaults.)<br />
For example, some browsers indent unordered and ordered lists with left margins, whereas others use left padding. In past years, we tackled these inconsistencies on a case-by-case basis;</em></p>
</blockquote>
<ul>
    <li>为何使用reset style，而不是universal selector </li>
</ul>
<blockquote>
<p>所谓universal selector 就是使用* 来代表document所有的元素，例如</p>
<pre>* {
margin: 0;
padding 0;
}</pre>
<pre></pre>
<pre></pre>
</blockquote>
<ul>
    <li>关于reset style话题的一些资源： </li>
</ul>
<blockquote>
<p>YUI的reset库：<a title="http://developer.yahoo.com/yui/reset/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://developer.yahoo.com/yui/reset/');" href="http://developer.yahoo.com/yui/reset/">http://developer.yahoo.com/yui/reset/</a></p>
<p><a title="http://leftjustified.net/journal/2004/10/19/global-ws-reset/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://leftjustified.net/journal/2004/10/19/global-ws-reset/');" href="http://leftjustified.net/journal/2004/10/19/global-ws-reset/">http://leftjustified.net/journal/2004/10/19/global-ws-reset/</a></p>
<p>以下几篇实际上是讨论css framework或tips的文章，只不过都提到了reset话题。</p>
<p><a title="http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/');" href="http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/">http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/</a></p>
<p><a title="http://www.christianmontoya.com/2007/02/01/css-techniques-i-use-all-the-time/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.christianmontoya.com/2007/02/01/css-techniques-i-use-all-the-time/');" href="http://www.christianmontoya.com/2007/02/01/css-techniques-i-use-all-the-time/">http://www.christianmontoya.com/2007/02/01/css-techniques-i-use-all-the-time/</a></p>
<p><a title="http://businesslogs.com/design_and_usability/my_5_css_tips.php" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://businesslogs.com/design_and_usability/my_5_css_tips.php');" href="http://businesslogs.com/design_and_usability/my_5_css_tips.php">http://businesslogs.com/design_and_usability/my_5_css_tips.php</a></p>
<p><a title="http://www.pingmag.jp/2006/05/18/5-steps-to-css-heaven/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.pingmag.jp/2006/05/18/5-steps-to-css-heaven/');" href="http://www.pingmag.jp/2006/05/18/5-steps-to-css-heaven/">http://www.pingmag.jp/2006/05/18/5-steps-to-css-heaven/</a></p>
</blockquote>
<h4>2.3、typography.css研究</h4>
<blockquote>
<p>typography.css用于确定页面元素缺省的排版格式（baseline）：</p>
<p>Setting Type on the Web to a Baseline Grid：</p>
<p><a title="http://alistapart.com/articles/settingtypeontheweb" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://alistapart.com/articles/settingtypeontheweb');" href="http://alistapart.com/articles/settingtypeontheweb">http://alistapart.com/articles/settingtypeontheweb</a></p>
</blockquote>
<h4>2.4、buttons.css研究</h4>
<blockquote>
<p><a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://particletree.com/features/rediscovering-the-button-element');" href="http://particletree.com/features/rediscovering-the-button-element" target="_blank">Rediscovering the Button Element</a> 讨论了用button元素来替代input元素的种种好处，button元素是提供了较为丰富的功能。</p>
<p><a title="http://particletree.com/features/rediscovering-the-button-element" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://particletree.com/features/rediscovering-the-button-element');" href="http://particletree.com/features/rediscovering-the-button-element">http://particletree.com/features/rediscovering-the-button-element</a></p>
</blockquote>
<h4>2.4、print.css研究</h4>
<blockquote>
<p>Eric Meyer有一篇关于css实现print功能的文章，可以作为理解print.css的参考。</p>
<h3><a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.alistapart.com/articles/goingtoprint');" href="http://www.alistapart.com/articles/goingtoprint"><font size="2">CSS Design: Going to Print</font></a></h3>
<h4><a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://meyerweb.com/eric/articles/webrev/200001.html');" href="http://meyerweb.com/eric/articles/webrev/200001.html">Print Different</a></h4>
</blockquote>
<h4>2.5、compressed.css</h4>
<p>compressed.css是对blueprint几个文件压缩合成包，同时也对css文件进行了压缩，去除了无用的空格、换行、注释等文本。</p>
<p>此种方式用于在上生产系统部署时候使用，避免在页面导入多个css文件，同时也有利于提高页面性能。</p>
<blockquote>
<p>按照lib/screen.css中的说明，应该使用了teenage提供的css压缩服务：</p>
<p><a title="http://teenage.cz/acidofil/tools/cssformat.php" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://teenage.cz/acidofil/tools/cssformat.php');" href="http://teenage.cz/acidofil/tools/cssformat.php">http://teenage.cz/acidofil/tools/cssformat.php</a></p>
<p>另外类似的提供对css、javascript进行优化、压缩的服务还有：</p>
<p><a title="http://csstidy.sourceforge.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://csstidy.sourceforge.net/');" href="http://csstidy.sourceforge.net/">http://csstidy.sourceforge.net/</a> （开源）</p>
<p><a title="http://www.cssdrive.com/index.php/main/csscompressor/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.cssdrive.com/index.php/main/csscompressor/');" href="http://www.cssdrive.com/index.php/main/csscompressor/">http://www.cssdrive.com/index.php/main/csscompressor/</a></p>
<p><a title="http://www.cleancss.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.cleancss.com/');" href="http://www.cleancss.com/">http://www.cleancss.com/</a> （基于csstidy）</p>
</blockquote>
<h3>3、使用例子</h3>
<h3>4、参考文档</h3>
<p><a title="http://code.google.com/p/blueprintcss/wiki/Tutorial<br />
</a>" href="http://code.google.com/p/blueprintcss/wiki/Tutorial">http://code.google.com/p/blueprintcss/wiki/Tutorial<br />
</a></p>
<h3>5、相关项目</h3>
<blockquote>
<p>blueprint-generator: <a title="http://code.google.com/p/blueprintcss/wiki/Tutorial<br />
</a>" href="http://www.yeeach.com/2007/09/14/blueprint-css-framework/onclick=" javascript:pageTracker._trackPageview(? outbound article http: code.google.com p blueprintcss wiki Tutorial?>http://code.google.com/p/blueprintcss/wiki/Tutorial<br />
</a></p>
<h3>5、相关项目</h3>
<blockquote>
<p>blueprint-generator: <a title="http://monc.se/tripoli/" href="http://www.yeeach.com/2007/09/14/blueprint-css-framework/);%22http://kematzy.com/blueprint-generator/%22%20title=%22http://kematzy.com/blueprint-generator/%22%3Ehttp://kematzy.com/blueprint-generator/%3C/a%3E%3C/p%3E%3Cp%3Etripoli%20:%20%3Ca%20href=%22http://monc.se/tripoli/%22%20onclick=%22javascript:pageTracker._trackPageview("  outbound article http: monc.se tripoli ?);?>http://monc.se/tripoli/</a></p>
</blockquote>
<p><strong>Technorati 标签: </strong><a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://technorati.com/tags/css%20framework/');" href="http://technorati.com/tags/css%20framework/" rel="tag"><strong>css framework</strong></a><strong> , </strong><a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://technorati.com/tags/blueprint/');" href="http://technorati.com/tags/blueprint/" rel="tag"><strong>blueprint</strong></a><strong> , </strong><a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://technorati.com/tags/css%20%e6%a1%86%e6%9e%b6/');" href="http://technorati.com/tags/css%20%e6%a1%86%e6%9e%b6/" rel="tag"><strong>css 框架</strong></a><strong> , </strong><a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://technorati.com/tags/css%20compressor/');" href="http://technorati.com/tags/css%20compressor/" rel="tag"><strong>css compressor</strong></a><strong> , </strong><a onclick="javascript:pageTracker._trackPageview('/outbound/article/http://technorati.com/tags/csstidy/');" href="http://technorati.com/tags/csstidy/" rel="tag"><strong>csstidy</strong></a></p>
<br />
</blockquote></div>
<RDF:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><RDF:DESCRIPTION rdf:about="http://www.yeeach.com/2007/09/14/blueprint-css-framework/" dc:identifier="http://www.yeeach.com/2007/09/14/blueprint-css-framework/" dc:title="blueprint&#8211;css framework研究" trackback:ping="http://www.yeeach.com/2007/09/14/blueprint-css-framework/trackback/"></RDF:DESCRIPTION></RDF:RDF>
<img src ="http://www.blogjava.net/shishaomeng/aggbug/266930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shishaomeng/" target="_blank">时邵猛</a> 2009-04-22 11:17 <a href="http://www.blogjava.net/shishaomeng/articles/266930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>