<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_pony</title><subtitle type="text">抄袭是一种美德</subtitle><id>http://feed.cnblogs.com/blog/u/21915/rss</id><updated>2011-11-18T02:15:36Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/21915/rss"/><entry><id>http://www.cnblogs.com/pony/archive/2011/11/07/2239034.html</id><title type="text">字符编码笔记：ASCII，Unicode和UTF-8</title><summary type="text">(senma评：此文非常清晰通俗的论述了编码关系，受益匪浅。另外在编程中还有人经常会被系统当前字符和getbyte获取的字节概念不清，其实，在机器里，如果你打印或识别的不是乱码，那么就可以认可这个字是unicode的，是基准的，再处理都是在这基准上的。
另：文中链接的unicode编码地址的内容貌似是错误的)
作者： 阮一峰
日期： 2007年10月28日 今天中午，我突然想搞清楚U...</summary><published>2011-11-07T03:26:00Z</published><updated>2011-11-07T03:26:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/11/07/2239034.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/11/07/2239034.html"/><content type="html">
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" &gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 0.8; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1.5em auto 2em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" &gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(85,102,119); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" &gt;&lt;span style="TEXT-ALIGN: left; WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(245,245,213); TEXT-INDENT: 0px; FONT: 12px/21px Georgia, serif; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(17,17,17); WORD-SPACING: 2px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" &gt;(senma评：此文非常清晰通俗的论述了编码关系，受益匪浅。另外在编程中还有人经常会被系统当前字符和getbyte获取的字节概念不清，其实，在机器里，如果你打印或识别的不是乱码，那么就可以认可这个字是unicode的，是基准的，再处理都是在这基准上的。&lt;/span&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(85,102,119); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" &gt;另：文中链接的unicode编码地址的内容貌似是错误的)&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(85,102,119); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" &gt;作者： &lt;a style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(85,102,119); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" href="http://www.ruanyifeng.com/" &gt;阮一峰&lt;/a&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(85,102,119); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;日期： &lt;a style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(85,102,119); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" href="http://www.ruanyifeng.com/blog/2007/10/"&gt;&lt;abbr style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(85,102,119); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"  title="2007-10-28T22:29:57+08:00"&gt;2007年10月28日&lt;/abbr&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" id="main-content" &gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" &gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;今天中午，我突然想搞清楚Unicode和UTF-8之间的关系，于是就开始在网上查资料。&lt;/p&gt;
&lt;/div&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px" id="more" &gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;结果，这个问题比我想象的复杂，从午饭后一直看到晚上9点，才算初步搞清楚。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;下面就是我的笔记，主要用来整理自己的思路。但是，我尽量试图写得通俗易懂，希望能对其他朋友有用。毕竟，字符编码是计算机技术的基石，想要熟练使用计算机，就必须懂得一点字符编码的知识。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;strong style="FONT-WEIGHT: 800"&gt;1. ASCII码&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;我们知道，在计算机内部，所有的信息最终都表示为一个二进制的字符串。每一个二进制位（bit）有0和1两种状态，因此八个二进制位就可以组合出256种状态，这被称为一个字节（byte）。也就是说，一个字节一共可以用来表示256种不同的状态，每一个状态对应一个符号，就是256个符号，从0000000到11111111。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;上个世纪60年代，美国制定了一套字符编码，对英语字符与二进制位之间的关系，做了统一规定。这被称为ASCII码，一直沿用至今。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;ASCII码一共规定了128个字符的编码，比如空格"SPACE"是32（二进制00100000），大写的字母A是65（二进制01000001）。这128个符号（包括32个不能打印出来的控制符号），只占用了一个字节的后面7位，最前面的1位统一规定为0。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;strong style="FONT-WEIGHT: 800"&gt;2、非ASCII编码&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;英语用128个符号编码就够了，但是用来表示其他语言，128个符号是不够的。比如，在法语中，字母上方有注音符号，它就无法用ASCII码表示。于是，一些欧洲国家就决定，利用字节中闲置的最高位编入新的符号。比如，法语中的é的编码为130（二进制10000010）。这样一来，这些欧洲国家使用的编码体系，可以表示最多256个符号。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;但是，这里又出现了新的问题。不同的国家有不同的字母，因此，哪怕它们都使用256个符号的编码方式，代表的字母却不一样。比如，130在法语编码中代表了é，在希伯来语编码中却代表了字母Gimel (ג)，在俄语编码中又会代表另一个符号。但是不管怎样，所有这些编码方式中，0-127表示的符号是一样的，不一样的只是128-255的这一段。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;至于亚洲国家的文字，使用的符号就更多了，汉字就多达10万左右。一个字节只能表示256种符号，肯定是不够的，就必须使用多个字节表达一个符号。比如，简体中文常见的编码方式是GB2312，使用两个字节表示一个汉字，所以理论上最多可以表示256x256=65536个符号。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;中文编码的问题需要专文讨论，这篇笔记不涉及。这里只指出，虽然都是用多个字节表示一个符号，但是GB类的汉字编码与后文的Unicode和UTF-8是毫无关系的。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;strong style="FONT-WEIGHT: 800"&gt;3.Unicode&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;正如上一节所说，世界上存在着多种编码方式，同一个二进制数字可以被解释成不同的符号。因此，要想打开一个文本文件，就必须知道它的编码方式，否则用错误的编码方式解读，就会出现乱码。为什么电子邮件常常出现乱码？就是因为发信人和收信人使用的编码方式不一样。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;可以想象，如果有一种编码，将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码，那么乱码问题就会消失。这就是Unicode，就像它的名字都表示的，这是一种所有符号的编码。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;Unicode当然是一个很大的集合，现在的规模可以容纳100多万个符号。每个符号的编码都不一样，比如，U+0639表示阿拉伯字母Ain，U+0041表示英语的大写字母A，U+4E25表示汉字"严"。具体的符号对应表，可以查询&lt;a style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(34,52,114); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: underline; PADDING-TOP: 0px" href="http://www.unicode.org/" target="_blank"&gt;unicode.org&lt;/a&gt;，或者专门的&lt;a style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(34,52,114); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: underline; PADDING-TOP: 0px" href="http://www.chi2ko.com/tool/CJK.htm" target="_blank"&gt;汉字对应表&lt;/a&gt;。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;strong style="FONT-WEIGHT: 800"&gt;4. Unicode的问题&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;需要注意的是，Unicode只是一个符号集，它只规定了符号的二进制代码，却没有规定这个二进制代码应该如何存储。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;比如，汉字"严"的unicode是十六进制数4E25，转换成二进制数足足有15位（100111000100101），也就是说这个符号的表示至少需要2个字节。表示其他更大的符号，可能需要3个字节或者4个字节，甚至更多。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;这里就有两个严重的问题，第一个问题是，如何才能区别unicode和ascii？计算机怎么知道三个字节表示一个符号，而不是分别表示三个符号呢？第二个问题是，我们已经知道，英文字母只用一个字节表示就够了，如果unicode统一规定，每个符号用三个或四个字节表示，那么每个英文字母前都必然有二到三个字节是0，这对于存储来说是极大的浪费，文本文件的大小会因此大出二三倍，这是无法接受的。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;它们造成的结果是：1）出现了unicode的多种存储方式，也就是说有许多种不同的二进制格式，可以用来表示unicode。2）unicode在很长一段时间内无法推广，直到互联网的出现。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;strong style="FONT-WEIGHT: 800"&gt;5.UTF-8&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;互联网的普及，强烈要求出现一种统一的编码方式。UTF-8就是在互联网上使用最广的一种unicode的实现方式。其他实现方式还包括UTF-16和UTF-32，不过在互联网上基本不用。&lt;strong style="FONT-WEIGHT: 800"&gt;重复一遍，这里的关系是，UTF-8是Unicode的实现方式之一。&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;UTF-8最大的一个特点，就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号，根据不同的符号而变化字节长度。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;UTF-8的编码规则很简单，只有二条：&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;1）对于单字节的符号，字节的第一位设为0，后面7位为这个符号的unicode码。因此对于英语字母，UTF-8编码和ASCII码是相同的。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;2）对于n字节的符号（n&amp;gt;1），第一个字节的前n位都设为1，第n+1位设为0，后面字节的前两位一律设为10。剩下的没有提及的二进制位，全部为这个符号的unicode码。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;下表总结了编码规则，字母x表示可用编码的位。&lt;/p&gt;
&lt;blockquote style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 1em; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(224,223,204); LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 2em; PADDING-LEFT: 1em; PADDING-RIGHT: 1em; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 1em; border-top-left-radius: 20px 20px; border-top-right-radius: 20px 20px; border-bottom-right-radius: 20px 20px; border-bottom-left-radius: 20px 20px"&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;Unicode符号范围 | UTF-8编码方式&lt;br/&gt;(十六进制) | （二进制）&lt;br/&gt;--------------------+---------------------------------------------&lt;br/&gt;0000 0000-0000 007F | 0xxxxxxx&lt;br/&gt;0000 0080-0000 07FF | 110xxxxx 10xxxxxx&lt;br/&gt;0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx&lt;br/&gt;0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;下面，还是以汉字"严"为例，演示如何实现UTF-8编码。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;已知"严"的unicode是4E25（100111000100101），根据上表，可以发现4E25处在第三行的范围内（0000 0800-0000 FFFF），因此"严"的UTF-8编码需要三个字节，即格式是"1110xxxx 10xxxxxx 10xxxxxx"。然后，从"严"的最后一个二进制位开始，依次从后向前填入格式中的x，多出的位补0。这样就得到了，"严"的UTF-8编码是"11100100 10111000 10100101"，转换成十六进制就是E4B8A5。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;strong style="FONT-WEIGHT: 800"&gt;6. Unicode与UTF-8之间的转换&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;通过上一节的例子，可以看到"严"的Unicode码是4E25，UTF-8编码是E4B8A5，两者是不一样的。它们之间的转换可以通过程序实现。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;在Windows平台下，有一个最简单的转化方法，就是使用内置的记事本小程序Notepad.exe。打开文件后，点击"文件"菜单中的"另存为"命令，会跳出一个对话框，在最底部有一个"编码"的下拉条。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;a style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(34,52,114); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: underline; PADDING-TOP: 0px" href="http://www.ruanyifeng.com/blog/2007/10/bg2007102801.jpg" target="_blank"&gt;&lt;img width="500" style="BORDER-BOTTOM: gray 1px solid; TEXT-ALIGN: left; BORDER-LEFT: gray 1px solid; PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: rgb(17,17,17); BORDER-TOP: gray 1px solid; FONT-WEIGHT: normal; BORDER-RIGHT: gray 1px solid; TEXT-DECORATION: none; PADDING-TOP: 0px" height="227" alt="bg2007102801.jpg" src="http://www.ruanyifeng.com/blog/2007/10/bg2007102801-thumb.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;里面有四个选项：ANSI，Unicode，Unicode big endian 和 UTF-8。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;1）ANSI是默认的编码方式。对于英文文件是ASCII编码，对于简体中文文件是GB2312编码（只针对Windows简体中文版，如果是繁体中文版会采用Big5码）。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;2）Unicode编码指的是UCS-2编码方式，即直接用两个字节存入字符的Unicode码。这个选项用的little endian格式。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;3）Unicode big endian编码与上一个选项相对应。我在下一节会解释little endian和big endian的涵义。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;4）UTF-8编码，也就是上一节谈到的编码方法。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;选择完"编码方式"后，点击"保存"按钮，文件的编码方式就立刻转换好了。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;strong style="FONT-WEIGHT: 800"&gt;7. Little endian和Big endian&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;上一节已经提到，Unicode码可以采用UCS-2格式直接存储。以汉字"严"为例，Unicode码是4E25，需要用两个字节存储，一个字节是4E，另一个字节是25。存储的时候，4E在前，25在后，就是Big endian方式；25在前，4E在后，就是Little endian方式。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;这两个古怪的名称来自英国作家斯威夫特的《格列佛游记》。在该书中，小人国里爆发了内战，战争起因是人们争论，吃鸡蛋时究竟是从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。为了这件事情，前后爆发了六次战争，一个皇帝送了命，另一个皇帝丢了王位。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;因此，第一个字节在前，就是"大头方式"（Big endian），第二个字节在前就是"小头方式"（Little endian）。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;那么很自然的，就会出现一个问题：计算机怎么知道某一个文件到底采用哪一种方式编码？&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;Unicode规范中定义，每一个文件的最前面分别加入一个表示编码顺序的字符，这个字符的名字叫做"零宽度非换行空格"（ZERO WIDTH NO-BREAK SPACE），用FEFF表示。这正好是两个字节，而且FF比FE大1。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;如果一个文本文件的头两个字节是FE FF，就表示该文件采用大头方式；如果头两个字节是FF FE，就表示该文件采用小头方式。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;strong style="FONT-WEIGHT: 800"&gt;8. 实例&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;下面，举一个实例。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;打开"记事本"程序Notepad.exe，新建一个文本文件，内容就是一个"严"字，依次采用ANSI，Unicode，Unicode big endian 和 UTF-8编码方式保存。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;然后，用文本编辑软件&lt;a style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(34,52,114); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: underline; PADDING-TOP: 0px" href="http://www.google.cn/search?aq=t&amp;amp;oq=UltraEdit&amp;amp;complete=1&amp;amp;hl=zh-CN&amp;amp;newwindow=1&amp;amp;rlz=1B3GGGL_zh-CNCN216CN216&amp;amp;q=ultraedit+%E4%B8%8B%E8%BD%BD&amp;amp;btnG=Google+%E6%90%9C%E7%B4%A2&amp;amp;meta=" target="_blank"&gt;UltraEdit中&lt;/a&gt;的"十六进制功能"，观察该文件的内部编码方式。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;1）ANSI：文件的编码就是两个字节"D1 CF"，这正是"严"的GB2312编码，这也暗示GB2312是采用大头方式存储的。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;2）Unicode：编码是四个字节"FF FE 25 4E"，其中"FF FE"表明是小头方式存储，真正的编码是4E25。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;3）Unicode big endian：编码是四个字节"FE FF 4E 25"，其中"FE FF"表明是大头方式存储。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;4）UTF-8：编码是六个字节"EF BB BF E4 B8 A5"，前三个字节"EF BB BF"表示这是UTF-8编码，后三个"E4B8A5"就是"严"的具体编码，它的存储顺序与编码顺序是一致的。&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;&lt;strong style="FONT-WEIGHT: 800"&gt;9. 延伸阅读&lt;/strong&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;* &lt;a style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(34,52,114); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: underline; PADDING-TOP: 0px" href="http://www.joelonsoftware.com/articles/Unicode.html" target="_blank"&gt;The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets&lt;/a&gt;（关于字符集的最基本知识）&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;* &lt;a style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(34,52,114); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: underline; PADDING-TOP: 0px" href="http://www.pconline.com.cn/pcedu/empolder/gj/other/0505/616631.html" target="_blank"&gt;谈谈Unicode编码&lt;/a&gt;&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;* &lt;a style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(34,52,114); BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: underline; PADDING-TOP: 0px" href="http://www.ietf.org/rfc/rfc3629.txt" target="_blank"&gt;RFC3629：UTF-8, a transformation format of ISO 10646&lt;/a&gt;（如果实现UTF-8的规定）&lt;/p&gt;
&lt;p style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; BORDER-RIGHT-STYLE: none; LIST-STYLE-TYPE: none; FONT-STYLE: normal; MARGIN: 1em 0px 0px 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(17,17,17); FONT-SIZE: 1.6em; BORDER-LEFT-STYLE: none; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0px"&gt;（完）&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;img src="http://www.cnblogs.com/pony/aggbug/2239034.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/11/07/2239034.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pony/archive/2011/10/18/2216305.html</id><title type="text">jQuery和ExtJS的timeOut超时设置和event事件处理</title><summary type="text">ajax请求如何自定义超时时间，并处理相应的超时事件呢？
对jQuery来说，超时可以直接设置timeout参数，并在error事件中捕获第二个参数，如果是&amp;quot;timeout&amp;quot;则表明捕获了超时事件，非常清楚。
例子： $.ajax({ type: &amp;quot;POST&amp;quot;, contentType: &amp;quot;application/json&amp;quot;, url: &amp;quot;../ws/M...</summary><published>2011-10-18T04:07:00Z</published><updated>2011-10-18T04:07:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/10/18/2216305.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/10/18/2216305.html"/><content type="html">
&lt;p style="PADDING-BOTTOM: 10px; TEXT-INDENT: 0px; MARGIN: 5px auto"&gt;&lt;span style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/28px Verdana; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" &gt;ajax请求如何自定义超时时间，并处理相应的超时事件呢？&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 10px; TEXT-INDENT: 0px; MARGIN: 5px auto"&gt;对&lt;strong&gt;jQuery&lt;/strong&gt;来说，超时可以直接设置timeout参数，并在error事件中捕获第二个参数，如果是"timeout"则表明捕获了超时事件，非常清楚。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 10px; TEXT-INDENT: 0px; MARGIN: 5px auto"&gt;例子：&lt;/p&gt;
&lt;pre style="BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; MARGIN-BOTTOM: 0px; COLOR: black; FONT-SIZE: small" xml:space="preserve" &gt;$.ajax({&lt;br/&gt;        type: &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;"POST"&lt;/span&gt;,&lt;br/&gt;        contentType: &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;"application/json"&lt;/span&gt;,&lt;br/&gt;        url: &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;"../ws/MyService.asmx/test"&lt;/span&gt;,&lt;br/&gt;        data: &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;'{"email":"'&lt;/span&gt;+email+&lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;'"}'&lt;/span&gt;, &lt;br/&gt;        timeout: 30000, &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;//超时时间：30秒&lt;/span&gt;
        dataType: &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;'json'&lt;/span&gt;,&lt;br/&gt;        error: &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;function&lt;/span&gt;(XMLHttpRequest, textStatus, errorThrown){&lt;br/&gt;        &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;//TODO: 处理status， http status code，超时 408&lt;/span&gt;
        &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;// 注意：如果发生了错误，错误信息（第二个参数）除了得到null之外，还可能&lt;/span&gt;
              &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;//是"timeout", "error", "notmodified" 和 "parsererror"。&lt;/span&gt;
        }, 
        success: &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;function&lt;/span&gt;(result) {&lt;br/&gt;          &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;// TODO: check result&lt;/span&gt;
        }
 });                
&lt;/pre&gt;
&lt;pre style="BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; MARGIN-BOTTOM: 0px; COLOR: black; FONT-SIZE: small" xml:space="preserve" &gt;另外，error事件返回的第一个参数XMLHttpRequest有一些有用的信息：&lt;br/&gt;XMLHttpRequest.readyState: 状态码&lt;br/&gt;&lt;span style="LINE-HEIGHT: 19px; BACKGROUND-COLOR: rgb(102,204,255)"&gt;&lt;span style="LINE-HEIGHT: 19px; BACKGROUND-COLOR: rgb(255,255,204)"&gt;  0 － （未初始化）还没有调用send()方法&lt;br/&gt;  1 － （载入）已调用send()方法，正在发送请求&lt;br/&gt;  2 － （载入完成）send()方法执行完成，已经接收到全部响应内容&lt;br/&gt;  3 － （交互）正在解析响应内容&lt;br/&gt;  4 － （完成）响应内容解析完成，可以在客户端调用了&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;XMLHttpRequest.status属性:一些错误代码&lt;br/&gt;HTTP  &lt;br/&gt;1xx-信息提示  &lt;br/&gt;这些状态代码表示临时的响应。客户端在收到常规响应之前，应准备接收一个或多个1xx响应。  &lt;br/&gt;100-继续。  &lt;br/&gt;101-切换协议。  &lt;br/&gt;2xx-成功  &lt;br/&gt;这类状态代码表明服务器成功地接受了客户端请求。  &lt;br/&gt;200-确定。客户端请求已成功。  &lt;br/&gt;201-已创建。  &lt;br/&gt;202-已接受。  &lt;br/&gt;203-非权威性信息。  &lt;br/&gt;204-无内容。  &lt;br/&gt;205-重置内容。  &lt;br/&gt;206-部分内容。  &lt;br/&gt;3xx-重定向  &lt;br/&gt;客户端浏览器必须采取更多操作来实现请求。例如，浏览器可能不得不请求服务器上的不同的页面，或通过代理服务器重复该请求。  &lt;br/&gt;301-对象已永久移走，即永久重定向。  &lt;br/&gt;302-对象已临时移动。  &lt;br/&gt;304-未修改。  &lt;br/&gt;307-临时重定向。  &lt;br/&gt;4xx-客户端错误  &lt;br/&gt;发生错误，客户端似乎有问题。例如，客户端请求不存在的页面，客户端未提供有效的身份验证信息。400-错误的请求。  &lt;br/&gt;401-访问被拒绝。IIS定义了许多不同的401错误，它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示，但不在IIS日志中显示：  &lt;br/&gt;401.1-登录失败。  &lt;br/&gt;401.2-服务器配置导致登录失败。  &lt;br/&gt;401.3-由于ACL对资源的限制而未获得授权。  &lt;br/&gt;401.4-筛选器授权失败。  &lt;br/&gt;401.5-ISAPI/CGI应用程序授权失败。  &lt;br/&gt;401.7-访问被Web服务器上的URL授权策略拒绝。这个错误代码为IIS6.0所专用。  &lt;br/&gt;403-禁止访问：IIS定义了许多不同的403错误，它们指明更为具体的错误原因：  &lt;br/&gt;403.1-执行访问被禁止。  &lt;br/&gt;403.2-读访问被禁止。  &lt;br/&gt;403.3-写访问被禁止。  &lt;br/&gt;403.4-要求SSL。  &lt;br/&gt;403.5-要求SSL128。  &lt;br/&gt;403.6-IP地址被拒绝。  &lt;br/&gt;403.7-要求客户端证书。  &lt;br/&gt;403.8-站点访问被拒绝。  &lt;br/&gt;403.9-用户数过多。  &lt;br/&gt;403.10-配置无效。  &lt;br/&gt;403.11-密码更改。  &lt;br/&gt;403.12-拒绝访问映射表。  &lt;br/&gt;403.13-客户端证书被吊销。  &lt;br/&gt;403.14-拒绝目录列表。  &lt;br/&gt;403.15-超出客户端访问许可。  &lt;br/&gt;403.16-客户端证书不受信任或无效。  &lt;br/&gt;403.17-客户端证书已过期或尚未生效。  &lt;br/&gt;403.18-在当前的应用程序池中不能执行所请求的URL。这个错误代码为IIS6.0所专用。  &lt;br/&gt;403.19-不能为这个应用程序池中的客户端执行CGI。这个错误代码为IIS6.0所专用。  &lt;br/&gt;403.20-Passport登录失败。这个错误代码为IIS6.0所专用。  &lt;br/&gt;404-未找到。  &lt;br/&gt;404.0-（无）-没有找到文件或目录。  &lt;br/&gt;404.1-无法在所请求的端口上访问Web站点。  &lt;br/&gt;404.2-Web服务扩展锁定策略阻止本请求。  &lt;br/&gt;404.3-MIME映射策略阻止本请求。  &lt;br/&gt;405-用来访问本页面的HTTP谓词不被允许（方法不被允许）  &lt;br/&gt;406-客户端浏览器不接受所请求页面的MIME类型。  &lt;br/&gt;407-要求进行代理身份验证。  &lt;br/&gt;412-前提条件失败。  &lt;br/&gt;413-请求实体太大。  &lt;br/&gt;414-请求URI太长。  &lt;br/&gt;415-不支持的媒体类型。  &lt;br/&gt;416-所请求的范围无法满足。  &lt;br/&gt;417-执行失败。  &lt;br/&gt;423-锁定的错误。  &lt;br/&gt;5xx-服务器错误  &lt;br/&gt;服务器由于遇到错误而不能完成该请求。  &lt;br/&gt;500-内部服务器错误。  &lt;br/&gt;500.12-应用程序正忙于在Web服务器上重新启动。  &lt;br/&gt;500.13-Web服务器太忙。  &lt;br/&gt;500.15-不允许直接请求Global.asa。  &lt;br/&gt;500.16-UNC授权凭据不正确。这个错误代码为IIS6.0所专用。  &lt;br/&gt;500.18-URL授权存储不能打开。这个错误代码为IIS6.0所专用。  &lt;br/&gt;500.100-内部ASP错误。  &lt;br/&gt;501-页眉值指定了未实现的配置。  &lt;br/&gt;502-Web服务器用作网关或代理服务器时收到了无效响应。  &lt;br/&gt;502.1-CGI应用程序超时。  &lt;br/&gt;502.2-CGI应用程序出错。application.  &lt;br/&gt;503-服务不可用。这个错误代码为IIS6.0所专用。  &lt;br/&gt;504-网关超时。  &lt;br/&gt;505-HTTP版本不受支持。  &lt;br/&gt;FTP  &lt;br/&gt;1xx-肯定的初步答复  &lt;br/&gt;这些状态代码指示一项操作已经成功开始，但客户端希望在继续操作新命令前得到另一个答复。  &lt;br/&gt;110重新启动标记答复。  &lt;br/&gt;120服务已就绪，在nnn分钟后开始。  &lt;br/&gt;125数据连接已打开，正在开始传输。  &lt;br/&gt;150文件状态正常，准备打开数据连接。  &lt;br/&gt;2xx-肯定的完成答复  &lt;br/&gt;一项操作已经成功完成。客户端可以执行新命令。200命令确定。  &lt;br/&gt;202未执行命令，站点上的命令过多。  &lt;br/&gt;211系统状态，或系统帮助答复。  &lt;br/&gt;212目录状态。  &lt;br/&gt;213文件状态。  &lt;br/&gt;214帮助消息。  &lt;br/&gt;215NAME系统类型，其中，NAME是AssignedNumbers文档中所列的正式系统名称。  &lt;br/&gt;220服务就绪，可以执行新用户的请求。  &lt;br/&gt;221服务关闭控制连接。如果适当，请注销。  &lt;br/&gt;225数据连接打开，没有进行中的传输。  &lt;br/&gt;226关闭数据连接。请求的文件操作已成功（例如，传输文件或放弃文件）。  &lt;br/&gt;227进入被动模式(h1,h2,h3,h4,p1,p2)。  &lt;br/&gt;230用户已登录，继续进行。  &lt;br/&gt;250请求的文件操作正确，已完成。  &lt;br/&gt;257已创建"PATHNAME"。  &lt;br/&gt;3xx-肯定的中间答复  &lt;br/&gt;该命令已成功，但服务器需要更多来自客户端的信息以完成对请求的处理。331用户名正确，需要密码。  &lt;br/&gt;332需要登录帐户。  &lt;br/&gt;350请求的文件操作正在等待进一步的信息。  &lt;br/&gt;4xx-瞬态否定的完成答复  &lt;br/&gt;该命令不成功，但错误是暂时的。如果客户端重试命令，可能会执行成功。421服务不可用，正在关闭控制连接。如果服务确定它必须关闭，将向任何命令发送这一应答。  &lt;br/&gt;425无法打开数据连接。  &lt;br/&gt;426Connectionclosed;transferaborted.  &lt;br/&gt;450未执行请求的文件操作。文件不可用（例如，文件繁忙）。  &lt;br/&gt;451请求的操作异常终止：正在处理本地错误。  &lt;br/&gt;452未执行请求的操作。系统存储空间不够。  &lt;br/&gt;5xx-永久性否定的完成答复  &lt;br/&gt;该命令不成功，错误是永久性的。如果客户端重试命令，将再次出现同样的错误。500语法错误，命令无法识别。这可能包括诸如命令行太长之类的错误。  &lt;br/&gt;501在参数中有语法错误。  &lt;br/&gt;502未执行命令。  &lt;br/&gt;503错误的命令序列。  &lt;br/&gt;504未执行该参数的命令。  &lt;br/&gt;530未登录。  &lt;br/&gt;532存储文件需要帐户。  &lt;br/&gt;550未执行请求的操作。文件不可用（例如，未找到文件，没有访问权限）。  &lt;br/&gt;551请求的操作异常终止：未知的页面类型。  &lt;br/&gt;552请求的文件操作异常终止：超出存储分配（对于当前目录或数据集）。  &lt;br/&gt;553未执行请求的操作。不允许的文件名。  &lt;br/&gt;常见的FTP状态代码及其原因  &lt;br/&gt;150-FTP使用两个端口：21用于发送命令，20用于发送数据。状态代码150表示服务器准备在端口20上打开新连接，发送一些数据。  &lt;br/&gt;226-命令在端口20上打开数据连接以执行操作，如传输文件。该操作成功完成，数据连接已关闭。  &lt;br/&gt;230-客户端发送正确的密码后，显示该状态代码。它表示用户已成功登录。  &lt;br/&gt;331-客户端发送用户名后，显示该状态代码。无论所提供的用户名是否为系统中的有效帐户，都将显示该状态代码。  &lt;br/&gt;426-命令打开数据连接以执行操作，但该操作已被取消，数据连接已关闭。  &lt;br/&gt;530-该状态代码表示用户无法登录，因为用户名和密码组合无效。如果使用某个用户帐户登录，可能键入错误的用户名或密码，也可能选择只允许匿名访问。如果使用匿名帐户登录，IIS的配置可能拒绝匿名访问。  &lt;br/&gt;550-命令未被执行，因为指定的文件不可用。例如，要GET的文件并不存在，或试图将文件PUT到您没有写入权限的目录。&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;
&lt;p style="PADDING-BOTTOM: 10px; TEXT-INDENT: 0px; MARGIN: 5px auto"&gt;&lt;strong&gt;ExtJS&lt;/strong&gt;的默认超时时间是30s，超过就会ajax请求失败，http status code 408。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 10px; TEXT-INDENT: 0px; MARGIN: 5px auto"&gt;设置ExtJS的超时时间方法需要用Ext.data.Connection 对象，并捕捉requestexception事件，例子：&lt;/p&gt;
&lt;pre style="BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; MARGIN-BOTTOM: 0px; COLOR: black; FONT-SIZE: small" xml:space="preserve" &gt;&lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;var&lt;/span&gt; conn=&lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;new&lt;/span&gt; Ext.data.Connection({&lt;br/&gt;    url: &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;"../ws/MyService.asmx/test"&lt;/span&gt;,&lt;br/&gt;    timeout : 60000, &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;//自定义超时时间，这里是60秒 (默认30s)&lt;/span&gt;
    autoAbort : &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;false&lt;/span&gt;,&lt;br/&gt;    disableCaching : &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;true&lt;/span&gt; ,&lt;br/&gt;    method : &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;"GET"&lt;/span&gt;
});

&lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;var&lt;/span&gt; proxy = &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;new&lt;/span&gt; Ext.data.HttpProxy(conn);&lt;br/&gt;&lt;br/&gt;proxy.getConnection().on(&lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;"requestcomplete"&lt;/span&gt;, &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;function&lt;/span&gt;(sender, response, options){    &lt;br/&gt;    &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;//成功，response.status = 200, response.statusText = 'OK'&lt;/span&gt;
});

proxy.getConnection().on(&lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;"requestexception"&lt;/span&gt;, &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;function&lt;/span&gt;(sender, response, options){&lt;br/&gt;    &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;//异常，捕捉 esponse.status  ( http status code 代码 )和 response.statusText &lt;/span&gt;
});
    
&lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;var&lt;/span&gt; store = &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;new&lt;/span&gt; Ext.data.Store({&lt;br/&gt;    proxy: proxy, &lt;br/&gt;    reader: myReader, &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;//需要另外定义一个reader&lt;/span&gt;
    baseParams: {myargument:&lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,96,128)" &gt;'myargumentValue'&lt;/span&gt;}, &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,128,0)" &gt;//改成你的参数名和值&lt;/span&gt;
    remoteSort: &lt;span style="LINE-HEIGHT: 19px; COLOR: rgb(0,0,255)" &gt;false&lt;/span&gt;
});    

store.load();
&lt;/pre&gt;
&lt;img src="http://www.cnblogs.com/pony/aggbug/2216305.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/10/18/2216305.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pony/archive/2011/09/21/2183694.html</id><title type="text">Sybase字符串函数-数学函数-系统函数</title><summary type="text">长度和语法分析datalength(char_expr)在char_expr中返回字符的长度值，忽略尾空substring(expression,start,length)返回部分字符串right(char_expr,int_expr)返回char_expr右边的int_expr字符基本字符串运算upper(char_expr)把char_expr转换成大写形式lower(char_exp...</summary><published>2011-09-21T03:27:00Z</published><updated>2011-09-21T03:27:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/09/21/2183694.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/09/21/2183694.html"/><content type="html">
&lt;table style="WIDTH: 100%; TABLE-LAYOUT: fixed"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;br/&gt;&lt;div &gt;&lt;span style="FONT-SIZE: 12px"&gt;长度和语法分析&lt;br/&gt;datalength(char_expr)&lt;br/&gt;在char_expr中返回字符的长度值，忽略尾空&lt;br/&gt;substring(expression,start,length)&lt;br/&gt;返回部分字符串&lt;br/&gt;right(char_expr,int_expr)&lt;br/&gt;返回char_expr右边的int_expr字符&lt;br/&gt;基本字符串运算&lt;br/&gt;upper(char_expr)&lt;br/&gt;把char_expr转换成大写形式&lt;br/&gt;lower(char_expr)&lt;br/&gt;把char_expr转换成小写形式&lt;br/&gt;space(int_expr)&lt;br/&gt;生成有int_expr个空格的字符串&lt;br/&gt;replicate(char_expr,int_expr)&lt;br/&gt;重复char_expr,int_expr次&lt;br/&gt;stuff(expr1,start,length,expr2)&lt;br/&gt;用expr2代替epxr1中start起始长为length的字符串&lt;br/&gt;reverse(char_expr)&lt;br/&gt;反写char_expr中的文本&lt;br/&gt;ltrim(char_expr)&lt;br/&gt;删除头空&lt;br/&gt;rtrim(char_expr)&lt;br/&gt;删除尾空&lt;br/&gt;格式转换&lt;br/&gt;ascii(char_expr)&lt;br/&gt;返回char_expr中第一个字符的ASCII值&lt;br/&gt;char(int_expr)&lt;br/&gt;把ASCII码转换为字符&lt;br/&gt;str(float_expr[,length[,decimal]])&lt;br/&gt;进行数值型到字符型转换&lt;br/&gt;soundex(char_expr)&lt;br/&gt;返回char_expr的soundex值&lt;br/&gt;difference(char_expr1,char_expr2)&lt;br/&gt;返回表达式soundex值之差&lt;br/&gt;串内搜索&lt;br/&gt;charindex(char_expr,expression)&lt;br/&gt;返回指定char_expr的开始位置,否则为0&lt;br/&gt;patindex("%pattern%",expression)&lt;br/&gt;返回指定样式的开始位置,否则为0&lt;br/&gt;&lt;br/&gt;datalength用于确定可变字符串的长度&lt;br/&gt;soundex用于确定字符串是否发音相似&lt;br/&gt;difference返回0-4之间的值，0表示最不相似，4表示最相似&lt;br/&gt;通配符&lt;br/&gt;% 匹配任何数量的字符或无字符&lt;br/&gt;_ 匹配任何单个字符（空间占位符）&lt;br/&gt;[] 规定有效范围,或某个"OR"条件&lt;br/&gt;[ABG] A,B,G&lt;br/&gt;[A-C] A,B,C&lt;br/&gt;[A-CE-G] A,B,C,E,F,G&lt;br/&gt;[^ABG] 除了A,B,G&lt;br/&gt;[^A-C] 除了A，B，C&lt;br/&gt;&lt;br/&gt;escape子句&lt;br/&gt;用某个转义字符可在搜索字符串时将通配符作为文字来包含。&lt;br/&gt;ANSI-89 SQL标准定义了escape子句指定某个转义字符&lt;br/&gt;缺省情况下，[]来转义某个通配符，例：&lt;br/&gt;select * from test_tab&lt;br/&gt;where description like "%20[%]%"&lt;br/&gt;语法：&lt;br/&gt;like char_expression escape escape_character&lt;br/&gt;例&lt;br/&gt;select * from test_tab&lt;br/&gt;where description like "%20#%%" escape "#"&lt;br/&gt;+ 可用于串接字符&lt;br/&gt;select au_laname+","+au_fname from authors&lt;br/&gt;&lt;br/&gt;数学函数&lt;br/&gt;abs(numeric_expr)&lt;br/&gt;返回指定值的绝对值&lt;br/&gt;ceiling(numeric_expr)&lt;br/&gt;返回大于或等于指定值的最小整数&lt;br/&gt;exp(float_expr)&lt;br/&gt;给出指定值的指数值&lt;br/&gt;floor(numeric_expr)&lt;br/&gt;返回小于或等于指定值的最大整数&lt;br/&gt;pi()&lt;br/&gt;返回常数3.1415926&lt;br/&gt;power(numeric_expr,power)&lt;br/&gt;返回numeric_expr的值给power的幂&lt;br/&gt;rand([int_expr])&lt;br/&gt;返回0-1之间的随机浮点数，可指定基值&lt;br/&gt;round(numeric_expr,int_expr)&lt;br/&gt;把数值表达式圆整到int_expr指定的精度&lt;br/&gt;sign(int_expr)&lt;br/&gt;返回正+1，零0或负-1&lt;br/&gt;sqrt(float_expr)&lt;br/&gt;返回指定值的平方根&lt;br/&gt;SQL SERVER支持所有标准的三角函数和其他有用的函数&lt;br/&gt;&lt;br/&gt;日期函数&lt;br/&gt;getdate()&lt;br/&gt;返回当前的系统日期和时间&lt;br/&gt;datename(datepart,date_expr)&lt;br/&gt;以字符串形式返回date_expr指定部分的值,转换成合适的名字&lt;br/&gt;datepart(datepart,date_expr)&lt;br/&gt;作为整数返回date_expr值的指定部分&lt;br/&gt;datediff(datepart,date_expr1,date_expr2)&lt;br/&gt;返回date_expr2-date_expr1,通过指定的datepart度量&lt;br/&gt;dateadd(datepart,number,date_expr)&lt;br/&gt;返回日期,通过在date_expr上增加指定number的日期部件而产生的&lt;br/&gt;&lt;br/&gt;datepart&lt;br/&gt;日期部件 缩写 值范围&lt;br/&gt;年 yy 1753-9999&lt;br/&gt;季度 qq 1-4&lt;br/&gt;月 mm 1-12&lt;br/&gt;每年中的天 dy 1-366&lt;br/&gt;天 dd 1-31&lt;br/&gt;星期 wk 1-54&lt;br/&gt;星期天 dw 1-7(1=sunday)&lt;br/&gt;小时 hh 0-23&lt;br/&gt;分钟 mi 0-59&lt;br/&gt;秒 ss 0-59&lt;br/&gt;毫秒 ms 0-999&lt;br/&gt;例：&lt;br/&gt;select invoice_no,&lt;br/&gt;datediff(dd,date_shipped,getdate())&lt;br/&gt;from invoices&lt;br/&gt;where balance_due&amp;gt;0&lt;br/&gt;&lt;br/&gt;转换函数convert&lt;br/&gt;此函数把值从一种类型改变成另一种类型&lt;br/&gt;convert(datetype [(length)],expression)&lt;br/&gt;select "Advance="+convert(char(12),advance)&lt;br/&gt;from titles&lt;br/&gt;日期转换&lt;br/&gt;convert(datetype[(length)],expression,format)&lt;br/&gt;format指定将日期转换为什么格式，有以下值：&lt;br/&gt;没有世纪 有世纪 转换字符串中日期格式&lt;br/&gt;0 or 100 mon dd yyy hh:miAM(or PM)&lt;br/&gt;1 101 mm/dd/yy&lt;br/&gt;2 102 yy.mm.dd&lt;br/&gt;3 103 dd/mm/yy&lt;br/&gt;4 104 dd.mm.yy&lt;br/&gt;5 105 dd-mm-yy&lt;br/&gt;6 106 dd mon yy&lt;br/&gt;7 107 mon dd,yy&lt;br/&gt;8 108 hh:mm:ss&lt;br/&gt;9 or 109 mon dd,yyyy hh:mi:ss:mmmAM(or PM)&lt;br/&gt;10 110 mm-dd-yy&lt;br/&gt;11 111 yy/mm/dd&lt;br/&gt;12 112 yymmdd&lt;br/&gt;&lt;br/&gt;系统函数&lt;br/&gt;函数 定义&lt;br/&gt;访问和安全性信息&lt;br/&gt;host_id() 客户进程的当前主机进程ID号&lt;br/&gt;host_name() 客户进程的当前主计算机名&lt;br/&gt;suser_id(["login_name"]) 用户的SQL Server ID号&lt;br/&gt;suser_name([server_user_id]) 用户的SQL Server登录名&lt;br/&gt;user_id(["name_in_db"]) 用户在数据库中的ID号&lt;br/&gt;user_name([user_id]) 用户在数据库中的名字&lt;br/&gt;user 用户在数据库中的名字&lt;br/&gt;show_role() 用户的当前活动角色&lt;br/&gt;数据库和对象信息&lt;br/&gt;db_id(["db_name"]) 数据库ID号&lt;br/&gt;db_name([db_id]) 数据库名&lt;br/&gt;object_id("objname") 数据库对象ID号&lt;br/&gt;object_name(obj_id]) 数据库对象号&lt;br/&gt;col_name(obj_id,col_id) 对象的栏名&lt;br/&gt;col_length("objname","colname") 栏的长度&lt;br/&gt;index_col("objname",index_id,key#) 已索引的栏名&lt;br/&gt;valid_name(char_expr) 若char_expr不是有效标识符，则返回0&lt;br/&gt;数据函数&lt;br/&gt;datalength(expression) 按字节返回expression的长度&lt;br/&gt;tsequal(timestamp1,timestamp2) 比较时戳值，若时戳值不匹配，则返回出错消息&lt;br/&gt;&lt;br/&gt;isnull()&lt;br/&gt;isnull函数用指定的值代替查询栏或合计中的空值&lt;br/&gt;例：&lt;br/&gt;select avg(isnull(total_order,$0))&lt;br/&gt;from invoices&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p &gt;&lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;
  &lt;span &gt;&lt;span &gt;Technorati&lt;/span&gt; : &lt;a href="http://technorati.com/tag/DB"  rel="tag"&gt;DB&lt;/a&gt;, &lt;a href="http://technorati.com/tag/sybase"  rel="tag"&gt;sybase&lt;/a&gt;&lt;/span&gt; 
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pony/aggbug/2183694.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/09/21/2183694.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pony/archive/2011/09/21/2183513.html</id><title type="text">inux 设置系统时间和硬件时间</title><summary type="text">linux 的系统时间有时跟硬件时间是不同步的
Linux时钟分为系统时钟（System Clock）和硬件（Real Time Clock，简称RTC）时钟。系统时钟是指当前Linux Kernel中的时钟，而硬件时钟则是主板上由电池供电的时钟，这个硬件时钟可以在BIOS中进行设置。当Linux启动时，硬件时钟会去读取系统时钟的设置，然后系统时钟就会独立于硬件运作。
Linux中的所有命令（包...</summary><published>2011-09-21T03:16:00Z</published><updated>2011-09-21T03:16:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/09/21/2183513.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/09/21/2183513.html"/><content type="html">
&lt;p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 0px; MARGIN: 5px auto; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"&gt;&lt;span style="TEXT-ALIGN: left; WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(250,247,239); TEXT-INDENT: 0px; FONT: 14px/21px verdana, 'ms song', Arial, Helvetica, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(57,57,57); WORD-SPACING: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" &gt;linux 的系统时间有时跟硬件时间是不同步的&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 0px; MARGIN: 5px auto; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"&gt;Linux时钟分为系统时钟（System Clock）和硬件（Real Time Clock，简称RTC）时钟。系统时钟是指当前Linux Kernel中的时钟，而硬件时钟则是主板上由电池供电的时钟，这个硬件时钟可以在BIOS中进行设置。当Linux启动时，硬件时钟会去读取系统时钟的设置，然后系统时钟就会独立于硬件运作。&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
Linux中的所有命令（包括函数）都是采用的系统时钟设置。在Linux中，用于时钟查看和设置的命令主要有date、hwclock和clock。其中，clock和hwclock用法相近，只用一个就行，只不过clock命令除了支持x86硬件体系外，还支持Alpha硬件体系。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 0px; MARGIN: 5px auto; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"&gt;1、date&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
查看系统时间&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
# date&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
设置系统时间&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
# date --set "07/07/06 10:19" （月/日/年时:分:秒）&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 0px; MARGIN: 5px auto; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"&gt;2、hwclock/clock&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
查看硬件时间&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
# hwclock --show&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
或者# clock --show&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
设置硬件时间&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
# hwclock --set --date="07/07/06 10:19" （月/日/年 时:分:秒）&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
或者# clock --set --date="07/07/06 10:19" （月/日/年 时:分:秒）&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 0px; MARGIN: 5px auto; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"&gt;3、硬件时间和系统时间的同步&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
按照前面的说法，重新启动系统，硬件时间会读取系统时间，实现同步，但是在不重新启动的时候，需要用hwclock或clock命令实现同步。&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
硬件时钟与系统时钟同步：# hwclock --hctosys（hc代表硬件时间，sys代表系统时间）或者# clock --hctosys&lt;br style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"/&gt;
系统时钟和硬件时钟同步：# hwclock --systohc或者# clock --systohc&lt;/p&gt;
&lt;p &gt;&lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;
  &lt;span &gt;&lt;span &gt;Technorati&lt;/span&gt; : &lt;a href="http://technorati.com/tag/linux"  rel="tag"&gt;linux&lt;/a&gt;&lt;/span&gt; 
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pony/aggbug/2183513.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/09/21/2183513.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pony/archive/2011/09/06/2169063.html</id><title type="text">Sybase采用固定表+存储过程实现分页</title><summary type="text">众所周知，sybase没有mysql的limit关键字，也不支持sqlserver的 ROW_NUMBER() 来对查询行数据动态设置ID来帮助索引分页。
网上大部分流传的都是使用临时表，网上搜一搜就可以搜到相关例子，没有用过，言称是很通用。
为了实现简单快速的分页，自己写了一套分页的工具。没有使用临时表，而使用了一个固定表的原因是：
1. 临时表管理上比较麻烦，需要分配表管理的权限，并且临时表...</summary><published>2011-09-06T10:24:00Z</published><updated>2011-09-06T10:24:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/09/06/2169063.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/09/06/2169063.html"/><content type="html">
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;&lt;span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 16px Simsun; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px" &gt;众所周知，sybase没有mysql的limit关键字，也不支持sqlserver的 ROW_NUMBER() 来对查询行数据动态设置ID来帮助索引分页。&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;网上大部分流传的都是使用临时表，网上搜一搜就可以搜到相关例子，没有用过，言称是很通用。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;为了实现简单快速的分页，自己写了一套分页的工具。没有使用临时表，而使用了一个固定表的原因是：&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;1. 临时表管理上比较麻烦，需要分配表管理的权限，并且临时表一般会放在master库下，如果查询数据很大或者临时表创建drop频繁，对系统性能会有影响。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;2.之前的经验认识到，其实大表如果是只写和查，没有数据合并或复杂的联表运算，在索引合理的情况下，速度还是非常好的。这是在我之前做大数据统计时得到的经验。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;下面开始建表：&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;其中id为int型的索引，数据分页就靠他来算。id1和id2一个是int型，一个是varchar型，&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;CREATE TABLE mytemptable (&lt;br/&gt;id integer NOT NULL,&lt;br/&gt;id1 integer NULL,&lt;br/&gt;id2 varchar(32) NULL&lt;br/&gt;)&lt;br/&gt;ALTER TABLE mytemptable ADD CONSTRAINT pk_orderform PRIMARY KEY (id)&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;存储过程：&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;其中type是类型&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;countsql是分页计算的sql ，比如 select tableid as id from table1 ，其中&lt;strong style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; FONT-WEIGHT: bold; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;as id&lt;/strong&gt; 是必须的&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;countordersql是分页时的order语句，因为sybase不支持在子查询里加排序，因此只能放在这个里面拼串&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;sql是真正的查询显示的sql，比如 select tableid as id,name,createdate from table1，其中&lt;strong style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; FONT-WEIGHT: bold; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;as id&lt;/strong&gt;仍旧是必须的&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;pagesize和currentpage分别是页大小和当前页&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;CREATE PROCEDURE pageUtil&lt;br/&gt;@type integer ,&lt;br/&gt;@countsql varchar(2048) ,&lt;br/&gt;@countordersql varchar(256) ,&lt;br/&gt;@sql varchar(16284) ,&lt;br/&gt;@pagesize integer ,&lt;br/&gt;@currentpage integer&lt;br/&gt;AS&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;BEGIN TRAN&lt;br/&gt;DECLARE @minid int&lt;br/&gt;DECLARE @beginid varchar(20)&lt;br/&gt;DECLARE @endid varchar(20)&lt;br/&gt;DECLARE @total int&lt;br/&gt;IF (@type=1)&lt;br/&gt;BEGIN&lt;br/&gt;set @countsql="insert mytemptable(id1,id2) select id," from ("&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@countsql+%22)temptemptemp"&gt;+@countsql+")temptemptemp&lt;/a&gt; "&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@countordersql"&gt;+@countordersql&lt;/a&gt;&lt;br/&gt;END&lt;br/&gt;ELSE&lt;br/&gt;BEGIN&lt;br/&gt;set @countsql="insert mytemptable(id1,id2) select 0,id from ("&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@countsql+%22)temptemptemp"&gt;+@countsql+")temptemptemp&lt;/a&gt; "&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@countordersql"&gt;+@countordersql&lt;/a&gt;&lt;br/&gt;END&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;execute (@countsql)&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;select @minid=min(id) from mytemptable&lt;br/&gt;set @beginid=convert(varchar(20),@minid+(@currentpage-1)*@pagesize)&lt;br/&gt;set @endid=convert(varchar(20),@minid+@currentpage*@pagesize-1)&lt;br/&gt;IF (@type=1)&lt;br/&gt;BEGIN&lt;br/&gt;set @sql="select * from ("&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@sql+%22)temptemptemp"&gt;+@sql+")temptemptemp&lt;/a&gt; where id in ( select id1 from mytemptable where id &amp;gt; ="&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@beginid"&gt;+@beginid&lt;/a&gt;+" and id &amp;lt; ="&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@endid"&gt;+@endid&lt;/a&gt;+")"&lt;br/&gt;END&lt;br/&gt;ELSE&lt;br/&gt;BEGIN&lt;br/&gt;set @sql="select * from ("&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@sql+%22)temptemptemp"&gt;+@sql+")temptemptemp&lt;/a&gt; where id in ( select id2 from mytemptable where id &amp;gt; ="&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@beginid"&gt;+@beginid&lt;/a&gt;+" and id &amp;lt; ="&lt;a style="BORDER-BOTTOM: rgb(238,238,238) 1px solid; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; COLOR: rgb(153,153,153); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" href="mailto:+@endid"&gt;+@endid&lt;/a&gt;+")"&lt;br/&gt;END&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;execute (@sql)&lt;br/&gt;select @total=count(*) from mytemptable&lt;br/&gt;delete from mytemptable&lt;br/&gt;IF (@total&amp;gt;0)&lt;br/&gt;BEGIN&lt;br/&gt;return @total&lt;br/&gt;END&lt;br/&gt;COMMIT TRAN&lt;br/&gt;RETURN 0&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;go&lt;/p&gt;
&lt;br/&gt;&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;===========================================================&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;原理说明：&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;1. 存储过程pageUtil根据countsql，把对应的id插入到临时表mytemptable（根据type的不同，type=1 Int型 插入到id1字段，type=2 varchar 型 插入到id2字段）&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;2. 一般的分页数据是有顺序的，这时候的order就可以放到countordersql中，可以按照自定义的方式排序，countsql里的select语句也可以查询多个字段为后面的order做准备，这也是countsql中必须要有 as id的原因。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;3.执行countsql将数据插入到mytemptable&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;4.根据分页参数换算出当前页在mytemptable中的索引 @beginid ，@endid，拼sql串。并执行此sql串。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;5. mytemptable的数据数即查询记录总条数，删除mytemptable中的数据，返回总条数。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;============================================================&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;调用例子：&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;/*******&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;***分页查询某个用户的所有订单，要求按照时间倒序排序&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;*****/&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;public HashMap&amp;lt;Object,Object&amp;gt; getUserConsumeRecord(String username, int pagesize,int currentpage) {&lt;br/&gt;String countsql=" select a.ordernumber as id,a.createdate as createdate from orderform a where a.username='"+username+"' ";&lt;br/&gt;String countordersql=" order by createdate desc ";&lt;br/&gt;String sql="select a.ordernumber as id, a.merchantid,a.orderid,a.chargeamount,a.payamount," +&lt;br/&gt;" from orderform a " +&lt;br/&gt;" where a.username='"+username+"' ";&lt;br/&gt;return this.getPage(2, countsql,countordersql, sql, pagesize, currentpage);&lt;br/&gt;}&lt;/p&gt;
&lt;br/&gt;&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;/******&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;**********调用存储过程pageUtil的通用方法***&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;***********/&lt;br/&gt;public HashMap&amp;lt;Object,Object&amp;gt; getPage(int type,String countsql,String countordersql,String sql,int pagesize,int currentpage)&lt;br/&gt;{&lt;br/&gt;HashMap&amp;lt;Object,Object&amp;gt; result=new HashMap&amp;lt;Object,Object&amp;gt;();&lt;br/&gt;result.put("pagesize", pagesize);&lt;br/&gt;result.put("currentpage", currentpage);&lt;br/&gt;Connection connection=null;&lt;br/&gt;Context context=null;&lt;br/&gt;try&lt;br/&gt;{&lt;br/&gt;connection=getConnection();//获取数据库连接，使用时自行修改&lt;br/&gt;java.sql.CallableStatement cs = connection.prepareCall("{?= call pageUtil(?,?,?,?,?,?)}");&lt;br/&gt;cs.registerOutParameter(1, java.sql.Types.INTEGER);&lt;br/&gt;cs.setInt(2, type);&lt;br/&gt;cs.setString(3, countsql);&lt;br/&gt;cs.setString(4, countordersql);&lt;br/&gt;cs.setString(5, sql);&lt;br/&gt;cs.setInt(6, pagesize);&lt;br/&gt;cs.setInt(7, currentpage);&lt;br/&gt;ResultSet data= cs.executeQuery();&lt;br/&gt;List&amp;lt;HashMap&amp;lt;String,Object&amp;gt;&amp;gt; list=new ArrayList&amp;lt;HashMap&amp;lt;String,Object&amp;gt;&amp;gt;();&lt;br/&gt;while(data.next())&lt;br/&gt;{&lt;br/&gt;int datasize=data.getMetaData().getColumnCount();&lt;br/&gt;HashMap&amp;lt;String,Object&amp;gt; thisdata=new HashMap&amp;lt;String,Object&amp;gt;();&lt;br/&gt;for(int i=1;i&amp;lt;=datasize;i++)&lt;br/&gt;{&lt;br/&gt;thisdata.put(data.getMetaData().getColumnName(i), data.getObject(i));&lt;br/&gt;}&lt;br/&gt;data.getMetaData().getColumnCount();&lt;br/&gt;System.out.println(data.getMetaData().getColumnCount());&lt;br/&gt;System.out.println(data.getString("id"));&lt;br/&gt;list.add(thisdata);&lt;br/&gt;}&lt;br/&gt;int ret=cs.getInt(1);&lt;br/&gt;result.put("totalrecord",ret);&lt;br/&gt;result.put("data", list);&lt;br/&gt;}catch(Exception e)&lt;br/&gt;{&lt;br/&gt;System.out.println(e);&lt;br/&gt;}&lt;br/&gt;finally&lt;br/&gt;{&lt;br/&gt;//关闭数据库连接，使用时自己修改&lt;br/&gt;}&lt;br/&gt;return result;&lt;br/&gt;}&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;============================================================&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;注意：mytemptable的锁级别为表锁。&lt;/p&gt;
&lt;p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; COLOR: rgb(85,85,85); FONT-SIZE: 16px; VERTICAL-ALIGN: baseline; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; background-origin: initial; background-clip: initial"&gt;用户需要持有 mytemptable的select insert delete 权限。而这个表数据不重要，分配此权限安全隐患不高。&lt;/p&gt;
&lt;img src="http://www.cnblogs.com/pony/aggbug/2169063.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/09/06/2169063.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html</id><title type="text">Wordpress XML-RPC协议说明</title><summary type="text">原文地址：http://codex.wordpress.org/XML-RPC_wp
XML-RPC wp Note: This API is current as of the 2.7.1 release. Contents
[hide] 1 wp.getUsersBlogs 1.1 Parameters
1.2 Return Values 2 wp.getTags 2.1 Parameter...</summary><published>2011-07-28T03:54:00Z</published><updated>2011-07-28T03:54:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html"/><content type="html">
&lt;h2 &gt;原文地址：&lt;a href="http://codex.wordpress.org/XML-RPC_wp"&gt;http://codex.wordpress.org/XML-RPC_wp&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 &gt;XML-RPC wp&lt;/strong&gt;&lt;/p&gt;
&lt;!-- start content --&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This API is current as of the 2.7.1 release.&lt;/p&gt;
&lt;table id="toc"  summary="Contents"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div id="toctitle"&gt;
&lt;p&gt;&lt;strong&gt;Contents&lt;/strong&gt;&lt;/p&gt;
&lt;span &gt;[&lt;a  href="javascript:toggleToc()" name="togglelink" id="togglelink"&gt;&lt;span style="COLOR: #21759b"&gt;hide&lt;/span&gt;&lt;/a&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getUsersBlogs"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;1&lt;/span&gt; &lt;span &gt;wp.getUsersBlogs&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;1.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;1.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getTags"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;2&lt;/span&gt; &lt;span &gt;wp.getTags&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_2"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;2.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_2"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;2.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getCommentCount"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;3&lt;/span&gt; &lt;span &gt;wp.getCommentCount&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_3"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;3.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_3"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;3.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getPostStatusList"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;4&lt;/span&gt; &lt;span &gt;wp.getPostStatusList&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_4"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;4.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_4"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;4.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getPageStatusList"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;5&lt;/span&gt; &lt;span &gt;wp.getPageStatusList&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_5"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;5.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_5"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;5.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getPageTemplates"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;6&lt;/span&gt; &lt;span &gt;wp.getPageTemplates&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_6"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;6.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_6"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;6.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getOptions"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;7&lt;/span&gt; &lt;span &gt;wp.getOptions&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_7"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;7.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_7"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;7.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.setOptions"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;8&lt;/span&gt; &lt;span &gt;wp.setOptions&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_8"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;8.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_8"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;8.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.deleteComment"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;9&lt;/span&gt; &lt;span &gt;wp.deleteComment&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_9"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;9.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_9"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;9.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.editComment"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;10&lt;/span&gt; &lt;span &gt;wp.editComment&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_10"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;10.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_10"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;10.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.newComment"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;11&lt;/span&gt; &lt;span &gt;wp.newComment&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_11"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;11.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_11"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;11.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getCommentStatusList"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;12&lt;/span&gt; &lt;span &gt;wp.getCommentStatusList&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_12"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;12.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_12"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;12.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getPage"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;13&lt;/span&gt; &lt;span &gt;wp.getPage&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_13"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;13.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_13"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;13.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getPages"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;14&lt;/span&gt; &lt;span &gt;wp.getPages&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_14"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;14.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_14"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;14.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getPageList"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;15&lt;/span&gt; &lt;span &gt;wp.getPageList&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_15"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;15.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_15"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;15.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.newPage"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;16&lt;/span&gt; &lt;span &gt;wp.newPage&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_16"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;16.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_16"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;16.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.deletePage"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;17&lt;/span&gt; &lt;span &gt;wp.deletePage&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_17"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;17.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_17"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;17.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.editPage"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;18&lt;/span&gt; &lt;span &gt;wp.editPage&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_18"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;18.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_18"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;18.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getAuthors"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;19&lt;/span&gt; &lt;span &gt;wp.getAuthors&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_19"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;19.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_19"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;19.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getCategories"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;20&lt;/span&gt; &lt;span &gt;wp.getCategories&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_20"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;20.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_20"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;20.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.newCategory"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;21&lt;/span&gt; &lt;span &gt;wp.newCategory&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_21"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;21.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_21"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;21.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.deleteCategory"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;22&lt;/span&gt; &lt;span &gt;wp.deleteCategory&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_22"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;22.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_22"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;22.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.suggestCategories"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;23&lt;/span&gt; &lt;span &gt;wp.suggestCategories&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_23"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;23.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_23"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;23.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.uploadFile"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;24&lt;/span&gt; &lt;span &gt;wp.uploadFile&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_24"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;24.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_24"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;24.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getComment"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;25&lt;/span&gt; &lt;span &gt;wp.getComment&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_25"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;25.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_25"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;25.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getComments"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;26&lt;/span&gt; &lt;span &gt;wp.getComments&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_26"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;26.1&lt;/span&gt; &lt;span &gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values_26"&gt;&lt;span style="COLOR: #21759b"&gt;&lt;span &gt;26.2&lt;/span&gt; &lt;span &gt;Return Values&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a id="wp.getUsersBlogs" name="wp.getUsersBlogs"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getUsersBlogs&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Retrieve the blogs of the users.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters" name="Parameters"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values" name="Return_Values"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;boolean isAdmin&lt;/li&gt;
&lt;li&gt;string url&lt;/li&gt;
&lt;li&gt;string blogid&lt;/li&gt;
&lt;li&gt;string blogName&lt;/li&gt;
&lt;li&gt;string xmlrpc&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getTags" name="wp.getTags"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getTags&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Get list of all tags.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_2" name="Parameters_2"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_2" name="Return_Values_2"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;int tag_id&lt;/li&gt;
&lt;li&gt;string name&lt;/li&gt;
&lt;li&gt;int count&lt;/li&gt;
&lt;li&gt;string slug&lt;/li&gt;
&lt;li&gt;string html_url&lt;/li&gt;
&lt;li&gt;string rss_url&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getCommentCount" name="wp.getCommentCount"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getCommentCount&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Retrieve comment count for a specific post.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_3" name="Parameters_3"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;string post_id&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_3" name="Return_Values_3"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;int approved&lt;/li&gt;
&lt;li&gt;int awaiting_moderation&lt;/li&gt;
&lt;li&gt;int spam&lt;/li&gt;
&lt;li&gt;int total_comments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getPostStatusList" name="wp.getPostStatusList"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getPostStatusList&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Retrieve post statuses.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_4" name="Parameters_4"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_4" name="Return_Values_4"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;const string 'draft'&lt;/li&gt;
&lt;li&gt;const string 'pending'&lt;/li&gt;
&lt;li&gt;const string 'private'&lt;/li&gt;
&lt;li&gt;const string 'publish'&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getPageStatusList" name="wp.getPageStatusList"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getPageStatusList&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Retrieve all of the WordPress supported page statuses.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_5" name="Parameters_5"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_5" name="Return_Values_5"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;const string 'draft'&lt;/li&gt;
&lt;li&gt;const string 'private'&lt;/li&gt;
&lt;li&gt;const string 'publish'&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getPageTemplates" name="wp.getPageTemplates"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getPageTemplates&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Retrieve page templates.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_6" name="Parameters_6"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_6" name="Return_Values_6"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;string name&lt;/li&gt;
&lt;li&gt;string description&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getOptions" name="wp.getOptions"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getOptions&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Retrieve blog options. If passing in an array, search for options listed within it.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_7" name="Parameters_7"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;string option&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_7" name="Return_Values_7"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;string option&lt;/li&gt;
&lt;li&gt;string value&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.setOptions" name="wp.setOptions"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.setOptions&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Update blog options. Returns array of structs showing updated values.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_8" name="Parameters_8"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;string name&lt;/li&gt;
&lt;li&gt;string value&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_8" name="Return_Values_8"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;string option&lt;/li&gt;
&lt;li&gt;string value&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.deleteComment" name="wp.deleteComment"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.deleteComment&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Remove comment.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_9" name="Parameters_9"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;int comment_id&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_9" name="Return_Values_9"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;boolean status&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.editComment" name="wp.editComment"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.editComment&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Edit comment.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_10" name="Parameters_10"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;int comment_id&lt;/li&gt;
&lt;li&gt;struct comment
&lt;ul&gt;
&lt;li&gt;string status&lt;/li&gt;
&lt;li&gt;date date_created_gmt&lt;/li&gt;
&lt;li&gt;string content&lt;/li&gt;
&lt;li&gt;string author&lt;/li&gt;
&lt;li&gt;string author_url&lt;/li&gt;
&lt;li&gt;string author_email&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_10" name="Return_Values_10"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;boolean status&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.newComment" name="wp.newComment"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.newComment&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create new comment.&lt;/p&gt;
&lt;p&gt;If you want to send anonymous comments, leave the second and third parameter blank and install &lt;a href="http://www.thepicklingjar.com/code/anonymous-xmlrpc-comments/"  title="http://www.thepicklingjar.com/code/anonymous-xmlrpc-comments/"&gt;&lt;span style="COLOR: #21759b"&gt;a filter to xmlrpc_allow_anonymous_comments to return true&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;See this WordPress forum &lt;a href="http://wordpress.org/support/topic/304306?replies=1#post-1188046"  title="http://wordpress.org/support/topic/304306?replies=1#post-1188046"&gt;&lt;span style="COLOR: #21759b"&gt;post&lt;/span&gt;&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_11" name="Parameters_11"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;int post_id&lt;/li&gt;
&lt;li&gt;struct comment
&lt;ul&gt;
&lt;li&gt;int comment_parent&lt;/li&gt;
&lt;li&gt;string content&lt;/li&gt;
&lt;li&gt;string author&lt;/li&gt;
&lt;li&gt;string author_url&lt;/li&gt;
&lt;li&gt;string author_email&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_11" name="Return_Values_11"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int comment_id&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getCommentStatusList" name="wp.getCommentStatusList"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getCommentStatusList&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Retrieve all of the comment status.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_12" name="Parameters_12"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_12" name="Return_Values_12"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;string hold&lt;/li&gt;
&lt;li&gt;string approve&lt;/li&gt;
&lt;li&gt;string spam&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getPage" name="wp.getPage"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getPage&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Get the page identified by the page id.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_13" name="Parameters_13"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;int page_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_13" name="Return_Values_13"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;datetime dateCreated (ISO.8601)&lt;/li&gt;
&lt;li&gt;int userid&lt;/li&gt;
&lt;li&gt;int page_id&lt;/li&gt;
&lt;li&gt;string page_status&lt;/li&gt;
&lt;li&gt;string description&lt;/li&gt;
&lt;li&gt;string title&lt;/li&gt;
&lt;li&gt;string link&lt;/li&gt;
&lt;li&gt;string permaLink&lt;/li&gt;
&lt;li&gt;array categories
&lt;ul&gt;
&lt;li&gt;string Category Name&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;string excerpt&lt;/li&gt;
&lt;li&gt;string text_more&lt;/li&gt;
&lt;li&gt;int mt_allow_comments&lt;/li&gt;
&lt;li&gt;int mt_allow_pings&lt;/li&gt;
&lt;li&gt;string wp_slug&lt;/li&gt;
&lt;li&gt;string wp_password&lt;/li&gt;
&lt;li&gt;string wp_author&lt;/li&gt;
&lt;li&gt;int wp_page_parent_id&lt;/li&gt;
&lt;li&gt;string wp_page_parent_title&lt;/li&gt;
&lt;li&gt;int wp_page_order&lt;/li&gt;
&lt;li&gt;int wp_author_id&lt;/li&gt;
&lt;li&gt;string wp_author_display_name&lt;/li&gt;
&lt;li&gt;datetime date_created_gmt&lt;/li&gt;
&lt;li&gt;array custom_fields
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;string id&lt;/li&gt;
&lt;li&gt;string key&lt;/li&gt;
&lt;li&gt;string value&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;string wp_page_template&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getPages" name="wp.getPages"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getPages&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Get an array of all the pages on a blog.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_14" name="Parameters_14"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_14" name="Return_Values_14"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct Same as &lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values" title="XML-RPC wp"&gt;&lt;span style="COLOR: #21759b"&gt;wp.getPage&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getPageList" name="wp.getPageList"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getPageList&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Get an array of all the pages on a blog. Just the minimum details, lighter than &lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#wp.getPages" title="XML-RPC wp"&gt;&lt;span style="COLOR: #21759b"&gt;wp.getPages&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_15" name="Parameters_15"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_15" name="Return_Values_15"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;int page_id&lt;/li&gt;
&lt;li&gt;string page_title&lt;/li&gt;
&lt;li&gt;int page_parent_id&lt;/li&gt;
&lt;li&gt;datetime dateCreated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.newPage" name="wp.newPage"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.newPage&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a new page. Similar to metaWeblog.newPost.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_16" name="Parameters_16"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;struct content
&lt;ul&gt;
&lt;li&gt;string wp_slug&lt;/li&gt;
&lt;li&gt;string wp_password&lt;/li&gt;
&lt;li&gt;int wp_page_parent_id&lt;/li&gt;
&lt;li&gt;int wp_page_order&lt;/li&gt;
&lt;li&gt;int wp_author_id&lt;/li&gt;
&lt;li&gt;string title&lt;/li&gt;
&lt;li&gt;string description (content of post)&lt;/li&gt;
&lt;li&gt;string mt_excerpt&lt;/li&gt;
&lt;li&gt;string mt_text_more&lt;/li&gt;
&lt;li&gt;int mt_allow_comments (0 = closed, 1 = open)&lt;/li&gt;
&lt;li&gt;int mt_allow_pings (0 = closed, 1 = open)&lt;/li&gt;
&lt;li&gt;datetime dateCreated&lt;/li&gt;
&lt;li&gt;array custom_fields
&lt;ul&gt;
&lt;li&gt;struct&lt;/li&gt;
&lt;li&gt;Same struct data as custom_fields in &lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Return_Values" title="XML-RPC wp"&gt;&lt;span style="COLOR: #21759b"&gt;wp.getPage&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;bool publish&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_16" name="Return_Values_16"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int page_id&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.deletePage" name="wp.deletePage"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.deletePage&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Removes a page from the blog.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_17" name="Parameters_17"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;int page_id&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_17" name="Return_Values_17"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bool true&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.editPage" name="wp.editPage"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.editPage&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Make changes to a blog page.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_18" name="Parameters_18"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;int page_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;struct content
&lt;ul&gt;
&lt;li&gt;Same struct data as &lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html#Parameters_3" title="XML-RPC wp"&gt;&lt;span style="COLOR: #21759b"&gt;newPage&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;bool publish&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_18" name="Return_Values_18"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bool true&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getAuthors" name="wp.getAuthors"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getAuthors&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Get an array of users for the blog.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_19" name="Parameters_19"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_19" name="Return_Values_19"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;int user_id&lt;/li&gt;
&lt;li&gt;string user_login&lt;/li&gt;
&lt;li&gt;string display_name&lt;/li&gt;
&lt;li&gt;string meta_value (Serialized PHP data)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getCategories" name="wp.getCategories"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getCategories&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Get an array of available categories on a blog.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_20" name="Parameters_20"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_20" name="Return_Values_20"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;int categoryId&lt;/li&gt;
&lt;li&gt;int parentId&lt;/li&gt;
&lt;li&gt;string description&lt;/li&gt;
&lt;li&gt;string categoryName&lt;/li&gt;
&lt;li&gt;string htmlUrl&lt;/li&gt;
&lt;li&gt;string rssUrl&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.newCategory" name="wp.newCategory"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.newCategory&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a new category.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_21" name="Parameters_21"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;string name&lt;/li&gt;
&lt;li&gt;string slug&lt;/li&gt;
&lt;li&gt;int parent_id&lt;/li&gt;
&lt;li&gt;string description&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_21" name="Return_Values_21"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int category_id&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.deleteCategory" name="wp.deleteCategory"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.deleteCategory&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Delete a category.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_22" name="Parameters_22"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;int category_id&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_22" name="Return_Values_22"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;?&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.suggestCategories" name="wp.suggestCategories"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.suggestCategories&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Get an array of categories that start with a given string.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_23" name="Parameters_23"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;string category&lt;/li&gt;
&lt;li&gt;int max_results&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_23" name="Return_Values_23"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;int category_id&lt;/li&gt;
&lt;li&gt;string category_name&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.uploadFile" name="wp.uploadFile"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.uploadFile&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Upload a file.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_24" name="Parameters_24"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;struct data
&lt;ul&gt;
&lt;li&gt;string name&lt;/li&gt;
&lt;li&gt;string type&lt;/li&gt;
&lt;li&gt;base64 bits&lt;/li&gt;
&lt;li&gt;bool overwrite&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_24" name="Return_Values_24"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;string file&lt;/li&gt;
&lt;li&gt;string url&lt;/li&gt;
&lt;li&gt;string type&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="wp.getComment" name="wp.getComment"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getComment&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Gets a comment, given it's comment ID. Note that this isn't in 2.6.1, but is in the HEAD (so should be in anything newer than 2.6.1)&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_25" name="Parameters_25"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;int comment_id&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_25" name="Return_Values_25"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;datetime dateCreated (ISO.8601, always GMT)&lt;/li&gt;
&lt;li&gt;string user_id&lt;/li&gt;
&lt;li&gt;string comment_id&lt;/li&gt;
&lt;li&gt;string parent&lt;/li&gt;
&lt;li&gt;string status&lt;/li&gt;
&lt;li&gt;string content&lt;/li&gt;
&lt;li&gt;string link&lt;/li&gt;
&lt;li&gt;string post_id&lt;/li&gt;
&lt;li&gt;string post_title&lt;/li&gt;
&lt;li&gt;string author&lt;/li&gt;
&lt;li&gt;string author_url&lt;/li&gt;
&lt;li&gt;string author_email&lt;/li&gt;
&lt;li&gt;string author_ip&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a id="wp.getComments" name="wp.getComments"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;wp.getComments&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Gets a set of comments for a given post.&lt;/p&gt;
&lt;p&gt;&lt;a id="Parameters_26" name="Parameters_26"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;int blog_id&lt;/li&gt;
&lt;li&gt;string username&lt;/li&gt;
&lt;li&gt;string password&lt;/li&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;post_id&lt;/li&gt;
&lt;li&gt;status (defaults to approve)&lt;/li&gt;
&lt;li&gt;offset&lt;/li&gt;
&lt;li&gt;number&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a id="Return_Values_26" name="Return_Values_26"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span &gt;Return Values&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Returns an array of the comment structure (see wp.getComment)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;struct
&lt;ul&gt;
&lt;li&gt;datetime dateCreated (ISO.8601, always GMT)&lt;/li&gt;
&lt;li&gt;string user_id&lt;/li&gt;
&lt;li&gt;string comment_id&lt;/li&gt;
&lt;li&gt;string parent&lt;/li&gt;
&lt;li&gt;string status&lt;/li&gt;
&lt;li&gt;string content&lt;/li&gt;
&lt;li&gt;string link&lt;/li&gt;
&lt;li&gt;string post_id&lt;/li&gt;
&lt;li&gt;string post_title&lt;/li&gt;
&lt;li&gt;string author&lt;/li&gt;
&lt;li&gt;string author_url&lt;/li&gt;
&lt;li&gt;string author_email&lt;/li&gt;
&lt;li&gt;string author_ip&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://www.cnblogs.com/pony/aggbug/2119386.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/07/28/2119386.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pony/archive/2011/06/09/2076170.html</id><title type="text">struts2 action 配置方法 &amp;amp;&amp;amp;struts2的配置文件</title><summary type="text">struts2 action几乎完全吸收了xwork 的精华，近日学习struts 2，总结一下action的配制方法。首先看一下com.opensymphony.xwork2.Action的接口声明，Action提供execute() 方法，子类必须实现execute() 方法。public interface Action { public String execute() throws Exception;}com.opensymphony.xwork2.ActionSupport是com.opensymphony.xwork2.Action的缺省实现，实现了execute()方法。我们</summary><published>2011-06-09T03:16:00Z</published><updated>2011-06-09T03:16:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/06/09/2076170.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/06/09/2076170.html"/><content type="html">&lt;div&gt;&lt;div&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span  style="font-family: verdana, sans-serif; "&gt;struts2 action几乎完全吸收了xwork 的精华，近日学习struts 2，总结一下action的配制方法。首先看一下com.opensymphony.xwork2.Action的接口声明，Action提供execute() 方法，子类必须实现execute() 方法。&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="font-family: verdana, sans-serif; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" border="1" style="border-right-width: medium; border-right-style: none; border-right-color: initial; border-top-width: medium; border-top-style: none; border-top-color: initial; margin-top: auto; margin-right: auto; margin-bottom: auto; margin-left: 23.4pt; border-left-width: medium; border-left-style: none; border-left-color: initial; border-bottom-width: medium; border-bottom-style: none; border-bottom-color: initial; border-collapse: collapse; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="600" style="border-right-color: green; border-right-width: 1pt; border-right-style: dotted; padding-right: 5.4pt; border-top-color: green; border-top-width: 1pt; border-top-style: dotted; padding-left: 5.4pt; padding-bottom: 0cm; border-left-color: green; border-left-width: 1pt; border-left-style: dotted; width: 360pt; padding-top: 0cm; border-bottom-color: green; border-bottom-width: 1pt; border-bottom-style: dotted; background-color: transparent; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "&gt;&lt;span style="line-height: 16px; font-size: 8pt; "&gt;&amp;nbsp;&lt;span style="line-height: 16px; font-size: 8pt; "&gt;&amp;nbsp;public interface Action {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String execute() throws Exception;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;com.opensymphony.xwork2.ActionSupport是com.opensymphony.xwork2.Action的缺省实现，实现了execute()方法。我们开发的Action通常继承com.opensymphony.xwork2.ActionSupport&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;1.简单的action配置&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" border="1" style="border-right-width: medium; border-right-style: none; border-right-color: initial; border-top-width: medium; border-top-style: none; border-top-color: initial; margin-top: auto; margin-right: auto; margin-bottom: auto; margin-left: 23.4pt; border-left-width: medium; border-left-style: none; border-left-color: initial; border-bottom-width: medium; border-bottom-style: none; border-bottom-color: initial; border-collapse: collapse; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="600" style="border-right-color: green; border-right-width: 1pt; border-right-style: dotted; padding-right: 5.4pt; border-top-color: green; border-top-width: 1pt; border-top-style: dotted; padding-left: 5.4pt; padding-bottom: 0cm; border-left-color: green; border-left-width: 1pt; border-left-style: dotted; width: 360pt; padding-top: 0cm; border-bottom-color: green; border-bottom-width: 1pt; border-bottom-style: dotted; background-color: transparent; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "&gt;&lt;span style="line-height: 16px; font-size: 8pt; "&gt;&amp;nbsp;&amp;lt;action name="logon" &amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;result type="redirect-action"&amp;gt;Menu&amp;lt;/result&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;result name="input"&amp;gt;/tutorial/Logon.jsp&amp;lt;/result&amp;gt;&lt;br /&gt;&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;前台发送调用logon.action的请求，截听器调用默认的execute()方法&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;2.在开发中通常将多个方法写在一个action中，对于这样action可以采用集中配置方式&lt;br /&gt;2.1.一个方法一个action配制&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" border="1" style="border-right-width: medium; border-right-style: none; border-right-color: initial; border-top-width: medium; border-top-style: none; border-top-color: initial; margin-top: auto; margin-right: auto; margin-bottom: auto; margin-left: 23.4pt; border-left-width: medium; border-left-style: none; border-left-color: initial; border-bottom-width: medium; border-bottom-style: none; border-bottom-color: initial; border-collapse: collapse; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="600" style="border-right-color: green; border-right-width: 1pt; border-right-style: dotted; padding-right: 5.4pt; border-top-color: green; border-top-width: 1pt; border-top-style: dotted; padding-left: 5.4pt; padding-bottom: 0cm; border-left-color: green; border-left-width: 1pt; border-left-style: dotted; width: 360pt; padding-top: 0cm; border-bottom-color: green; border-bottom-width: 1pt; border-bottom-style: dotted; background-color: transparent; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "&gt;&lt;span style="line-height: 16px; font-size: 8pt; "&gt;&amp;nbsp;&amp;lt;action name="delete"  method="delete"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;br /&gt;2.2通配符方式&lt;br /&gt;2.2.1 *&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" border="1" style="border-right-width: medium; border-right-style: none; border-right-color: initial; border-top-width: medium; border-top-style: none; border-top-color: initial; margin-top: auto; margin-right: auto; margin-bottom: auto; margin-left: 23.4pt; border-left-width: medium; border-left-style: none; border-left-color: initial; border-bottom-width: medium; border-bottom-style: none; border-bottom-color: initial; border-collapse: collapse; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="600" style="border-right-color: green; border-right-width: 1pt; border-right-style: dotted; padding-right: 5.4pt; border-top-color: green; border-top-width: 1pt; border-top-style: dotted; padding-left: 5.4pt; padding-bottom: 0cm; border-left-color: green; border-left-width: 1pt; border-left-style: dotted; width: 360pt; padding-top: 0cm; border-bottom-color: green; border-bottom-width: 1pt; border-bottom-style: dotted; background-color: transparent; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "&gt;&lt;span style="line-height: 16px; font-size: 8pt; "&gt;&amp;nbsp;&amp;lt;action name="*Crud"  method="{1}"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;　　method="{1}"表示，第一个通配符是方法.&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;action调用的例子:addCrud.action, deleteCrud.action, updateCrud.action, viewCrud.action&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;br /&gt;2.2.2 分割符加上*，分割符如：下划线_， 惊叹号！&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" border="1" style="border-right-width: medium; border-right-style: none; border-right-color: initial; border-top-width: medium; border-top-style: none; border-top-color: initial; margin-top: auto; margin-right: auto; margin-bottom: auto; margin-left: 23.4pt; border-left-width: medium; border-left-style: none; border-left-color: initial; border-bottom-width: medium; border-bottom-style: none; border-bottom-color: initial; border-collapse: collapse; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="600" style="border-right-color: green; border-right-width: 1pt; border-right-style: dotted; padding-right: 5.4pt; border-top-color: green; border-top-width: 1pt; border-top-style: dotted; padding-left: 5.4pt; padding-bottom: 0cm; border-left-color: green; border-left-width: 1pt; border-left-style: dotted; width: 360pt; padding-top: 0cm; border-bottom-color: green; border-bottom-width: 1pt; border-bottom-style: dotted; background-color: transparent; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "&gt;&lt;span style="line-height: 16px; font-size: 8pt; "&gt;&amp;nbsp;&amp;lt;action name="crud_*"  method="{1}"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;调用方式：crud_add.action, crud_delete.action&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" border="1" style="border-right-width: medium; border-right-style: none; border-right-color: initial; border-top-width: medium; border-top-style: none; border-top-color: initial; margin-top: auto; margin-right: auto; margin-bottom: auto; margin-left: 23.4pt; border-left-width: medium; border-left-style: none; border-left-color: initial; border-bottom-width: medium; border-bottom-style: none; border-bottom-color: initial; border-collapse: collapse; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="600" style="border-right-color: green; border-right-width: 1pt; border-right-style: dotted; padding-right: 5.4pt; border-top-color: green; border-top-width: 1pt; border-top-style: dotted; padding-left: 5.4pt; padding-bottom: 0cm; border-left-color: green; border-left-width: 1pt; border-left-style: dotted; width: 360pt; padding-top: 0cm; border-bottom-color: green; border-bottom-width: 1pt; border-bottom-style: dotted; background-color: transparent; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "&gt;&lt;span style="line-height: 16px; font-size: 8pt; "&gt;&amp;nbsp;&amp;lt;action name="crud!*"  method="{1}"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;调用方式:crud!add.action, crud!delete.action&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;2.3 url pattern: /{model}/{method}.action&lt;br /&gt;&amp;#8220;/User/add.action&amp;#8221; 调用User的add方法&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" border="1" style="border-right-width: medium; border-right-style: none; border-right-color: initial; border-top-width: medium; border-top-style: none; border-top-color: initial; margin-top: auto; margin-right: auto; margin-bottom: auto; margin-left: 23.4pt; border-left-width: medium; border-left-style: none; border-left-color: initial; border-bottom-width: medium; border-bottom-style: none; border-bottom-color: initial; border-collapse: collapse; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="600" style="border-right-color: green; border-right-width: 1pt; border-right-style: dotted; padding-right: 5.4pt; border-top-color: green; border-top-width: 1pt; border-top-style: dotted; padding-left: 5.4pt; padding-bottom: 0cm; border-left-color: green; border-left-width: 1pt; border-left-style: dotted; width: 360pt; padding-top: 0cm; border-bottom-color: green; border-bottom-width: 1pt; border-bottom-style: dotted; background-color: transparent; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;&amp;lt;action name=&amp;#8221;*/*&amp;#8221; method=&amp;#8221;{2}&amp;#8221;&lt;br /&gt;class=&amp;#8221;com.infoq.actions.{1}Action&amp;#8221;&amp;gt;&lt;br /&gt;&amp;lt;result type=&amp;#8221;redirect&amp;#8221;&amp;gt;/{1}/view.action&amp;lt;/result&amp;gt;&lt;br /&gt;&amp;lt;result name=&amp;#8221;view&amp;#8221;&amp;gt;/{1}/view.jsp&amp;lt;/result&amp;gt;&lt;br /&gt;&amp;lt;result name=&amp;#8221;input&amp;#8221;&amp;gt;/{1}/edit.jsp&amp;lt;/result&amp;gt;&lt;br /&gt;&amp;lt;result name=&amp;#8221;home&amp;#8221;&amp;gt;/{1}/home.jsp&amp;lt;/result&amp;gt;&lt;br /&gt;&amp;lt;/action&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: verdana, sans-serif; "&gt;&lt;div&gt;&lt;a href="http://blog.csdn.net/lianghyan/archive/2007/08/22/1754637.aspx"&gt;http://blog.csdn.net/lianghyan/archive/2007/08/22/1754637.aspx&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;=========================================================&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;struts2的配置文件&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;struts2相关的配置文件有web.xml(必须的),struts.xml(必须的),struts.properties,struts-default.xml,velocity.properties,struts-default.vm。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;web.xml:&amp;nbsp;包含所有必须的框架组件的web部署描述符；&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;struts.xml:配置包含result/view类型、action映射、拦截器等的struts2的主要配置文件。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;struts.properties:&amp;nbsp;配置struts2的框架属性；&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;struts.properties&amp;nbsp;配置文件（此文件放在/WEB-INF/classes/）&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;此文件包含了一系列的key-value对象，每个key就是一个struts2的属性，value就是一个struts2的属性值。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;此配置文件提供了一种改变框架默认行为的机制。其所包含的所有属性都可以在web.xml配置文件中使用"ini-param"标签进行配置，或者在struts.xml文件中使用"constant"标签进行配置。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;****************************&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;struts.xml常用配置使用方法**&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;****************************&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;1、&amp;lt;include&amp;gt;标签重用配置文件&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;如果package,action,interceptor等配置较多时，都放到一个struts.xml中比较不容易维护。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;所以需要将struts.xml文件分成多个配置文件，然后在struts.xml文件中使用&amp;lt;include&amp;gt;标签引用这些配置文件。结构清晰，配置文件复用。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;例子：&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;struts&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;include&amp;nbsp;file="struts1.xml"/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;package&amp;nbsp;name=""&amp;nbsp;extends="/sturts-default"&amp;gt;...&amp;lt;/package&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name=&amp;gt;..&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/struts&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;2、action配置&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;默认情况下，struts2会调用动作类的execute方法，但有时，好几个请求动作对应一个action类中不同的方法。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;这种情况下，可以在&amp;lt;action&amp;gt;标签中通过method方法指定要执行的动作类的方法名，并且需要为不同的动作起不同的名字(也叫别名，即name值)。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name="my1"&amp;nbsp;class="action2.method.Myaction"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;......&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name="my2"&amp;nbsp;class="action2.method.Myaction"&amp;nbsp;method="print"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;......&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;上面2个动作的class属性都指向同一个类，name为他起了2个动作别名，my1和my2.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;在每个动作里又指定了要运行的方法名。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;下来在action类里一定要有这1个方法print。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;package&amp;nbsp;ction2.method&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;public&amp;nbsp;class&amp;nbsp;Myaction&amp;nbsp;extends&amp;nbsp;ActionSupport{&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;public&amp;nbsp;String&amp;nbsp;execute()&amp;nbsp;throws&amp;nbsp;Exception{&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;........这是一般的方法，配合第一个action&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;public&amp;nbsp;String&amp;nbsp;print()&amp;nbsp;throws&amp;nbsp;Exception{&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.......&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;这是第2个action的方法&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;除了&amp;nbsp;在struts.xml中配置别名外，还可以不用修改struts.xml而直接用请求参数来描述指定动作，格式如下：&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;http://localhost:8080/contextPath/actionName!method.action&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;通过请求指定动作的详细内容:&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;&amp;nbsp;actionName!method.action&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;如这个，后面可以这样写：/my2!print.action&amp;nbsp;即可访问之。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;3、请求参数设置&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name=""&amp;nbsp;class=""&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;param&amp;nbsp;name="name"&amp;gt;zhengsha&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;param&amp;nbsp;name="age"&amp;gt;26&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;result&amp;nbsp;name="save"&amp;gt;/result.jsp&amp;lt;/result&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;4、action类中定义相应的setter方法读取此参数,一般不用设置getter方法&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;public&amp;nbsp;class&amp;nbsp;Myaction&amp;nbsp;extends&amp;nbsp;ActionSupport&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;private&amp;nbsp;String&amp;nbsp;name;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;private&amp;nbsp;String&amp;nbsp;age;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;public&amp;nbsp;void&amp;nbsp;setName(String&amp;nbsp;name)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;this.name=&amp;nbsp;name;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;public&amp;nbsp;void&amp;nbsp;setAge(String&amp;nbsp;age)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;this.age=&amp;nbsp;age;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;public&amp;nbsp;String&amp;nbsp;execute()&amp;nbsp;throws&amp;nbsp;Exception&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;{System.out.println("name&amp;nbsp;is"+name+";age&amp;nbsp;is"+age);}&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;5、result&amp;nbsp;配置&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;默认状态下，&amp;lt;result&amp;gt;标签的type属性是"dispatcher",即转发。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;如果result的type属性没有定义，struts2会自动将其定义为success。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;用户也可以自己设置&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;result&amp;nbsp;name="save"&amp;nbsp;type="redirect"&amp;gt;/result.jsp&amp;lt;/result&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;如有一个result被多个&amp;lt;action&amp;gt;使用,这时可以使用&amp;lt;global-results&amp;gt;标签来定义全局的&amp;lt;result&amp;gt;,代码如下：&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;struts&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;package&amp;nbsp;name="demo"&amp;nbsp;extends="struts-default"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;global-results&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;result&amp;nbsp;name="print"&amp;gt;/result.jsp&amp;lt;/result&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/global-results&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name="submit"&amp;nbsp;class="..."&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;如果action里没有相应的result，那struts2就会使用全局的&amp;lt;result&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/package&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/struts&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;6、拦截器配置&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;struts2拦截器如同servlet里的过滤器，struts2执行action的execute()方法前先执行在struts.xml中配置的拦截器，执行完所有的intercepor方法后，会执行execute方法。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;注意：在action里面最后必须一定要引用struts2自带的拦截器缺省堆栈defaltStack,否则出错。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;如：&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;interceptor-ref&amp;nbsp;name="defaultStack"/&amp;gt;(必须加，否则出错！)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;7、package配置&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;package&amp;nbsp;可以将逻辑上相关的一组action,result,interceptor等组件分为一组。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;package&amp;nbsp;属性有：&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;name(必须的)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;package的表示，为了让其他的package引用&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;extends(可选的)&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;从哪个package继承的&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;namespace(可选的)&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;下面讲&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;abstract(可选的)&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;nbsp;定义这个package为抽象的，这个package中不需要定义action&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;namespace&amp;nbsp;讲解&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;"/"&amp;nbsp;表示根namespace，所有直接在应用程序上下文环境下的请求(Context)都在这个package下查找。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;""表示默认的namespace。当所有的namespace中都找不到的时候，就在这里找。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;例如：&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;package&amp;nbsp;name="default"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name="bar"&amp;nbsp;class=""&amp;gt;...&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/package&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;package&amp;nbsp;name="mypack1"&amp;nbsp;namespace="/barspace"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name="bar"&amp;nbsp;class=""&amp;gt;...&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/package&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;package&amp;nbsp;name="mypack2"&amp;nbsp;namespace="/"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name="no"&amp;nbsp;class=""&amp;gt;...&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/package&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;a、&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;如果请求为&amp;nbsp;/barspace/bar.action&amp;nbsp;，则查找&amp;nbsp;&amp;#8220;/barspace&amp;#8221;,如果找到"bar",则执行相应的&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;action；如果没找到，就执行默认的namespace。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;b、&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;如果请求为&amp;#8220;/no.action&amp;#8221;则namespace（&amp;#8220;/&amp;#8221;）被查找，找到了则执行对应的action，否则执行默认的namespace。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;8、action配置&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;result默认的name为success.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;action中的方法通配符&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;例子：&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name="*curd"&amp;nbsp;class=""&amp;nbsp;method="{1}"&amp;gt;&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;editcurd&amp;nbsp;action&amp;nbsp;将调用edit方法，&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;deletecurd&amp;nbsp;action将调用delete方法。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;默认的action&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;当没有指定action的class属性的时候，默认使用com.opensymphiony.xwork.ActionSupport。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;ActionSupport下有2个方法，input&amp;nbsp;和&amp;nbsp;execute，每个方法都是简单的返回success。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;当请求的action不存在的时候，struts2会返回404错误页面，但我们也可以定义自己的默认页面，使用如下方法：&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;package&amp;nbsp;name="hello"&amp;nbsp;extends="action-default"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;default-action-ref&amp;nbsp;name="Under"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name="Under"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;result&amp;gt;/error.jsp&amp;lt;/result&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/action&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;action&amp;nbsp;name="*"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;result&amp;gt;/{1}.jsp&amp;lt;/result&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/action&amp;gt;//每个action将会被映射到以自己名字&amp;nbsp;命名的&amp;nbsp;jsp上。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;	&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; "&gt;&amp;lt;/package&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/pony/aggbug/2076170.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/06/09/2076170.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pony/archive/2011/03/18/1987892.html</id><title type="text">理解 SET CHAINED command not allowed within multi-statement transaction.</title><summary type="text">在 Sybase ASE 实际应用中，特别是在 ASE + J2EE 应用中，较容易出现 SET CHAINED command not allowed within multi-statement transaction.的异常（尽管到版本 15.0.1 为止，ASE 并不支持异常机制，但本文为了方便，统一采用“异常”一词）。有的开发人员认为这是 Sybase 数据库的问题；有的认为是多次调用 setAutoCommit() 方法的问题；有的开发人员则认为这是 jConnect 的问题，甚至从 jConnect 的代码上直接屏蔽此异常。 然而，SET CHAINED 异常倒底是怎样产生的？.</summary><published>2011-03-18T03:32:00Z</published><updated>2011-03-18T03:32:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/03/18/1987892.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/03/18/1987892.html"/><content type="html">&lt;span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium 'Times New Roman'; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" &gt;&lt;span style="line-height: 20px; font-family: Arial; color: rgb(68,68,68); font-size: 14px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px" &gt; &#xD;
&lt;p style="line-height: normal"&gt;在 Sybase ASE 实际应用中，特别是在 ASE + J2EE 应用中，较容易出现 SET CHAINED command not allowed within multi-statement transaction.的异常（尽管到版本 15.0.1 为止，ASE 并不支持异常机制，但本文为了方便，统一采用&amp;#8220;异常&amp;#8221;一词）。有的开发人员认为这是 Sybase 数据库的问题；有的认为是多次调用 setAutoCommit() 方法的问题；有的开发人员则认为这是 jConnect 的问题，甚至从 jConnect 的代码上直接屏蔽此异常。&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;　　然而，SET CHAINED 异常倒底是怎样产生的？&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;　　一、数据库层&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;　　首先，让我们看看 set chained。下面的文字片段摘自《ASE 12.5.2 Reference Manual: Commands》，Page 430：&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;chained&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;begins a transaction just before the first data retrieval or data modification&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;statement at the beginning of a session and after a transaction ends. In&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;chained mode, Adaptive Server implicitly executes a begin transaction&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;command before the following statements: delete, fetch, insert, lock table,&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;open, select, and update. You cannot execute set chained within a transaction.&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;　　从此段文字可以得知，当 set chained on 后，delete、fetch、insert、lock table、open、select 以及 update 语句将自动启动一个事务，并要求显式的完成事务，即明确地调用 commit/rollback。同时，在事务中，不允许设置 chained 模式。&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;　　下面的 sql 代码片断将说明在数据库层上 SET CHAINED 错误信息是如何产生的。&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; set chained on&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; set chained on&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; begin tran&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt;&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;　　似乎多次调用 set chained 并不会产生异常。接下来，&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; set chained on&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;Msg 226, Level 16, State 1:&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;Server 'FLYBEAN', Line 1:&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;SET CHAINED command not allowed within multi-statement transaction.&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; set chained off&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;Msg 226, Level 16, State 1:&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;Server 'FLYBEAN', Line 1:&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;SET CHAINED command not allowed within multi-statement transaction.&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt;&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;　　显然，处于事务环境下，调用 set chained 是会发生异常的，这一点手册上也非常明确的指出了。但为什么前面的片断中两次连续调用 set chained 却不会产生异常呢？请注意文档上这一句：Adaptive Server implicitly executes a begin transaction command before the following statements: 。&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;　　重建一个数据库连接，从头开始：&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; set chained on&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; select 1&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;-----------&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;(1 row affected)&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; set chained on&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;Msg 226, Level 16, State 1:&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;Server 'FLYBEAN', Line 1:&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;SET CHAINED command not allowed within multi-statement transaction.&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; set chained off&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;Msg 226, Level 16, State 1:&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;Server 'FLYBEAN', Line 1:&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;SET CHAINED command not allowed within multi-statement transaction.&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt;&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;　　在执行 select 1 之前，数据库自动启动了一笔事务，因此不能再执行 set chained。接下来，完成隐式启动的事务：&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; rollback&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt; set chained off&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;2&amp;gt; go&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;1&amp;gt;&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;　　二、J2EE 层&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;　　J2EE 应用中，一些轻量级的数据访问层实现采用 Connection 的setAutoCommit(false) + commit()/rollback() 的方式来管理事务。通过对 jConnect 的反编译以及对 spt_mda 数据的分析，可以得知 setAutoCommit(true) = SET CHAINED OFF；setAutoCommit(false) = SET CHAINED ON，下图以顺序图展示调用 setAutoCommit() 方法时，实际发生的交互。&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;　　另一方面，J2EE 应用中大多采用了连接池。应用在调用 Connection.close() 方法时，实际上并没有真正地关闭连接，而是将连接回收到池中。假设连接的初态是 chained off。如果应用在取得连接后调用该连接的 setAutoCommit(false) 方法来启动事务，在事务完成后，通过 close() 方法回到池中时，未能恢复到初始状态（即 chained off），则应用多次获取该连接并进行一定操作后，就很有可能出现异常。见下图：&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br style="line-height: normal" /&gt;&lt;br style="line-height: normal" /&gt;　　通过上面的分析，理解了产生此异常的原因，就很容易避免此异常，即在完成事务后，关闭连接前，显式地调用 setAutoCommit(true)。或许有的程序员会认为麻烦，但别忘记&amp;#8220;完壁归赵&amp;#8221;是资源借用者的义务。&lt;/p&gt;&#xD;
&lt;p style="line-height: normal"&gt;[ 转]&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/pony/aggbug/1987892.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/03/18/1987892.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pony/archive/2011/02/18/1957684.html</id><title type="text">sybase性能优化</title><summary type="text">sybase命令：去掉段：sp_dropsegment "logsegment", pay2, "dev01"一. SYBASE 系统参数调整1.内存/sbin/sysctl -w kernel.shmmax=3416386150 shmmax是最大共享内存段，假如服务器上没有别的应用并且使用raw device可以将此参数调整到物理内存的90%，如果使用file system device 的话相应调小，因为file system buffer需要开销内存!修改后重新启动系统。 sp_configure "max memory",1500000 重启生效（设置为共享内存的75%）sp_con</summary><published>2011-02-18T04:17:00Z</published><updated>2011-02-18T04:17:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/02/18/1957684.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/02/18/1957684.html"/><content type="html">&lt;p&gt;sybase命令：去掉段：sp_dropsegment "logsegment", pay2, "dev01"&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;一. SYBASE 系统参数调整&lt;br /&gt;1.内存&lt;br /&gt;/sbin/sysctl -w kernel.shmmax=3416386150 &lt;/p&gt;&#xD;
&lt;div&gt;shmmax是最大共享内存段，假如服务器上没有别的应用并且使用raw device可以将此参数调整到物理内存的90%，如果使用file system device 的话相应调小，因为file system buffer需要开销内存!修改后重新启动系统。 &lt;/div&gt;&#xD;
&lt;div&gt;sp_configure "max memory",1500000 重启生效（设置为共享内存的75%）&lt;br /&gt;sp_configure "allocate max shared mem",1 启动的时候自动分配max memory指定的最大内存&lt;br /&gt;sp_cacheconfig "default data cache","1500m" 设置数据缓存（设置为max memory的一半）&lt;br /&gt;sp_cacheconfig "default data cache","cache_partition=2" 是CPU数量的倍数,对数据缓冲区分区&lt;br /&gt;sp_poolconfig "default data cache","64m","16k" 设置16K 数据缓存&lt;br /&gt;sp_poolconfig "default data cache","128m","8k" 设置8K 数据缓存&lt;br /&gt;sp_configure "procedure cache size",90000 存储过程数据缓存&lt;br /&gt;sp_cacheconfig 'tempdb_cache','200m','mixed' 创建命名高速缓存&lt;br /&gt;sp_bindcache 'tempdb_cache',tempdb 捆绑临时数据库到&lt;br /&gt;tempdb_cache高速缓存 &lt;/div&gt;&#xD;
&lt;div&gt;2.cpu &lt;br /&gt;sp_configure "max online engines",2 设置使用的CPU数量&lt;br /&gt;sp_configure "number of engines at startup",2 启动时使用CPU数量&lt;/div&gt;&#xD;
&lt;div&gt;3. 网络&lt;br /&gt;sp_configure "default network packet size",2048 设置网络传送包的大小(重启动生效)&lt;br /&gt;sp_configure "max network packet size",2048 &lt;/div&gt;&#xD;
&lt;div&gt;4. 其他资源使用&lt;br /&gt;sp_configure "number of locks",100000 锁使用数量&lt;br /&gt;sp_configure "number of open indexes",5000 打开索引&lt;br /&gt;sp_configure "number of open objects",5000 打开对象&lt;br /&gt;sp_configure "number of user connections",1000 用户连接数&lt;br /&gt;sp_configure "number of device",100 新建设备最大数量&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;二. sybase 设备调整&lt;/div&gt;&#xD;
&lt;div&gt;数据设备与日志设备必须分开，添加临时数据库设备&lt;/div&gt;&#xD;
&lt;div&gt;1. 数据设备&lt;br /&gt;sp_deviceattr devname,"dsync",true&lt;br /&gt;2. 日志设备&lt;br /&gt;sp_deviceattr devname,"dsync",false&lt;br /&gt;3. 临时数据库设备&lt;br /&gt;sp_deviceattr devname,"dsync",false&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;tempdb数据和日志分离： &lt;br /&gt;USE master &lt;br /&gt;Go &lt;/div&gt;&#xD;
&lt;div&gt;DISK INIT name = 'tempdbdev01', physname = '/opt/sybase/data/tempdbdev01.dat' , size = '1G',dsync = 'false' &lt;br /&gt;Go &lt;/div&gt;&#xD;
&lt;div&gt;DISK INIT name = 'tempdblogdev01', physname = '/opt/sybase/data/tempdblogdev01.dat', size = '1G',dsync = 'false' &lt;br /&gt;Go &lt;/div&gt;&#xD;
&lt;div&gt;ALTER DATABASE tempdb ON tempdbdev01 = '1G' LOG ON tempdblogdev01 = '1G' &lt;br /&gt;Go &lt;/div&gt;&#xD;
&lt;div&gt;USE tempdb &lt;br /&gt;Go &lt;/div&gt;&#xD;
&lt;div&gt;删除tempdb上使用的master段： &lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;EXEC sp_dropsegment 'logsegment', 'tempdb', 'master' &lt;br /&gt;go &lt;/div&gt;&#xD;
&lt;div&gt;EXEC sp_dropsegment 'system', 'tempdb', 'master' &lt;br /&gt;go &lt;/div&gt;&#xD;
&lt;div&gt;EXEC sp_dropsegment 'default', 'tempdb', 'master' &lt;br /&gt;Go &lt;/div&gt;&#xD;
&lt;div&gt;如果已针对 tempdb 建立了设备，则只需禁用 dsyncio，但需要重新启动 Adaptive Server： &lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;EXEC sp_deviceattr 'tempdbdev01', 'dsync', 'false' &lt;br /&gt;Go &lt;/div&gt;&#xD;
&lt;div&gt;EXEC sp_deviceattr 'tempdblogdev01', 'dsync','false' &lt;br /&gt;Go &lt;/div&gt;&#xD;
&lt;div&gt;数据库设备最好设置Direct IO，获得的性能相信会让你满意&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;三. sybase 数据结构调整&lt;/div&gt;&#xD;
&lt;div&gt;1. 数据库对象表、索引。。&lt;br /&gt;(1)对表新建合理的索引，定期分析表&lt;br /&gt;update statistics tabname (不锁表)&lt;br /&gt;(2)整理数据库空间 (锁表，剩余空间必须为最大表的1.2倍)&lt;br /&gt;reorg rebuild tabname&lt;br /&gt;recreate clustered index&lt;br /&gt;(3)重新编译存储过程与触发器&lt;br /&gt;sp_recompile usertable (与表相关联的存储过程和触发器)&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;四. sybase 数据库监控&lt;/div&gt;&#xD;
&lt;div&gt;1. 数据库死进程&lt;br /&gt;select * from master.syslogshold&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;五. sybase 数据库启动参数&lt;/div&gt;&#xD;
&lt;div&gt;-T3607 master &lt;br /&gt;-T3608 其他数据&lt;br /&gt;-m 单&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;=========================================================== &lt;br /&gt;SYBASE 移动日志文件到其他的设备 &lt;br /&gt;=========================================================== &lt;br /&gt;Moving the transaction log to another device&lt;br /&gt;1&amp;gt; alter database dbname log on device19 = 101&amp;gt; sp_logdevice dbname, device19The last-chance threshold for database dbname is now 1232 pages. ... sql inserts, to fill old log segment ...1&amp;gt; dump tran dbname with truncate_only1&amp;gt; sp_helplog dbname2&amp;gt; goIn database 'dbname', the log starts on device 'device19'.(return status = 0)1&amp;gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;feimei 发表于:2006.04.20 21:29 ::分类: ( SYBASE ) ::阅读:(63次) :: 评论 (0) :: 引用 (0) &lt;br /&gt;=========================================================== &lt;br /&gt;SYBASE 序列异常跳转解决方法 &lt;br /&gt;=========================================================== &lt;br /&gt;identity burning set factor的问题 &lt;br /&gt;每次异常断电跳转的数目是:identity burning set factor*10的负7次方*表中identity列定义的长度,例如identity burning set factor=5000,identity列定义的长度numeric(10,0),则该数等于:5000*10的负7次方*1010的10次方,该数比较大 &lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;另外可以在建表时设置跳转的值,语法是 create table (...) with identity_gap = value. 修改当前表步长&lt;/div&gt;&#xD;
&lt;div&gt;EXEC sp_chgattribute 't_61e_tolltype','identity_gap',50&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;feimei 发表于:2006.04.19 21:50 ::分类: ( SYBASE ) ::阅读:(91次) :: 评论 (0) :: 引用 (0) &lt;br /&gt;=========================================================== &lt;br /&gt;SYBASE 如何创建代理表 &lt;br /&gt;=========================================================== &lt;br /&gt;如何创建代理表 &lt;br /&gt;在interfaces文件中加入远程服务器条目 &lt;br /&gt;sp_addserver dblocal,local &lt;br /&gt;sp_addserver dbremote,null,dbremote &lt;br /&gt;sp_configure "enable cis",1 &lt;br /&gt;sp_addexternlogin dbremote,sa,sa,password &lt;br /&gt;创建代理表 &lt;br /&gt;create existing table zz_proxy (id int not null,name varchar(10) not null) &lt;br /&gt;at "sybase.master..zz" &lt;br /&gt;或者 &lt;br /&gt;create proxy_table zz1 &lt;br /&gt;at "sybase.master..zz" &lt;/div&gt;&#xD;
&lt;div&gt;建代理表时,远程表的结构数据已经存储在了本地,并且不会检测该表的结构是否发生改变,因此远程表的结构发生改变时,本地是不知道的,需要重新创建代理表,相当于重新刷新本地的存储的结构.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;feimei 发表于:2006.04.19 21:49 ::分类: ( SYBASE ) ::阅读:(108次) :: 评论 (0) :: 引用 (0) &lt;br /&gt;=========================================================== &lt;br /&gt;SYBASE 远程备份 &lt;br /&gt;=========================================================== &lt;br /&gt;在interfaces中加入远程备份服务器的条目(ip地址或者是远程服务器的物理名称)&lt;br /&gt;要注意加入的名称与远程备份服务器的名称要一致!!!&lt;/div&gt;&#xD;
&lt;div&gt;dump database to ... at bs_server_name&lt;/div&gt;&lt;img src="http://www.cnblogs.com/pony/aggbug/1957684.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/02/18/1957684.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/pony/archive/2011/01/30/1947941.html</id><title type="text">Java引用对象SoftReference WeakReference PhantomReference（二）</title><summary type="text">四、Java对引用的分类 级别 什么时候被垃圾回收 用途 生存时间 强 从来不会 对象的一般状态 JVM停止运行时终止 软 在内存不足时 对象简单？缓存 内存不足时终止 弱 在垃圾回收时 对象缓存 gc运行后终止 假象 Unknown Unknown Unknown 1、强引用： public static void main(String[] args) { MyDate date = new MyDate(); System.gc(); } 解释：即使显式调用了垃圾回收，但是用于date是强引用，date没有被回收 2、软引用： public static void main(String</summary><published>2011-01-30T09:18:00Z</published><updated>2011-01-30T09:18:00Z</updated><author><name>马森</name><uri>http://www.cnblogs.com/pony/</uri></author><link rel="alternate" href="http://www.cnblogs.com/pony/archive/2011/01/30/1947941.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/pony/archive/2011/01/30/1947941.html"/><content type="html">&lt;div&gt;&lt;div id="blog_text"&gt;              &lt;p&gt;四、Java对引用的分类&lt;/p&gt; &lt;table style="border: medium none; width: 100%; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td style="border: 1pt solid black; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;级别&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;什么时候被垃圾回收&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;用途&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;生存时间&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;强&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;从来不会&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;对象的一般状态&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;JVM停止运行时终止&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;软&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;在内存不足时&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;对象简单？缓存&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;内存不足时终止&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;弱&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;在垃圾回收时&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;对象缓存&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;gc运行后终止&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;假象&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;Unknown&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;Unknown&lt;/p&gt;             &lt;/td&gt;             &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 25%;" valign="top" width="25%"&gt;             &lt;p&gt;Unknown&lt;/p&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;1、强引用：&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;public static void main(String[] args) {&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  MyDate date = new MyDate();&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  System.gc();&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 9pt;"&gt;解释：即使显式调用了垃圾回收，但是用于&lt;/span&gt;&lt;span style="font-size: 9pt;"&gt;date&lt;/span&gt;&lt;span style="font-size: 9pt;"&gt;是强引用，&lt;/span&gt;&lt;span style="font-size: 9pt;"&gt;date&lt;/span&gt;&lt;span style="font-size: 9pt;"&gt;没有被回收&lt;/span&gt;&lt;/p&gt; &lt;p&gt;2、软引用：&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;public static void main(String[] args) {&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  SoftReference ref = new SoftReference(new MyDate());&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  drainMemory(); // &lt;/span&gt;&lt;span style="color: #0070c0;"&gt;让软引用工作&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 9pt;"&gt;解释：在内存不足时，软引用被终止，等同于：&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;MyDate date = new MyDate();&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;//-------------------&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;由&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;JVM&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;决定运行&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;-----------------&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;If(JVM.&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;内存不足&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;()) {&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  date = null;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  System.gc();&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;//-------------------------------------------------------------&lt;/span&gt;&lt;/p&gt; &lt;p&gt;3、弱引用：&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;public static void main(String[] args) {&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  WeakReference ref = new WeakReference(new MyDate());&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  System.gc(); // &lt;/span&gt;&lt;span style="color: #0070c0;"&gt;让弱引用工作&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 9pt;"&gt;解释：在&lt;/span&gt;&lt;span style="font-size: 9pt;"&gt;JVM&lt;/span&gt;&lt;span style="font-size: 9pt;"&gt;垃圾回收运行时，弱引用被终止，等同于：&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;MyDate date = new MyDate();&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;//------------------&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;垃圾回收运行&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;------------------&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;public void WeakSystem.gc() {&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  date = null;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  System.gc();&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p&gt;4、假象引用：&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;public static void main(String[] args) {&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  ReferenceQueue queue = new ReferenceQueue();&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  PhantomReference ref = new PhantomReference(new MyDate(), queue);&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  System.gc(); // &lt;/span&gt;&lt;span style="color: #0070c0;"&gt;让假象引用工作&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 9pt;"&gt;解释：假象引用，在实例化后，就被终止了，等同于：&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;MyDate date = new MyDate();&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;date = null;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: #0070c0;"&gt;//-------&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;终止点，在实例化后，不是在&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;gc&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;时，也不是在内存不足时&lt;/span&gt;&lt;span style="color: #0070c0;"&gt;--------&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;http://hi.baidu.com/mynetbeans/blog/item/d72208fa8d63ac1ba9d31160.html&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/pony/aggbug/1947941.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/pony/archive/2011/01/30/1947941.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
