<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://zx0zx9zx1zx9.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fzx0zx9zx1zx9.spaces.live.com%2fblog%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>有话就说: Blog</title><description /><link>http://zx0zx9zx1zx9.spaces.live.com/blog</link><language>en-US</language><pubDate>Thu, 21 Aug 2008 09:11:41 GMT</pubDate><lastBuildDate>Thu, 21 Aug 2008 09:11:41 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://zx0zx9zx1zx9.spaces.live.com/feed.rss</cf:parentRSS><live:type>blog</live:type><live:identity><live:id>5643277193709091688</live:id><live:alias>zx0zx9zx1zx9</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>空杯心态</title><link>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!253.entry</link><description>&lt;div&gt;敬畏是智慧的开端&lt;/div&gt;
&lt;div&gt;自由的前提是自律&lt;/div&gt;
&lt;div&gt;昨日之非不可留，今日之是不可执&lt;/div&gt;
&lt;div&gt;只管走过去，不要逗留去采了花朵去保留，因为一路上，还会有鲜花开放&lt;/div&gt;
&lt;div&gt;不要因为因为一朵花而牺牲了整个春天&lt;/div&gt;
&lt;div&gt;大智知止，小智惟谋&lt;/div&gt;
&lt;div&gt;将自己一放小，世界就变大&lt;/div&gt;
&lt;div&gt;越丰满的稻穗，头垂得越低&lt;/div&gt;
&lt;div&gt;一个优秀的人，一定要懂得时刻弯腰，这样才能看清脚下的路&lt;/div&gt;
&lt;div&gt;君子不器：君子不是器具，要具体问题具体分析&lt;/div&gt;
&lt;div&gt;毋意：不要妄加揣测&lt;/div&gt;
&lt;div&gt;毋必：不要妄下断语&lt;/div&gt;
&lt;div&gt;毋固：不将事情的看法固化&lt;/div&gt;
&lt;div&gt;毋我：不将自己的个人认知、意志高于一切&lt;/div&gt;
&lt;div&gt;退步原来是向前&lt;/div&gt;
&lt;div&gt;六根清净：眼、耳、鼻、舌、身、意六根，去掉不应该有的贪婪和执著，这样生命才会海阔天空&lt;/div&gt;
&lt;div&gt;回头即彼岸，人一直向前，不断超越；其实回头，回到生命的根本，就是彼岸&lt;/div&gt;
&lt;div&gt;空心就是无执著的心，是自由的心，是新鲜的心，是创造的心。就是对特定东西无执著的心。&lt;/div&gt;
&lt;div&gt;在向心事物挑战时，最初要有敢于行的气概，其次要有贯彻行的努力，然后不久就变成习惯行了&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=5643277193709091688&amp;page=RSS%3a+%e7%a9%ba%e6%9d%af%e5%bf%83%e6%80%81&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zx0zx9zx1zx9.spaces.live.com&amp;amp;GT1=zx0zx9zx1zx9"&gt;</description><category>理念</category><comments>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!253.entry#comment</comments><guid isPermaLink="true">http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!253.entry</guid><pubDate>Tue, 05 Aug 2008 13:56:22 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zx0zx9zx1zx9.spaces.live.com/blog/cns!4E50F2B55417FB68!253/comments/feed.rss</wfw:commentRss><wfw:comment>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!253.entry#comment</wfw:comment><dcterms:modified>2008-08-05T14:35:04Z</dcterms:modified></item><item><title>ajax dwr的应用</title><link>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!252.entry</link><description>&lt;div&gt;DWR是apache下面的一个ajax的一个项目，dwr的功能是在js中调用java的类方法。&lt;/div&gt;
&lt;div&gt;1.从&lt;a href="http://directwebremoting.org/"&gt;http://directwebremoting.org/&lt;/a&gt;下载dwr.jar，引入项目&lt;/div&gt;
&lt;div&gt;2.配置web.xml和dwr.xml&lt;/div&gt;
&lt;div&gt;3.在调用页面上引用下面js。注意不用实际引用文件，只需写明引用就可。&lt;/div&gt;
&lt;div&gt; &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src='./dwr/interface/Demo.js'&amp;gt;&amp;lt;/script&amp;gt; 调用类js&lt;br&gt; &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;./dwr/engine.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; 官方js&lt;br&gt; &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;./dwr/util.js&amp;quot; &amp;gt;&amp;lt;/script&amp;gt;官方js&lt;/div&gt;
&lt;div&gt;4.编写java后台调用类方法&lt;/div&gt;
&lt;div&gt;5.调用类返回后执行js的回调方法&lt;/div&gt;
&lt;div&gt;如：Demo.sayHello(name, backA);  //&lt;strong&gt;backA是回调方法    &lt;/strong&gt;  &lt;/div&gt;
&lt;div&gt;  function backA(data) {  //&lt;strong&gt;java类方法sayHello回调函数&lt;/strong&gt;&lt;br&gt;   dwr.util.setValue(&amp;quot;demoReply&amp;quot;, data);&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;6.在js调用java类方法时，可以传递pojo类。通过dws.xml的convert 标签配置，将前台js pojo传递给java后台pojo。&lt;br&gt;如： dwr.xml 的 &amp;lt;convert match=&amp;quot;org.getahead.dwrdemo.simpletext.Person&amp;quot; converter=&amp;quot;bean&amp;quot;/&amp;gt;&lt;/div&gt;
&lt;div&gt;var person = { name:'zhangxin', age:33, sex:1 }; &lt;/div&gt;
&lt;div&gt;Demo.sayPerson(person, backB); &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;web.xml配置如下：&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br&gt;&amp;lt;web-app version=&amp;quot;2.4&amp;quot; &lt;br&gt; xmlns=&amp;quot;&lt;a href="http://java.sun.com/xml/ns/j2ee"&gt;http://java.sun.com/xml/ns/j2ee&lt;/a&gt;&amp;quot; &lt;br&gt; xmlns:xsi=&amp;quot;&lt;a href="http://www.w3.org/2001/XMLSchema-instance"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; &lt;br&gt; xsi:schemaLocation=&amp;quot;&lt;a href="http://java.sun.com/xml/ns/j2ee"&gt;http://java.sun.com/xml/ns/j2ee&lt;/a&gt; &lt;br&gt; &lt;a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&lt;/a&gt;&amp;quot;&amp;gt;&lt;br&gt;  &amp;lt;!-- welcome-file-list&amp;gt;&lt;br&gt;    &amp;lt;welcome-file&amp;gt;index.jsp&amp;lt;/welcome-file&amp;gt;&lt;br&gt;  &amp;lt;/welcome-file-list--&amp;gt;&lt;br&gt;&amp;lt;servlet&amp;gt;&lt;br&gt;  &amp;lt;servlet-name&amp;gt;dwr-invoker&amp;lt;/servlet-name&amp;gt;  &lt;br&gt;  &amp;lt;servlet-class&amp;gt;org.directwebremoting.servlet.DwrServlet&amp;lt;/servlet-class&amp;gt;&lt;br&gt;  &amp;lt;init-param&amp;gt;&lt;br&gt;     &amp;lt;param-name&amp;gt;debug&amp;lt;/param-name&amp;gt;&lt;br&gt;     &amp;lt;param-value&amp;gt;true&amp;lt;/param-value&amp;gt;&lt;br&gt;  &amp;lt;/init-param&amp;gt;&lt;br&gt;&amp;lt;/servlet&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;servlet-mapping&amp;gt;&lt;br&gt;  &amp;lt;servlet-name&amp;gt;dwr-invoker&amp;lt;/servlet-name&amp;gt;&lt;br&gt;  &amp;lt;url-pattern&amp;gt;/dwr/*&amp;lt;/url-pattern&amp;gt;&lt;br&gt;&amp;lt;/servlet-mapping&amp;gt;  &lt;br&gt;&amp;lt;/web-app&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;strong&gt;dwr.xml配置如下：&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br&gt;&amp;lt;!DOCTYPE dwr PUBLIC&lt;br&gt;    &amp;quot;-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN&amp;quot;&lt;br&gt;    &amp;quot;&lt;a href="http://getahead.org/dwr/dwr20.dtd"&gt;http://getahead.org/dwr/dwr20.dtd&lt;/a&gt;&amp;quot;&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;dwr&amp;gt;&lt;br&gt;  &amp;lt;allow&amp;gt;&lt;br&gt;    &amp;lt;create creator=&amp;quot;new&amp;quot; javascript=&amp;quot;Demo&amp;quot;&amp;gt;&lt;br&gt;      &amp;lt;param name=&amp;quot;class&amp;quot; value=&amp;quot;org.getahead.dwrdemo.simpletext.Demo&amp;quot;/&amp;gt;&lt;br&gt;    &amp;lt;/create&amp;gt;&lt;br&gt;    &amp;lt;convert match=&amp;quot;org.getahead.dwrdemo.simpletext.Person&amp;quot; converter=&amp;quot;bean&amp;quot;/&amp;gt;  &lt;strong&gt;//将前台的js pojo转换成java类pojo&lt;/strong&gt;&lt;br&gt;  &amp;lt;/allow&amp;gt;&lt;br&gt;&amp;lt;/dwr&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;strong&gt;my.html代码如下：&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01 Transitional//EN&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;html&amp;gt;&lt;br&gt;  &amp;lt;head&amp;gt;&lt;br&gt;    &amp;lt;title&amp;gt;MyHtml.html&amp;lt;/title&amp;gt;&lt;br&gt;    &amp;lt;meta http-equiv=&amp;quot;keywords&amp;quot; content=&amp;quot;keyword1,keyword2,keyword3&amp;quot;&amp;gt;&lt;br&gt;    &amp;lt;meta http-equiv=&amp;quot;description&amp;quot; content=&amp;quot;this is my page&amp;quot;&amp;gt;&lt;br&gt;    &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;&amp;gt;&lt;br&gt;    &amp;lt;!--&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;./styles.css&amp;quot;&amp;gt;--&amp;gt;&lt;br&gt;&lt;strong&gt; &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src='./dwr/interface/Demo.js'&amp;gt;&amp;lt;/script&amp;gt; 关键配置&lt;br&gt; &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;./dwr/engine.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt; &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;./dwr/util.js&amp;quot; &amp;gt;&amp;lt;/script&amp;gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt; &amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br&gt;  function update() {&lt;br&gt;    var name = dwr.util.getValue(&amp;quot;demoName&amp;quot;);  &lt;br&gt;    var person = { name:'zhangxin', age:33, sex:1 }; &lt;strong&gt;//通过dws.xml的convert 标签配置，将前台js pojo传递给java后台pojo&lt;/strong&gt;&lt;br&gt;    Demo.sayPerson(person, backB); &lt;br&gt;    Demo.sayHello(name, backA);        &lt;br&gt;  }&lt;br&gt;  function backA(data) {  //&lt;strong&gt;java类方法sayHello回调函数&lt;/strong&gt;&lt;br&gt;   dwr.util.setValue(&amp;quot;demoReply&amp;quot;, data);&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  function backB(data) {  //&lt;strong&gt;java类方法sayPerson回调函数&lt;/strong&gt;&lt;br&gt;   dwr.util.setValue(&amp;quot;demoReply1&amp;quot;, data);&lt;br&gt;  }&lt;br&gt; &amp;lt;/script&amp;gt;&lt;br&gt;  &amp;lt;/head&amp;gt;&lt;br&gt;  &amp;lt;body&amp;gt;&lt;br&gt; &amp;lt;p&amp;gt;&lt;br&gt;  Name:&lt;br&gt;  &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;demoName&amp;quot;/&amp;gt;&lt;br&gt;  &amp;lt;input value=&amp;quot;Send&amp;quot; type=&amp;quot;button&amp;quot; onclick=&amp;quot;update()&amp;quot;/&amp;gt;&lt;br&gt;  &amp;lt;br/&amp;gt;&lt;br&gt;  Reply: &amp;lt;span id=&amp;quot;demoReply&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br&gt; &amp;lt;/p&amp;gt;&lt;/div&gt;
&lt;div&gt;  &amp;lt;/body&amp;gt;&lt;br&gt;&amp;lt;/html&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;strong&gt;Demo.java代码如下：&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;package org.getahead.dwrdemo.simpletext;&lt;/div&gt;
&lt;div&gt;import  org.getahead.dwrdemo.simpletext.Person;&lt;/div&gt;
&lt;div&gt;public class Demo {&lt;br&gt;    public String sayHello(String name) {&lt;br&gt;        return &amp;quot;Hi , &amp;quot; + name;&lt;br&gt;    }&lt;br&gt;    public String sayPerson(Person person) {&lt;br&gt;        String ss =  &amp;quot;hello , &amp;quot; + person.getName() + &amp;quot;,&amp;quot; + person.getAge() + &amp;quot;,&amp;quot; +person.getSex();&lt;br&gt;        System.out.println(ss);&lt;br&gt;        return ss;&lt;br&gt;    }    &lt;br&gt;}&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;person.java代码如下：&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;package org.getahead.dwrdemo.simpletext;&lt;/div&gt;
&lt;div&gt;public class Person {&lt;br&gt; private String name;&lt;br&gt; private int age;&lt;br&gt; private int sex;&lt;br&gt; &lt;br&gt; public String getName() {&lt;br&gt;  return name;&lt;br&gt; }&lt;br&gt; public int getAge() {&lt;br&gt;  return age;&lt;br&gt; }&lt;br&gt; public int getSex() {&lt;br&gt;  return sex;&lt;br&gt; }&lt;br&gt; public void setName(String pname) {&lt;br&gt;  name = pname;&lt;br&gt; }&lt;br&gt; public void setAge(int page) {&lt;br&gt;  age = page;&lt;br&gt; }&lt;br&gt; public void setName(int psex) {&lt;br&gt;  sex = psex;&lt;br&gt; }&lt;br&gt;}&lt;br&gt;&lt;/div&gt;
&lt;div&gt;官方例子： &lt;a href="http://directwebremoting.org/dwr/examples/text"&gt;http://directwebremoting.org/dwr/examples/text&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=5643277193709091688&amp;page=RSS%3a+ajax+dwr%e7%9a%84%e5%ba%94%e7%94%a8&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zx0zx9zx1zx9.spaces.live.com&amp;amp;GT1=zx0zx9zx1zx9"&gt;</description><category>技术</category><comments>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!252.entry#comment</comments><guid isPermaLink="true">http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!252.entry</guid><pubDate>Mon, 04 Aug 2008 08:17:39 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zx0zx9zx1zx9.spaces.live.com/blog/cns!4E50F2B55417FB68!252/comments/feed.rss</wfw:commentRss><wfw:comment>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!252.entry#comment</wfw:comment><dcterms:modified>2008-08-04T08:46:03Z</dcterms:modified></item><item><title>团队建设</title><link>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!250.entry</link><description>&lt;div&gt;
&lt;table style="width:526.5pt;border-collapse:collapse" cellspacing=0 cellpadding=0 width=702 border=0&gt;
&lt;tbody&gt;
&lt;tr style="height:14.25pt" height=19&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:black 1pt solid;padding-left:0.75pt;background:silver;padding-bottom:0.75pt;border-left:black 1pt solid;width:84pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:14.25pt" width=112 bgcolor=silver height=19&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span style="font-size:12pt;color:black;font-family:宋体"&gt;测评维度&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:black 1pt solid;padding-left:0.75pt;background:silver;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:14.25pt" width=52 bgcolor=silver height=19&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span style="font-size:12pt;color:black;font-family:宋体"&gt;序号&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:black 1pt solid;padding-left:0.75pt;background:silver;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:14.25pt" width=433 bgcolor=silver height=19&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span style="font-size:12pt;color:black;font-family:宋体"&gt;题目&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:black 1pt solid;padding-left:0.75pt;background:silver;padding-bottom:0.75pt;border-left:black 1pt solid;width:78.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:14.25pt" width=105 bgcolor=silver height=19&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;二级维度&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:14.25pt" width=0 height=19&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:black 1pt solid;width:84pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=112 rowspan=5&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span style="font-size:12pt;color:black;font-family:宋体"&gt;工作效率&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;1&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;公司的使命&lt;span lang=EN-US&gt;/&lt;/span&gt;目标使我觉得我的工作很重要&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:black 1pt solid;width:78.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=105 bgcolor=yellow rowspan=2&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;战略传承&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;2&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;在过去&lt;span lang=EN-US&gt;7&lt;/span&gt;天里，我有机会了解公司内发生的最新发展情况&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;3&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我觉得公司的政策和工作流程清晰明了&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:black 1pt solid;width:78.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=105 rowspan=3&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;工作流程&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;4&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我所在团队里，组织井然有序，运作效率令人满意&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;5&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我所在团队里，分工明确，每个人都知道做什么&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:black 1pt solid;width:84pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=112 rowspan=14&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span style="font-size:12pt;color:black;font-family:宋体"&gt;团队建设&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;6&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;在工作中，我每天都有机会做我最擅长做的事&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:78.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=105 bgcolor=yellow rowspan=3&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;分工与目标设定&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;7&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我的上级为我设定了挑战性的目标&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;8&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我的上级特别注重提高工作要求&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;9&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我的上级不能容忍平庸的绩效表现&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:black 1pt solid;width:78.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=105 rowspan=4&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;激励团队&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;10&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;在过去&lt;span lang=EN-US&gt;7&lt;/span&gt;天里，我得到的支持和鼓励多于批评&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;11&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我觉得我的上级关心我的个人情况&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;12&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;在工作中，我觉得我的意见受到重视&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;13&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我觉得我的上级鼓励我冒合理的风险&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:black 1pt solid;width:78.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=105 bgcolor=yellow rowspan=3&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;授权&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;14&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我的上级鼓励我按照自己认为最合适的方法来工作&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;15&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我的上级确保下属们能积极参与计划的制定、实施及跟进&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;16&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我的同事们致力于高质量的工作&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:black 1pt solid;width:78.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=105 rowspan=4&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;团队归属&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;17&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我在工作单位有一个最要好的朋友&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;18&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;在紧急情况下，我的同事们都愿意分担他人的职责&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;19&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我愿意推荐我的朋友到本单位工作&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:black 1pt solid;width:84pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=112 rowspan=3&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span style="font-size:12pt;color:black;font-family:宋体"&gt;学习发展&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;20&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;在过去的六个月内，我的上级主动跟我沟通学习和发展机会&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:black 1pt solid;width:78.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=105 bgcolor=yellow rowspan=3&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;学习发展&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;21&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;在过去一年里，我有机会参加有针对性的培训或学习交流&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;22&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;background:yellow;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 bgcolor=yellow height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;在过去一年里，我能得到提升自己职业发展所需要的锻炼机会&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:black 1pt solid;width:84pt;padding-top:0.75pt;border-bottom:medium none;height:19.5pt" width=112 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span style="font-size:12pt;color:black;font-family:宋体"&gt;离职预警&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:medium none;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt;23&lt;/span&gt;&lt;/font&gt;
&lt;td style="padding-right:0.75pt;padding-left:0.75pt;padding-bottom:0.75pt;width:324.75pt;padding-top:0.75pt;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;我在未来&lt;span lang=EN-US&gt;6&lt;/span&gt;个月内可能寻找其他公司的工作（反向计分）&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:medium none;padding-left:0.75pt;padding-bottom:0.75pt;border-left:black 1pt solid;width:78.75pt;padding-top:0.75pt;border-bottom:medium none;height:19.5pt" width=105 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span style="font-size:10pt;color:black;font-family:宋体"&gt;离职预警&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;height:19.5pt" width=0 height=26&gt;
&lt;tr style="height:19.5pt" height=26&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:black 1pt solid;padding-left:0.75pt;padding-bottom:0.75pt;border-left:black 1pt solid;width:84pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=112 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt; &lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:black 1pt solid;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:39pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=52 height=26&gt;
&lt;p style="text-align:center" align=center&gt;&lt;font face="宋体" color=black size=3&gt;&lt;span lang=EN-US style="font-size:12pt;color:black;font-family:宋体"&gt; &lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:black 1pt solid;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:324.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=433 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span lang=EN-US style="font-size:10pt;color:black;font-family:宋体"&gt; &lt;/span&gt;&lt;/font&gt;
&lt;td style="border-right:black 1pt solid;padding-right:0.75pt;border-top:black 1pt solid;padding-left:0.75pt;padding-bottom:0.75pt;border-left:medium none;width:78.75pt;padding-top:0.75pt;border-bottom:black 1pt solid;height:19.5pt" width=105 height=26&gt;
&lt;p style="text-align:left" align=left&gt;&lt;font face="宋体" color=black size=2&gt;&lt;span lang=EN-US style="font-size:10pt;color:black;font-family:宋体"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=5643277193709091688&amp;page=RSS%3a+%e5%9b%a2%e9%98%9f%e5%bb%ba%e8%ae%be&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zx0zx9zx1zx9.spaces.live.com&amp;amp;GT1=zx0zx9zx1zx9"&gt;</description><category>理念</category><comments>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!250.entry#comment</comments><guid isPermaLink="true">http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!250.entry</guid><pubDate>Wed, 30 Jul 2008 00:42:59 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zx0zx9zx1zx9.spaces.live.com/blog/cns!4E50F2B55417FB68!250/comments/feed.rss</wfw:commentRss><wfw:comment>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!250.entry#comment</wfw:comment><dcterms:modified>2008-07-30T00:42:59Z</dcterms:modified></item><item><title>学习巴菲特投资</title><link>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!248.entry</link><description>&lt;div&gt;一家公司的一流业务的第一条标准是这家公司有没有强大的竞争优势，以及这多久种竞争优势能够。这家公司的产品是不是人人想要；产品是不是人人只要。人人只要的产品具有无可 替代性。&lt;/div&gt;
&lt;div&gt;一家公司的一流业务的第二条标准是老牌。老牌公司长期经营稳定的投资回报。&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;一家公司的一流业务的第二条标准是大牌。大牌就是市场份额长期占有绝对优势。&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;购买股票就是购买公司，要关注公司的运营。要与市场隔绝，静下心来，不看价格看价值；不看股价看公司；购买被低估的股票，等到价值回归时获得收益；&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=5643277193709091688&amp;page=RSS%3a+%e5%ad%a6%e4%b9%a0%e5%b7%b4%e8%8f%b2%e7%89%b9%e6%8a%95%e8%b5%84&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zx0zx9zx1zx9.spaces.live.com&amp;amp;GT1=zx0zx9zx1zx9"&gt;</description><category>投资理财</category><comments>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!248.entry#comment</comments><guid isPermaLink="true">http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!248.entry</guid><pubDate>Sat, 26 Jul 2008 10:57:36 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zx0zx9zx1zx9.spaces.live.com/blog/cns!4E50F2B55417FB68!248/comments/feed.rss</wfw:commentRss><wfw:comment>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!248.entry#comment</wfw:comment><dcterms:modified>2008-07-26T13:29:28Z</dcterms:modified></item><item><title>JMX应用</title><link>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!247.entry</link><description>&lt;div&gt;&lt;font face=calibri&gt;     JMX&lt;/font&gt;&lt;font face="宋体"&gt;是&lt;/font&gt;&lt;font face=calibri&gt;Java Management Extension&lt;/font&gt;&lt;font face="宋体"&gt;的缩写，可译为&lt;/font&gt;&lt;font face=calibri&gt;Java&lt;/font&gt;&lt;font face="宋体"&gt;管理工具扩展，扩展的意思就是&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;不包含在标准的&lt;/font&gt;&lt;font face=calibri&gt;J2SE&lt;/font&gt;&lt;font face="宋体"&gt;中，我们必须要另外下载&lt;/font&gt;&lt;font face=calibri&gt;JMX RI&lt;/font&gt;&lt;font face="宋体"&gt;的实现。不过，这种把&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;排除在&lt;/font&gt;&lt;font face=calibri&gt;J2SE&lt;/font&gt;&lt;font face="宋体"&gt;之外的情况已经成为历史了，&lt;/font&gt;&lt;font face=calibri&gt;J2SE5.0&lt;/font&gt;&lt;font face="宋体"&gt;和&lt;/font&gt;&lt;font face=calibri&gt;J2SE6.0&lt;/font&gt;&lt;font face="宋体"&gt;都已经包含了&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;的标准实现。这说明，&lt;/font&gt;&lt;font face=calibri&gt; JMX&lt;/font&gt;&lt;font face="宋体"&gt;已经成为&lt;/font&gt;&lt;font face=calibri&gt;J2SE&lt;/font&gt;&lt;font face="宋体"&gt;不可分割的一部分，另外一方面，&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;已经成为&lt;/font&gt;&lt;font face=calibri&gt;Java&lt;/font&gt;&lt;font face="宋体"&gt;平台上管理工具的事实标准，在业界广泛使用。例如，&lt;/font&gt;&lt;font face=calibri&gt;JBOSS&lt;/font&gt;&lt;font face="宋体"&gt;就是以&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;为微内核，&lt;/font&gt;&lt;font face=calibri&gt;Web&lt;/font&gt;&lt;font face="宋体"&gt;应用模块和其它功能模块都可热插拨到这个微内核，将&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;的管理功能发挥得淋漓尽致。&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;    JMX&lt;font face="宋体"&gt;要管理的对象是什么呢，是资源。什么是资源，资源是指企业中的的各种应用软件和平台，举例来说，一个公司内部可能有许多应用服务器、若干&lt;/font&gt;&lt;font face=calibri&gt;Web&lt;/font&gt;&lt;font face="宋体"&gt;服务器、一台至多台的数据库服务器及文件服务器等等，那么，如果我们想监视数据库服务器的内存使用情况，或者我们想更改应用服务器上&lt;/font&gt;&lt;font face=calibri&gt;JDBC&lt;/font&gt;&lt;font face="宋体"&gt;最大连接池的数目，但我们又不想重启数据库和应用服务器，这就是典型意义上的资源管理，即对我们的资源进行监视&lt;/font&gt;&lt;font face=calibri&gt;(Monitoring&lt;/font&gt;&lt;font face="宋体"&gt;，查看&lt;/font&gt;&lt;font face=calibri&gt;)&lt;/font&gt;&lt;font face="宋体"&gt;和管理&lt;/font&gt;&lt;font face=calibri&gt;(Management&lt;/font&gt;&lt;font face="宋体"&gt;，更改&lt;/font&gt;&lt;font face=calibri&gt;)&lt;/font&gt;&lt;font face="宋体"&gt;，这种监视和更改不妨碍当前资源的正常运行。对资源进行适当的监测和管理，可以让我们的&lt;/font&gt;&lt;font face=calibri&gt;IT&lt;/font&gt;&lt;font face="宋体"&gt;资源尽可能的平稳运行，可以为我们的客户提供真正意思上的&lt;/font&gt;&lt;font face=calibri&gt;24&lt;/font&gt;&lt;font face="宋体"&gt;×&lt;/font&gt;&lt;font face=calibri&gt;7&lt;/font&gt;&lt;font face="宋体"&gt;服务。在资源耗尽或者在硬件出故障之前，我们就可以通过管理工具监测到，并通过管理工具进行热调整和插拔。独孤九剑，料敌机先，适当的资源管理就是我们料敌机先的工具，可以让我们立于&lt;/font&gt;&lt;font face=calibri&gt;IT&lt;/font&gt;&lt;font face="宋体"&gt;服务的不败之地。在&lt;/font&gt;&lt;font face=calibri&gt;Sun&lt;/font&gt;&lt;font face="宋体"&gt;公司提出&lt;/font&gt;&lt;font face=calibri&gt;JMX(JSR174)&lt;/font&gt;&lt;font face="宋体"&gt;以前，人们通常都是使用&lt;/font&gt;&lt;font face=calibri&gt;SNMP&lt;/font&gt;&lt;font face="宋体"&gt;对网络上的资源进行管理。&lt;/font&gt;&lt;font face=calibri&gt;SNMP&lt;/font&gt;&lt;font face="宋体"&gt;的主要问题是入门门槛太高，不容易使用。所以&lt;/font&gt;&lt;font face=calibri&gt;Sun&lt;/font&gt;&lt;font face="宋体"&gt;提出了&lt;/font&gt;&lt;font face=calibri&gt;JSR174&lt;/font&gt;&lt;font face="宋体"&gt;倡议并且提供了一套&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;的参考实现。&lt;/font&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;从技术上说，&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;整体架构可分为三层，即资源植入层&lt;/font&gt;&lt;font face=calibri&gt;(Instrumentation Level&lt;/font&gt;&lt;font face="宋体"&gt;，可能有更好的译法？&lt;/font&gt;&lt;font face=calibri&gt;)&lt;/font&gt;&lt;font face="宋体"&gt;、代理层&lt;/font&gt;&lt;font face=calibri&gt;(Agent Level)&lt;/font&gt;&lt;font face="宋体"&gt;和管理层&lt;/font&gt;&lt;font face=calibri&gt;(Manager Level)&lt;/font&gt;&lt;font face="宋体"&gt;，简述如下：&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;    资源植入层&lt;/font&gt;&lt;font face=calibri&gt;(Instrumentation Level)&lt;/font&gt;&lt;font face="宋体"&gt;：该层包含&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;及这些&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;所管理的资源，&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;是一个&lt;/font&gt;&lt;font face=calibri&gt;Java&lt;/font&gt;&lt;font face="宋体"&gt;对象，它必须实现&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;规范中规定的接口。按照&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;规范，在&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;对象的接口中，我们可以指定管理层可以访问资源的哪些属性，可以调用资源的哪些方法，并且，在资源的属性发生变化是，我们的&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;可以发出消息，通知对这些属性变化感兴趣的其它对象。&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;规范定义了四种&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;，它们分别是标准&lt;/font&gt;&lt;font face=calibri&gt;MBeans(Standard MBeans)&lt;/font&gt;&lt;font face="宋体"&gt;、动态&lt;/font&gt;&lt;font face=calibri&gt;MBeans(Dynamic MBeans)&lt;/font&gt;&lt;font face="宋体"&gt;、开放&lt;/font&gt;&lt;font face=calibri&gt;MBeans(Open MBeans)&lt;/font&gt;&lt;font face="宋体"&gt;和模态&lt;/font&gt;&lt;font face=calibri&gt;MBeans(Model MBeans)&lt;/font&gt;&lt;font face="宋体"&gt;。&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;font face="宋体"&gt;    代理层&lt;/font&gt;&lt;font face=calibri&gt;(Agent Level)&lt;/font&gt;&lt;font face="宋体"&gt;：代理层的目的就是要把&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;中实现的接口暴露给管理层，该层通常由&lt;/font&gt;&lt;font face=calibri&gt;MBean Server&lt;/font&gt;&lt;font face="宋体"&gt;和&lt;/font&gt;&lt;font face=calibri&gt;Agent Services&lt;/font&gt;&lt;font face="宋体"&gt;构成，&lt;/font&gt;&lt;font face=calibri&gt;MBean Server&lt;/font&gt;&lt;font face="宋体"&gt;就是一个&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;对象注册器，所有的资源&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;都注册到这个&lt;/font&gt;&lt;font face=calibri&gt;MBean Server&lt;/font&gt;&lt;font face="宋体"&gt;，对象管理器或者其它的管理层应用程序可以通过访问&lt;/font&gt;&lt;font face=calibri&gt;MBean Server&lt;/font&gt;&lt;font face="宋体"&gt;，从而可以访问&lt;/font&gt;&lt;font face=calibri&gt;MBean Server&lt;/font&gt;&lt;font face="宋体"&gt;中注册的&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;，当然也就可以监视和管理和这些&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;绑定的资源。&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;font face="宋体"&gt;    管理层&lt;/font&gt;&lt;font face=calibri&gt;(Manager Level)&lt;/font&gt;&lt;font face="宋体"&gt;：又称之为分布式服务层&lt;/font&gt;&lt;font face=calibri&gt;(Distributed Services)&lt;/font&gt;&lt;font face="宋体"&gt;，顾名思义，该层主要包含一些管理应用程序，这些程序可以访问和操作&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;代理层&lt;/font&gt;&lt;font face=calibri&gt;(Agent Level)&lt;/font&gt;&lt;font face="宋体"&gt;。这些管理应用程序可以是一个&lt;/font&gt;&lt;font face=calibri&gt;Web&lt;/font&gt;&lt;font face="宋体"&gt;应用，也可能是一个&lt;/font&gt;&lt;font face=calibri&gt;Java SWT&lt;/font&gt;&lt;font face="宋体"&gt;应用程序。&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;    下面，我们举一个简单的例子，理解一下&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;中中的各个概念。我们家有一个中央热水系统&lt;/font&gt;&lt;font face=calibri&gt;(Central Heater System)&lt;/font&gt;&lt;font face="宋体"&gt;，它是我们家的一个资源，现在我们想通过&lt;/font&gt;&lt;font face=calibri&gt;JMI&lt;/font&gt;&lt;font face="宋体"&gt;进行管理。现有的代码如下所示：&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;1.1&lt;font face="宋体"&gt;资源植入层&lt;/font&gt;&lt;font face=calibri&gt;(Instrumentation Level)&lt;/font&gt;&lt;font face="宋体"&gt;代码示例&lt;/font&gt; &lt;font face="宋体"&gt;&lt;br&gt;我们如何让&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;对我们的中央热水器进行管理呢&lt;/font&gt;&lt;font face=calibri&gt;?&lt;/font&gt;&lt;font face="宋体"&gt;首先，我们并不想让远程管理者能够关闭我们的中央热水器，因为热水器一旦关上，我们再也无法访问厂家提供的&lt;/font&gt;&lt;font face=calibri&gt;API&lt;/font&gt;&lt;font face="宋体"&gt;。既然不能关闭它，我们的&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;中也就不需要打开&lt;/font&gt;&lt;font face=calibri&gt;(turnOn)&lt;/font&gt;&lt;font face="宋体"&gt;方法。所以，我们简单定义的&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;接口如下：&lt;/font&gt; &lt;br&gt;&lt;b&gt;&lt;font face="'"&gt;package&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; carl.test.jmx;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;interface&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; CentralHeaterImplMBean {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; String getHeaterProvider();&lt;/font&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;br&gt;&lt;font face="'"&gt;&lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;  public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;int&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; getCurrentTemperature();&lt;/font&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;font face="'"&gt;&lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;void&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; setCurrentTemperature(&lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;int&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; newTemperature);&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; String printCurrentTemperature();&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;} &lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;font face="宋体"&gt;上面的&lt;/font&gt;&lt;font face=calibri&gt;MBean&lt;/font&gt;&lt;font face="宋体"&gt;接口及其简单，意义也非常明显，我们只向管理程序公开热水器的生产厂家&lt;/font&gt;&lt;font face=calibri&gt;(&lt;/font&gt;&lt;font face="宋体"&gt;该属性为只读，管理程序不能更改热水器的生产厂家&lt;/font&gt;&lt;font face=calibri&gt;)&lt;/font&gt;&lt;font face="宋体"&gt;，但管理程序可以获取并更改当前热水器的温度，并且可以打印出热水器的当前温度。&lt;/font&gt; &lt;br&gt;&lt;font face="宋体"&gt;接下来，我们要做的，就是更改我们已有的&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterImpl.java&lt;/font&gt;&lt;font face="宋体"&gt;代码，让它实现&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterImplMBean&lt;/font&gt;&lt;font face="宋体"&gt;接口，同时实现&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterImplMBean MBean&lt;/font&gt;&lt;font face="宋体"&gt;中规定的所有方法。&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterImpl.java&lt;/font&gt;&lt;font face="宋体"&gt;更改后的源代码如下：&lt;/font&gt; &lt;br&gt;&lt;b&gt;&lt;font face="'"&gt;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&lt;b&gt;&lt;font face="'"&gt;package&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; carl.test.jmx;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;class&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; CentralHeaterImpl &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;implements&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; CentralHeaterInf,CentralHeaterImplMBean {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;int&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;font face="'"&gt;currentTemperature&lt;/font&gt;&lt;font face="'"&gt;;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;int&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; getCurrentTemperature() {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;font face="'"&gt;currentTemperature&lt;/font&gt;&lt;font face="'"&gt;;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  }&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;void&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; setCurrentTemperature(&lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;int&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; newTemperature) {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    &lt;/font&gt;&lt;font face="'"&gt;currentTemperature&lt;/font&gt;&lt;font face="'"&gt;=newTemperature;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  }&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;void&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; turnOff() {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    System.&lt;/font&gt;&lt;i&gt;&lt;font face="'"&gt;out&lt;/font&gt;&lt;/i&gt;&lt;font face="'"&gt;.println(&lt;/font&gt;&lt;font face="'"&gt;&amp;quot;The heater is off. &amp;quot;&lt;/font&gt;&lt;font face="'"&gt;);&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  }&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;void&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; turnOn() {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    System.&lt;/font&gt;&lt;i&gt;&lt;font face="'"&gt;out&lt;/font&gt;&lt;/i&gt;&lt;font face="'"&gt;.println(&lt;/font&gt;&lt;font face="'"&gt;&amp;quot;The heater is on. &amp;quot;&lt;/font&gt;&lt;font face="'"&gt;);&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;font face="'"&gt;&lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  }&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; String getHeaterProvider() {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;i&gt;&lt;font face="'"&gt;HEATER_PROVIDER&lt;/font&gt;&lt;/i&gt;&lt;font face="'"&gt;;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  }&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; String printCurrentTemperature() {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    String printMsg=&lt;/font&gt;&lt;font face="'"&gt;&amp;quot;Current temperature is:&amp;quot;&lt;/font&gt;&lt;font face="'"&gt;+&lt;/font&gt;&lt;font face="'"&gt;currentTemperature&lt;/font&gt;&lt;font face="'"&gt;;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    System.&lt;/font&gt;&lt;i&gt;&lt;font face="'"&gt;out&lt;/font&gt;&lt;/i&gt;&lt;font face="'"&gt;.println(printMsg);&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; printMsg;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  }&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;}&lt;/font&gt; &lt;br&gt;&lt;font face="宋体"&gt;到此为止，我们的资源植入层&lt;/font&gt;&lt;font face=calibri&gt;(Instrumentation Level)&lt;/font&gt;&lt;font face="宋体"&gt;的代码全部完成，它主要由一个&lt;/font&gt;&lt;font face=calibri&gt;MBean(CentralHeaterImplBean)&lt;/font&gt;&lt;font face="宋体"&gt;及其实现类&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterImpl&lt;/font&gt;&lt;font face="宋体"&gt;组成，在&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterImplBean&lt;/font&gt;&lt;font face="宋体"&gt;这个&lt;/font&gt;&lt;font face=calibri&gt;MBean&lt;/font&gt;&lt;font face="宋体"&gt;接口中，我们说明了要向管理程序暴露的属性和方法，在本例中，我们的管理程序可以访问热水器的生产厂家信息，同时还可以获取和设置并打印热水器的温度。在&lt;/font&gt;&lt;font face=calibri&gt;MBean&lt;/font&gt;&lt;font face="宋体"&gt;的实现类中，我们实现了&lt;/font&gt;&lt;font face=calibri&gt;MBean&lt;/font&gt;&lt;font face="宋体"&gt;接口中规定的所有方法。&lt;/font&gt; &lt;br&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;1.2 &lt;font face="宋体"&gt;代理层&lt;/font&gt;&lt;font face=calibri&gt;(Agent Level)&lt;/font&gt;&lt;font face="宋体"&gt;示例代码&lt;/font&gt; &lt;br&gt;&lt;b&gt;&lt;font face="'"&gt;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&lt;b&gt;&lt;font face="'"&gt;import&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; java.lang.management.ManagementFactory;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;import&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; javax.management.MBeanServer;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;import&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; javax.management.ObjectName;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;class&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; CentralHeaterAgent {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;private&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;static&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; MBeanServer &lt;/font&gt;&lt;i&gt;&lt;font face="'"&gt;mBeanServer&lt;/font&gt;&lt;/i&gt;&lt;font face="'"&gt;;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;public&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;static&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;void&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; main(String[] args) &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;throws&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; Exception {&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    ObjectName oname;&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    &lt;/font&gt;&lt;i&gt;&lt;font face="'"&gt;mBeanServer&lt;/font&gt;&lt;/i&gt;&lt;font face="'"&gt; = ManagementFactory.&lt;i&gt;getPlatformMBeanServer&lt;/i&gt;();&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    CentralHeaterInf centralHeater = &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; CentralHeaterImpl();&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    oname = &lt;/font&gt;&lt;b&gt;&lt;font face="'"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;font face="'"&gt; ObjectName(&lt;/font&gt;&lt;font face="'"&gt;&amp;quot;MyHome:name=centralheater&amp;quot;&lt;/font&gt;&lt;font face="'"&gt;);&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    &lt;/font&gt;&lt;i&gt;&lt;font face="'"&gt;mBeanServer&lt;/font&gt;&lt;/i&gt;&lt;font face="'"&gt;.registerMBean(centralHeater, oname);&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    System.&lt;/font&gt;&lt;i&gt;&lt;font face="'"&gt;out&lt;/font&gt;&lt;/i&gt;&lt;font face="'"&gt;.println(&lt;/font&gt;&lt;font face="'"&gt;&amp;quot;Press any key to end our JMX agent...&amp;quot;&lt;/font&gt;&lt;font face="'"&gt;);&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;    System.&lt;/font&gt;&lt;i&gt;&lt;font face="'"&gt;in&lt;/font&gt;&lt;/i&gt;&lt;font face="'"&gt;.read();&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;  }&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face="'"&gt;}&lt;/font&gt;&lt;font face="'"&gt; &lt;br&gt;&lt;/font&gt;&lt;font face=calibri&gt;您可以看到，上面的代理层代码异常简单。前面讲过，代理层中最重要的对象就是&lt;/font&gt;&lt;font face=calibri&gt;MBeanServer&lt;/font&gt;&lt;font face="宋体"&gt;，我们可以把&lt;/font&gt;&lt;font face=calibri&gt;MBeanServer&lt;/font&gt;&lt;font face="宋体"&gt;理解为一个全局的&lt;/font&gt;&lt;font face=calibri&gt;HashMap&lt;/font&gt;&lt;font face="宋体"&gt;，所有的&lt;/font&gt;&lt;font face=calibri&gt;MBeans&lt;/font&gt;&lt;font face="宋体"&gt;都通过唯一的名字注册到这个&lt;/font&gt;&lt;font face=calibri&gt;HashMap&lt;/font&gt;&lt;font face="宋体"&gt;，这个&lt;/font&gt;&lt;font face=calibri&gt;HashMap&lt;/font&gt;&lt;font face="宋体"&gt;可以跨越&lt;/font&gt;&lt;font face=calibri&gt;JVM&lt;/font&gt;&lt;font face="宋体"&gt;访问，甚至可以通过&lt;/font&gt;&lt;font face=calibri&gt;RMI&lt;/font&gt;&lt;font face="宋体"&gt;、&lt;/font&gt;&lt;font face=calibri&gt;Http&lt;/font&gt;&lt;font face="宋体"&gt;及其它手段跨越网络传输到其它机器，让其它机器也能访问这个&lt;/font&gt;&lt;font face=calibri&gt;MBeanServer&lt;/font&gt;&lt;font face="宋体"&gt;中注册的对象。下面我们稍微理解一下代理层代码，在&lt;/font&gt;&lt;font face=calibri&gt;main()&lt;/font&gt;&lt;font face="宋体"&gt;方法中，&lt;/font&gt; &lt;/font&gt;&lt;/div&gt;&lt;font face="宋体"&gt;
&lt;div&gt;&lt;br&gt;&lt;font face=calibri&gt;a)&lt;/font&gt;   &lt;font face="宋体"&gt;首先我们从&lt;/font&gt;&lt;font face=calibri&gt;ManagementFactory&lt;/font&gt;&lt;font face="宋体"&gt;的工厂方法中获得&lt;/font&gt;&lt;font face=calibri&gt;MBeanServer&lt;/font&gt;&lt;font face="宋体"&gt;对象；&lt;/font&gt; &lt;br&gt;&lt;font face=calibri&gt;b)&lt;/font&gt;   &lt;font face="宋体"&gt;然后实例化我们的热水器对象，注意这个对象声明为&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterInf&lt;/font&gt;&lt;font face="宋体"&gt;，而不是&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterImplMBean&lt;/font&gt;&lt;font face="宋体"&gt;。&lt;/font&gt;&lt;font face=calibri&gt;JMX&lt;/font&gt;&lt;font face="宋体"&gt;规范并没有规定对象声明，只要这个对象实现了一个以&lt;/font&gt;&lt;font face=calibri&gt;SomethingMBean&lt;/font&gt;&lt;font face="宋体"&gt;命名的接口或父类即可；&lt;/font&gt; &lt;br&gt;&lt;font face=calibri&gt;c)&lt;/font&gt;   &lt;font face="宋体"&gt;接下来通过&lt;/font&gt;&lt;font face=calibri&gt;new ObjectName(String)&lt;/font&gt;&lt;font face="宋体"&gt;构造函数给我们的&lt;/font&gt;&lt;font face=calibri&gt;MBean&lt;/font&gt;&lt;font face="宋体"&gt;一个全局的名字，这个名字一般的格式是：&lt;/font&gt;&lt;font face=calibri&gt;”&lt;/font&gt;&lt;font face="宋体"&gt;域名&lt;/font&gt;&lt;font face=calibri&gt;:&lt;/font&gt;&lt;font face="宋体"&gt;属性&lt;/font&gt;&lt;font face=calibri&gt;1=*,&lt;/font&gt;&lt;font face="宋体"&gt;属性&lt;/font&gt;&lt;font face=calibri&gt;2=*,…”&lt;/font&gt;&lt;font face="宋体"&gt;构成；&lt;/font&gt; &lt;br&gt;&lt;font face=calibri&gt;d)&lt;/font&gt;   &lt;font face="宋体"&gt;第四步，我们调用&lt;/font&gt;&lt;font face=calibri&gt;MBeanServer&lt;/font&gt;&lt;font face="宋体"&gt;的&lt;/font&gt;&lt;font face=calibri&gt;regiesterBean&lt;/font&gt;&lt;font face="宋体"&gt;方法，通过第三步声明的全局名字把我们的&lt;/font&gt;&lt;font face=calibri&gt;MBean&lt;/font&gt;&lt;font face="宋体"&gt;实例注册到&lt;/font&gt;&lt;font face=calibri&gt;MBeanServer&lt;/font&gt;&lt;font face="宋体"&gt;。&lt;/font&gt; &lt;br&gt;&lt;font face="宋体"&gt;这几步都非常简单明了。下面我们在&lt;/font&gt;&lt;font face=calibri&gt;Eclipse&lt;/font&gt;&lt;font face="宋体"&gt;中运行代理层代码，运行时，请加上下面几个&lt;/font&gt;&lt;font face=calibri&gt;JVM&lt;/font&gt;&lt;font face="宋体"&gt;运行时参数：&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;font face=calibri&gt;-Dcom.sun.management.jmxremote &lt;br&gt;&lt;/font&gt;&lt;font face=calibri&gt;-Dcom.sun.management.jmxremote.port=9999 &lt;br&gt;&lt;/font&gt;&lt;font face=calibri&gt;-Dcom.sun.management.jmxremote.ssl=&amp;quot;false&amp;quot; &lt;br&gt;&lt;/font&gt;&lt;font face=calibri&gt;-Dcom.sun.management.jmxremote.authenticate=&amp;quot;false&amp;quot; &lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;font face="宋体"&gt;这四个&lt;/font&gt;&lt;font face=calibri&gt;JVM&lt;/font&gt;&lt;font face="宋体"&gt;运行时参数的意义是，&lt;/font&gt;&lt;font face=calibri&gt;MBeanServer&lt;/font&gt;&lt;font face="宋体"&gt;允许其它管理程序通过&lt;/font&gt;&lt;font face=calibri&gt;RMI&lt;/font&gt;&lt;font face="宋体"&gt;方式访问，&lt;/font&gt;&lt;font face=calibri&gt;RMI&lt;/font&gt;&lt;font face="宋体"&gt;端口是&lt;/font&gt;&lt;font face=calibri&gt;9999&lt;/font&gt;&lt;font face="宋体"&gt;，&lt;/font&gt;&lt;font face=calibri&gt;RMI&lt;/font&gt;&lt;font face="宋体"&gt;不使用&lt;/font&gt;&lt;font face=calibri&gt;SSL&lt;/font&gt;&lt;font face="宋体"&gt;协议，也不需要验证。&lt;/font&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;1.3 &lt;font face="宋体"&gt;管理层代码&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;font face="宋体"&gt;管理层代码编写起来其实也比较简单，但如果您要求界面比较完美，并且您也不想卷入到&lt;/font&gt;&lt;font face=calibri&gt;AWT&lt;/font&gt;&lt;font face="宋体"&gt;加&lt;/font&gt;&lt;font face=calibri&gt;Swing&lt;/font&gt;&lt;font face="宋体"&gt;的面条代码中，您最好直接使用&lt;/font&gt;&lt;font face=calibri&gt;JDK&lt;/font&gt;&lt;font face="宋体"&gt;自带的&lt;/font&gt;&lt;font face=calibri&gt;JConsole.exe&lt;/font&gt;&lt;font face="宋体"&gt;程序，这个程序位于&lt;/font&gt;&lt;font face=calibri&gt;JDK\bin&lt;/font&gt;&lt;font face="宋体"&gt;目录下，可直接运行。下面我们观察管理程序在远程和本地运行情况。&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;font face=calibri&gt;a)&lt;/font&gt;   &lt;font face="宋体"&gt;远程运行&lt;/font&gt;&lt;font face=calibri&gt;JConsole&lt;/font&gt;&lt;font face="宋体"&gt;管理程序&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;font face="宋体"&gt;请双击&lt;/font&gt;&lt;font face=calibri&gt;JConsole.exe&lt;/font&gt;&lt;font face="宋体"&gt;或者通过命令行在本机上启动&lt;/font&gt;&lt;font face=calibri&gt;JConsole.exe&lt;/font&gt;&lt;font face="宋体"&gt;，在&lt;/font&gt;&lt;font face=calibri&gt;JConsole&lt;/font&gt;&lt;font face="宋体"&gt;的连接界面，选择远程连接，然后输入&lt;/font&gt;&lt;font face=calibri&gt;RMI&lt;/font&gt;&lt;font face="宋体"&gt;地址和端口号，本例为&lt;/font&gt;&lt;font face=calibri&gt;localhost:9999&lt;/font&gt;&lt;font face="宋体"&gt;，注&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;意确保我们上面编写的&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterAgent&lt;/font&gt;&lt;font face="宋体"&gt;代理处于运行状态.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;连接成功后，请点击&lt;font face=calibri&gt;MBean&lt;/font&gt;&lt;font face="宋体"&gt;标签，并展开&lt;/font&gt;&lt;font face=calibri&gt;MyHome&lt;/font&gt;&lt;font face="宋体"&gt;节点，我们可以观察到&lt;/font&gt;&lt;font face=calibri&gt;CentralHeaterImplMBean&lt;/font&gt;&lt;font face="宋体"&gt;中暴露给管理程序所有的属性和方法.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;我们在&lt;font face=calibri&gt;CentralHeaterImplMBean&lt;/font&gt;&lt;font face="宋体"&gt;接口中规定，&lt;/font&gt;&lt;font face=calibri&gt;CurrentTemperature&lt;/font&gt;&lt;font face="宋体"&gt;属性是可以更改的，所以上图中&lt;/font&gt;&lt;font face=calibri&gt;CurrentTemperature&lt;/font&gt;&lt;font face="宋体"&gt;的值显示为绿色，表示远程管理者可以调节；但&lt;/font&gt;&lt;font face=calibri&gt;HeaterProvider(&lt;/font&gt;&lt;font face="宋体"&gt;生产厂家&lt;/font&gt;&lt;font face=calibri&gt;)&lt;/font&gt;&lt;font face="宋体"&gt;的属性是不能更改的，所以其值显示为灰色。现在，我们以远程管理用户的身份，把&lt;/font&gt;&lt;font face=calibri&gt;CurrentTemperature&lt;/font&gt;&lt;font face="宋体"&gt;属性的值改为&lt;/font&gt;&lt;font face=calibri&gt;25&lt;/font&gt;&lt;font face="宋体"&gt;，并按回车或者点击刷新按钮，接下来您可以在上面的界面中，调用操作方法&lt;/font&gt;&lt;font face=calibri&gt;printCurrentTemperature()&lt;/font&gt;&lt;font face="宋体"&gt;，您会在弹出的对话框中看到“&lt;/font&gt;&lt;font face=calibri&gt;Current temperature is:25&lt;/font&gt;&lt;font face="宋体"&gt;”的字样，这说明我们的温度更改成功。请注意这是通过远程&lt;/font&gt;&lt;font face=calibri&gt;RMI&lt;/font&gt;&lt;font face="宋体"&gt;完成的。&lt;/font&gt;&lt;/div&gt;&lt;/font&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=5643277193709091688&amp;page=RSS%3a+JMX%e5%ba%94%e7%94%a8&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zx0zx9zx1zx9.spaces.live.com&amp;amp;GT1=zx0zx9zx1zx9"&gt;</description><category>技术</category><comments>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!247.entry#comment</comments><guid isPermaLink="true">http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!247.entry</guid><pubDate>Wed, 23 Jul 2008 10:05:41 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zx0zx9zx1zx9.spaces.live.com/blog/cns!4E50F2B55417FB68!247/comments/feed.rss</wfw:commentRss><wfw:comment>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!247.entry#comment</wfw:comment><dcterms:modified>2008-07-23T10:05:41Z</dcterms:modified></item><item><title>模型驱动架构MDA</title><link>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!246.entry</link><description>&lt;div&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri color="#0000ff" size=3&gt;      &lt;a title=MDA href="http://www.omg.org/mda"&gt;&lt;u&gt;MDA&lt;/u&gt;&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;font size=3&gt;&lt;span style="font-family:宋体"&gt;是由&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=OMG href="http://www.omg.org/"&gt;&lt;u&gt;OMG&lt;/u&gt;&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;（&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;Object Management Group&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，对象管理组织）&lt;/span&gt;&lt;/font&gt;&lt;font size=3&gt;&lt;span style="font-family:宋体"&gt;于&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;2001&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;年提出来的。其核心思想是抽象出与实现技术无关、完整描述业务功能的核心平台无关模型（&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;PIM&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;Platform Independent Model&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;），然后针对不同实现技术制定多个转换规则，通过这些转换规则及辅助工具将&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt; PIM &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;转换成与具体实现技术相关的平台相关模型（&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;PSM&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;Platform Specific Model&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;），最后将经过充实的&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt; PSM &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;转换成代码。通过&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;PIM&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;和&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;PSM&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=MDA href="http://www.omg.org/mda"&gt;&lt;u&gt;MDA&lt;/u&gt;&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;的目的是分离业务建模与底层平台技术，以保护建模的成果不受技术变迁的影响。&lt;br&gt;    &lt;span style="font-family:宋体"&gt;&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=MDA href="http://www.omg.org/mda"&gt;&lt;u&gt;MDA&lt;/u&gt;&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;的核心技术：&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;MOF&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;（&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;Meta Object Facility&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，元对象设施）、&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;CWM&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;（&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;Common Warehouse Metamodel&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;，公共数据仓库元模型）和&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;UML&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;。&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=MDA href="http://www.omg.org/mda"&gt;&lt;u&gt;MDA&lt;/u&gt;&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;的主要工作就是要把基于这些技术建立的&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;PIM&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;转换到不同的中间件平台上，得到对应的&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;PSM&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;。技术平台上给出的是目前主要针对的实现平台：&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;CORBA&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;、&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;XML&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;、&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;JAVA&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;、&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;Web Services&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;和&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face=Calibri&gt;.NET&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:宋体"&gt;。显然，随着技术的发展，这个列表将不断扩充。&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font size=3&gt;&lt;span style="font-family:宋体"&gt;&lt;span style="font-family:宋体"&gt;&lt;br&gt;    &lt;span lang=EN-US&gt;&lt;font face=Calibri color="#0000ff" size=3&gt;&lt;a title=MDA href="http://www.omg.org/mda"&gt;MDA&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;font size=3&gt;&lt;span style="font-family:宋体"&gt;提供了一个中立于各开发商的开放的方法，以应对业务和技术变化带来的挑战。&lt;strong&gt;基于&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=OMG href="http://www.omg.org/"&gt;OMG&lt;/a&gt;&lt;/font&gt;制定的各项标准&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:宋体"&gt;，&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=MDA href="http://www.omg.org/mda"&gt;MDA&lt;/a&gt;&lt;/font&gt;将业务和应用逻辑与底层平台技术分离开来。通过使用&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri&gt;UML&lt;/font&gt;以及其他的&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=OMG href="http://www.omg.org/"&gt;OMG&lt;/a&gt;&lt;/font&gt;建模标准，来表达应用程序或者集成系统的业务功能和行为，得到的平台无关模型可以通过&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=MDA href="http://www.omg.org/mda"&gt;MDA&lt;/a&gt;&lt;/font&gt;实现到各种平台上的，如&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri&gt;Web Services&lt;/font&gt;、&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri&gt;.NET&lt;/font&gt;、&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri&gt;CORBA&lt;/font&gt;、&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri&gt;J2EE&lt;/font&gt;等。这些平台无关模型将应用的业务功能与行为同实现它们的技术特定的代码分离开来。随技术一起的，是为支持跨越不同平台的交互性而带来的无情的繁杂循环，&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=MDA href="http://www.omg.org/mda"&gt;MDA&lt;/a&gt;&lt;/font&gt;将应用的核心从他们的魔爪中保护出来。（在&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri color="#0000ff"&gt;&lt;a title=MDA href="http://www.omg.org/mda"&gt;MDA&lt;/a&gt;&lt;/font&gt;的工作方式下，）不管应用了哪种具体的技术平台，系统的业务部分和技术部分都可以各自演进（而互不影响）&lt;/span&gt;&lt;span&gt;&lt;font face=Calibri&gt;-&lt;/font&gt;业务逻辑随业务需求的变化而改变，如果业务有需要的话，技术部分也可以随时享受到新的技术发展带来的好处。&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=5643277193709091688&amp;page=RSS%3a+%e6%a8%a1%e5%9e%8b%e9%a9%b1%e5%8a%a8%e6%9e%b6%e6%9e%84MDA&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zx0zx9zx1zx9.spaces.live.com&amp;amp;GT1=zx0zx9zx1zx9"&gt;</description><category>技术</category><comments>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!246.entry#comment</comments><guid isPermaLink="true">http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!246.entry</guid><pubDate>Wed, 23 Jul 2008 07:21:16 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zx0zx9zx1zx9.spaces.live.com/blog/cns!4E50F2B55417FB68!246/comments/feed.rss</wfw:commentRss><wfw:comment>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!246.entry#comment</wfw:comment><dcterms:modified>2008-07-23T07:21:16Z</dcterms:modified></item><item><title>模板引擎 Velocity</title><link>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!244.entry</link><description>&lt;div&gt;
&lt;p&gt;      模板引擎的设计思想最早由Webmacro提出，并被应用在一个著名的搜索引擎&lt;a href="http://www.altavista.com/"&gt;&lt;font color="#4563b9"&gt;www.altavista.com&lt;/font&gt;&lt;/a&gt;上。后来，这种思想渐渐被Apache开发小组所采用，并作为一个子项目被提出来，这就是现在的Velocity。
&lt;p&gt;Velocity 是一种通用的、开放源代码的模板解决方案，在 MVC 模型框架中作为视图组件。&lt;br&gt;Velocity 为 JSP 技术提供了一种可行的替代方案，可以强制实施表示逻辑与应用程序业务逻辑的清晰划分。jsp的MVC方案是structs和标签。&lt;br&gt;Velocity 是使用VTL模板语言来实现视图表现层部分，使用VTL的简单脚本语言替代JSP语法。&lt;br&gt;&lt;br&gt;     Velocity 解决了如何在 Servlet 和 网页之间传递数据的问题，当然这种传输数据的机制是在 MVC 模式上进行的，也就是View 和 Modle , Controller 之间相互独立工作，一方的修改不影响其他方变动，他们之间是通过环境变量（Context）来实现的，当然双方网页制作一方和后台程序一方要相互约定好对所传递变量的命名约定，比如上个程序例子中的 site, name 变量，它们在网页上就是 $name ,$site 。这样只要双方约定好了变量名字，那么双方就可以独立工作了。无论页面如何变化，只要变量名不变，那么后台程序就无需改动，前台网页也可以任意由网页制作人员修改。这就是 Velocity 的工作原理。 
&lt;p&gt;　　你会发现简单变量名通常无法满足网页制作显示数据的需要，比如我们经常会循环显示一些数据集，或者是根据一些数据的值来决定如何显示下一步的数据， Velocity 同样提供了循环，判断的简单语法以满足网页制作的需要。Velocity 提供了一个简单的模板语言以供前端网页制作人员使用，这个模板语言足够简单（大部分懂得 javascript 的人就可以很快掌握，其实它比 javascript 要简单的多），当然这种简单是刻意的，因为它不需要它什么都能做， View 层其实不应该包含更多的逻辑，Velocity 的简单模板语法可以满足你所有对页面显示逻辑的需要，这通常已经足够了，jsp 能做很多事情，Sun 在制定 Jsp 1.0 标准的时候，没有及时的限定程序员在 jsp 插入代码逻辑，使得早期的jsp 代码更象是 php 代码，它虽然强大，但是对显示层逻辑来说，并不必要，而且会使 MVC 三层的逻辑结构发生混淆。
&lt;p&gt;     Velocity 的问题是开发人员或者页面制作人员必须熟悉VTL语法来维护vm文件，这相当于开发人员或页面人员需要再掌握一套脚本语言，这或许是开发中的一个障碍。毕竟熟悉jsp java语言的人会更多更普遍，多掌握一门语法简单的语言也许会成为快速web开发的一个障碍。
&lt;p&gt;hellosite.vm&lt;br&gt;Hello $name! Welcome to $site world!&lt;pre&gt;HelloWorld.java&lt;br&gt;import java.io.StringWriter;&lt;br&gt;import org.apache.velocity.app.VelocityEngine;&lt;br&gt;import org.apache.velocity.Template;&lt;br&gt;import org.apache.velocity.VelocityContext;&lt;/pre&gt;&lt;pre&gt;&lt;p&gt;public class HelloWorld&lt;br&gt;{&lt;br&gt;public static void main( String[] args )&lt;br&gt;throws Exception&lt;br&gt;{&lt;br&gt;&lt;p&gt; VelocityEngine ve = new VelocityEngine();&lt;br&gt; ve.init();&lt;p&gt; Template t = ve.getTemplate( &amp;quot;hellosite.vm&amp;quot; );&lt;p&gt; VelocityContext context = new VelocityContext();&lt;p&gt; context.put(&amp;quot;name&amp;quot;, &amp;quot;Eiffel Qiu&amp;quot;);&lt;p&gt; context.put(&amp;quot;site&amp;quot;, &lt;a href="http://www.eiffelqiu.com/"&gt;&lt;font color="#4563b9"&gt;http://www.eiffelqiu.com&lt;/font&gt;&lt;/a&gt;);&lt;p&gt; StringWriter writer = new StringWriter();&lt;p&gt; t.merge( context, writer );&lt;p&gt; System.out.println( writer.toString() ); &lt;br&gt; }&lt;br&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=5643277193709091688&amp;page=RSS%3a+%e6%a8%a1%e6%9d%bf%e5%bc%95%e6%93%8e+Velocity&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zx0zx9zx1zx9.spaces.live.com&amp;amp;GT1=zx0zx9zx1zx9"&gt;</description><category>技术</category><comments>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!244.entry#comment</comments><guid isPermaLink="true">http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!244.entry</guid><pubDate>Wed, 23 Jul 2008 04:49:10 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zx0zx9zx1zx9.spaces.live.com/blog/cns!4E50F2B55417FB68!244/comments/feed.rss</wfw:commentRss><wfw:comment>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!244.entry#comment</wfw:comment><dcterms:modified>2008-07-23T04:49:10Z</dcterms:modified></item><item><title>Lucene 索引及搜索简介</title><link>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!238.entry</link><description>&lt;div&gt;&lt;a&gt;&lt;span&gt;Lucene 简介&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;Lucene 是一个基于 Java 的全文信息检索工具包，它不是一个完整的搜索应用程序，而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。 
&lt;p&gt;目前已经有很多应用程序的搜索功能是基于 Lucene 的，比如 Eclipse 的帮助系统的搜索功能。Lucene 能够为文本类型的数据建立索引，所以你只要能把你要索引的数据格式转化的文本的，Lucene 就能对你的文档进行索引和搜索。比如你要对一些 HTML 文档，PDF 文档进行索引的话你就首先需要把 HTML 文档和 PDF 文档转化成文本格式的，然后将转化后的内容交给 Lucene 进行索引，然后把创建好的索引文件保存到磁盘或者内存中，最后根据用户输入的查询条件在索引文件上进行查询。不指定要索引的文档的格式也使 Lucene 能够几乎适用于所有的搜索应用程序。 
&lt;p&gt;&lt;a href="http://blufiles.storage.live.com/y1pHX3PcO8mE-TPH-o_wbDZKR7xQIFiZ3NjAQjpbMVo_tjmJfjXG_cJdObIm7KAuhlZ" target="_blank"&gt;&lt;img style="width:659px;height:496px" height=244 alt=fig001.jpg src="http://blufiles.storage.live.com/y1pHX3PcO8mE-TPH-o_wbDZKR7xQIFiZ3NjAQjpbMVo_tjmJfjXG_cJdObIm7KAuhlZ" width=300&gt;&lt;/a&gt; 
&lt;p&gt;&lt;a&gt;&lt;span&gt;索引和搜索&lt;/span&gt;&lt;/a&gt; 
&lt;p&gt;     索引是现代搜索引擎的核心，建立索引的过程就是把源数据处理成非常方便查询的索引文件的过程。为什么索引这么重要呢，试想你现在要在大量的文档中搜索含有某个关键词的文档，那么如果不建立索引的话你就需要把这些文档顺序的读入内存，然后检查这个文章中是不是含有要查找的关键词，这样的话就会耗费非常多的时间。Lucene 采用的是一种称为反向索引的机制。反向索引就是说我们维护了一个词/短语表，对于这个表中的每个词/短语，都有一个链表描述了有哪些文档包含了这个词/短语。这样在用户输入查询条件的时候，就能非常快的得到搜索结果。对文档建立好索引后，就可以在这些索引上面进行搜索了。搜索引擎首先会对搜索的关键词进行解析，然后再在建立好的索引上面进行查找，最终返回和用户输入的关键词相关联的文档。 
&lt;p&gt;&lt;a&gt;&lt;span&gt;一个简单的搜索应用程序&lt;/span&gt;&lt;/a&gt; 
&lt;p&gt;假设我们的电脑的目录中含有很多文本文档，我们需要查找哪些文档含有某个关键词。为了实现这种功能，我们首先利用 Lucene 对这个目录中的文档建立索引，然后在建立好的索引中搜索我们所要查找的文档。通过这个例子读者会对如何利用 Lucene 构建自己的搜索应用程序有个比较清楚的认识。 
&lt;p&gt;&lt;a&gt;&lt;span&gt;建立索引&lt;/span&gt;&lt;/a&gt;&lt;br&gt;为了对文档进行索引，Lucene 提供了五个基础的类，他们分别是 Document, Field, IndexWriter, Analyzer, Directory。下面我们分别介绍一下这五个类的用途：&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;b&gt;&lt;br&gt;Document&lt;br&gt;&lt;/b&gt;Document 是用来描述文档的，这里的文档可以指一个 HTML 页面，一封电子邮件，或者是一个文本文件。一个 Document 对象由多个 Field 对象组成的。可以把一个 Document 对象想象成数据库中的一个记录，而每个 Field 对象就是记录的一个字段。 
&lt;p&gt;&lt;b&gt;Field&lt;br&gt;&lt;/b&gt;Field 对象是用来描述一个文档的某个属性的，比如一封电子邮件的标题和内容可以用两个 Field 对象分别描述。 
&lt;p&gt;&lt;b&gt;Analyzer&lt;br&gt;&lt;/b&gt;在一个文档被索引之前，首先需要对文档内容进行分词处理，这部分工作就是由 Analyzer 来做的。Analyzer 类是一个抽象类，它有多个实现。针对不同的语言和应用需要选择适合的 Analyzer。Analyzer 把分词后的内容交给 IndexWriter 来建立索引。 
&lt;p&gt;&lt;b&gt;IndexWriter&lt;br&gt;&lt;/b&gt;IndexWriter 是 Lucene 用来创建索引的一个核心的类，他的作用是把一个个的 Document 对象加到索引中来。 
&lt;p&gt;&lt;b&gt;Directory&lt;br&gt;&lt;/b&gt;这个类代表了 Lucene 的索引的存储的位置，这是一个抽象类，它目前有两个实现，第一个是 FSDirectory，它表示一个存储在文件系统中的索引的位置。第二个是 RAMDirectory，它表示一个存储在内存当中的索引的位置。&lt;br&gt;熟悉了建立索引所需要的这些类后，我们就开始对某个目录下面的文本文件建立索引了，清单1给出了对某个目录下的文本文件建立索引的源代码。 
&lt;p&gt;&lt;a&gt;&lt;b&gt;清单 1. 对文本文件建立索引&lt;/b&gt;&lt;/a&gt;&lt;br&gt;package TestLucene;&lt;br&gt;import java.io.File;&lt;br&gt;import java.io.FileReader;&lt;br&gt;import java.io.Reader;&lt;br&gt;import java.util.Date;&lt;br&gt;import org.apache.lucene.analysis.Analyzer;&lt;br&gt;import org.apache.lucene.analysis.standard.StandardAnalyzer;&lt;br&gt;import org.apache.lucene.document.Document;&lt;br&gt;import org.apache.lucene.document.Field;&lt;br&gt;import org.apache.lucene.index.IndexWriter;&lt;br&gt;/**&lt;br&gt;* This class demonstrate the process of creating index with Lucene &lt;br&gt;* for text files&lt;br&gt;*/&lt;br&gt;public class TxtFileIndexer {&lt;br&gt;public static void main(String[] args) throws Exception{&lt;br&gt;//indexDir is the directory that hosts Lucene's index files&lt;br&gt;        File   indexDir = new File(&amp;quot;D:\\luceneIndex&amp;quot;);&lt;br&gt;        //dataDir is the directory that hosts the text files that to be indexed&lt;br&gt;        File   dataDir  = new File(&amp;quot;D:\\luceneData&amp;quot;);&lt;br&gt;        Analyzer luceneAnalyzer = new StandardAnalyzer();&lt;br&gt;        File[] dataFiles  = dataDir.listFiles();&lt;br&gt;        IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true);&lt;br&gt;        long startTime = new Date().getTime();&lt;br&gt;        for(int i = 0; i &amp;lt; dataFiles.length; i++){&lt;br&gt;        if(dataFiles[i].isFile() &amp;amp;&amp;amp; dataFiles[i].getName().endsWith(&amp;quot;.txt&amp;quot;)){&lt;br&gt;        System.out.println(&amp;quot;Indexing file &amp;quot; + dataFiles[i].getCanonicalPath());&lt;br&gt;        Document document = new Document();&lt;br&gt;        Reader txtReader = new FileReader(dataFiles[i]);&lt;br&gt;        document.add(Field.Text(&amp;quot;path&amp;quot;,dataFiles[i].getCanonicalPath()));&lt;br&gt;        document.add(Field.Text(&amp;quot;contents&amp;quot;,txtReader));&lt;br&gt;        indexWriter.addDocument(document);&lt;br&gt;        }&lt;br&gt;        }&lt;br&gt;        indexWriter.optimize();&lt;br&gt;        indexWriter.close();&lt;br&gt;        long endTime = new Date().getTime();&lt;br&gt;        &lt;br&gt;        System.out.println(&amp;quot;It takes &amp;quot; + (endTime - startTime) &lt;br&gt;                           + &amp;quot; milliseconds to create index for the files in directory &amp;quot;&lt;br&gt;                   + dataDir.getPath());        &lt;br&gt;}&lt;br&gt;}&lt;br&gt;  在清单1中，我们注意到类 IndexWriter 的构造函数需要三个参数，第一个参数指定了所创建的索引要存放的位置，他可以是一个 File 对象，也可以是一个 FSDirectory 对象或者 RAMDirectory 对象。第二个参数指定了 Analyzer 类的一个实现，也就是指定这个索引是用哪个分词器对文挡内容进行分词。第三个参数是一个布尔型的变量，如果为 true 的话就代表创建一个新的索引，为 false 的话就代表在原来索引的基础上进行操作。接着程序遍历了目录下面的所有文本文档，并为每一个文本文档创建了一个 Document 对象。然后把文本文档的两个属性：路径和内容加入到了两个 Field 对象中，接着在把这两个 Field 对象加入到 Document 对象中，最后把这个文档用 IndexWriter 类的 add 方法加入到索引中去。这样我们便完成了索引的创建。接下来我们进入在建立好的索引上进行搜索的部分。 
&lt;p&gt;&lt;a&gt;&lt;span&gt;从索引中删除文档&lt;/span&gt;&lt;/a&gt;&lt;br&gt;类IndexReader负责从一个已经存在的索引中删除文档，如清单2所示。 
&lt;p&gt;&lt;a&gt;&lt;b&gt;清单2：从索引中删除文档&lt;/b&gt;&lt;/a&gt;&lt;br&gt;
&lt;table cellspacing=0 cellpadding=0 width="100%" border=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;File   indexDir = new File(&amp;quot;C:\\luceneIndex&amp;quot;);
IndexReader ir = IndexReader.open(indexDir);
ir.delete(1);
ir.delete(new Term(&amp;quot;path&amp;quot;,&amp;quot;C:\\file_to_index\lucene.txt&amp;quot;));
ir.close();
&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;在清单2中，第二行用静态方法 IndexReader.open(indexDir) 初始化了类 IndexReader 的一个实例，这个方法的参数指定了索引的存储路径。类 IndexReader 提供了两种方法去删除一个文档，如程序中的第三行和第四行所示。第三行利用文档的编号来删除文档。每个文档都有一个系统自动生成的编号。第四行删除了路径为&amp;quot;C:\\file_to_index\lucene.txt&amp;quot;的文档。你可以通过指定文件路径来方便的删除一个文档。值得注意的是虽然利用上述代码删除文档使得该文档不能被检索到，但是并没有物理上删除该文档。Lucene 只是通过一个后缀名为 .delete 的文件来标记哪些文档已经被删除。既然没有物理上删除，我们可以方便的把这些标记为删除的文档恢复过来，如清单 3 所示，首先打开一个索引，然后调用方法 ir.undeleteAll() 来完成恢复工作。 
&lt;p&gt;&lt;a&gt;&lt;b&gt;清单3：恢复已删除文档&lt;/b&gt;&lt;/a&gt;&lt;br&gt;
&lt;table cellspacing=0 cellpadding=0 width="100%" border=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;File   indexDir = new File(&amp;quot;C:\\luceneIndex&amp;quot;);
IndexReader ir = IndexReader.open(indexDir);
ir.undeleteAll();
ir.close();
&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;你现在也许想知道如何物理上删除索引中的文档，方法也非常简单。清单 4 演示了这个过程。 
&lt;p&gt;&lt;a&gt;&lt;b&gt;清单4：如何物理上删除文档&lt;/b&gt;&lt;/a&gt;&lt;br&gt;
&lt;table cellspacing=0 cellpadding=0 width="100%" border=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;File   indexDir = new File(&amp;quot;C:\\luceneIndex&amp;quot;);
Analyzer luceneAnalyzer = new StandardAnalyzer();
IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,false);
indexWriter.optimize();
indexWriter.close();&lt;/pre&gt;&lt;/tbody&gt;&lt;/table&gt;在清单 4 中，第三行创建了类 IndexWriter 的一个实例，并且打开了一个已经存在的索引。第 4 行对索引进行清理，清理过程中将把所有标记为删除的文档物理删除。Lucene 没有直接提供方法对文档进行更新，如果你需要更新一个文档，那么你首先需要把这个文档从索引中删除，然后把新版本的文档加入到索引中去。  
&lt;p&gt;&lt;a&gt;&lt;span&gt;搜索文档&lt;/span&gt;&lt;/a&gt;&lt;br&gt;利用Lucene进行搜索就像建立索引一样也是非常方便的。在上面一部分中，我们已经为一个目录下的文本文档建立好了索引，现在我们就要在这个索引上进行搜索以找到包含某个关键词或短语的文档。Lucene提供了几个基础的类来完成这个过程，它们分别是呢IndexSearcher, Term, Query, TermQuery, Hits. 下面我们分别介绍这几个类的功能。 
&lt;p&gt;&lt;b&gt;Query&lt;br&gt;&lt;/b&gt;这是一个抽象类，他有多个实现，比如TermQuery, BooleanQuery, PrefixQuery. 这个类的目的是把用户输入的查询字符串封装成Lucene能够识别的Query。 
&lt;p&gt;&lt;b&gt;Term&lt;br&gt;&lt;/b&gt;Term是搜索的基本单位，一个Term对象有两个String类型的域组成。生成一个Term对象可以有如下一条语句来完成：Term term = new Term(“fieldName”,”queryWord”); 其中第一个参数代表了要在文档的哪一个Field上进行查找，第二个参数代表了要查询的关键词。 
&lt;p&gt;&lt;b&gt;TermQuery&lt;br&gt;&lt;/b&gt;TermQuery是抽象类Query的一个子类，它同时也是Lucene支持的最为基本的一个查询类。生成一个TermQuery对象由如下语句完成： TermQuery termQuery = new TermQuery(new Term(“fieldName”,”queryWord”)); 它的构造函数只接受一个参数，那就是一个Term对象。 
&lt;p&gt;&lt;b&gt;IndexSearcher&lt;br&gt;&lt;/b&gt;IndexSearcher是用来在建立好的索引上进行搜索的。它只能以只读的方式打开一个索引，所以可以有多个IndexSearcher的实例在一个索引上进行操作。 
&lt;p&gt;&lt;b&gt;Hits&lt;br&gt;&lt;/b&gt;Hits是用来保存搜索的结果的。&lt;pre&gt;&lt;a&gt;&lt;b&gt;清单2 ：在建立好的索引上进行搜索&lt;/b&gt;&lt;/a&gt;&lt;br&gt;package TestLucene;
import java.io.File;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.FSDirectory;
/**
 * This class is used to demonstrate the 
 * process of searching on an existing 
 * Lucene index
 *
 */
public class TxtFileSearcher {
	public static void main(String[] args) throws Exception{
	    String queryStr = &amp;quot;lucene&amp;quot;;
	    //This is the directory that hosts the Lucene index
        File indexDir = new File(&amp;quot;D:\\luceneIndex&amp;quot;);
        FSDirectory directory = FSDirectory.getDirectory(indexDir,false);
        IndexSearcher searcher = new IndexSearcher(directory);
        if(!indexDir.exists()){
        	System.out.println(&amp;quot;The Lucene index is not exist&amp;quot;);
        	return;
        }
        Term term = new Term(&amp;quot;contents&amp;quot;,queryStr.toLowerCase());
        TermQuery luceneQuery = new TermQuery(term);
        Hits hits = searcher.search(luceneQuery);
        for(int i = 0; i &amp;lt; hits.length(); i++){
        	Document document = hits.doc(i);
        	System.out.println(&amp;quot;File: &amp;quot; + document.get(&amp;quot;path&amp;quot;));
        }
	}
}
&lt;/pre&gt;&lt;pre&gt;在清单2中，类IndexSearcher的构造函数接受一个类型为Directory的对象，Directory是一个抽象类，它目前有两个子类：&lt;br&gt;FSDirctory和RAMDirectory. 我们的程序中传入了一个FSDirctory对象作为其参数，代表了一个存储在磁盘上的索引的位置。构造函数执行完成后，&lt;br&gt;代表了这个 IndexSearcher以只读的方式打开了一个索引。然后我们程序构造了一个Term对象，通过这个Term对象，我们指定了要在文档的内容中搜索&lt;br&gt;包含关键词”lucene”的文档。接着利用这个Term对象构造出TermQuery对象并把这个TermQuery对象传入到 IndexSearcher的search方法中进行查询&lt;br&gt;，返回的结果保存在Hits对象中。最后我们用了一个循环语句把搜索到的文档的路径都打印了出来。好了，我们的搜索应用程序已经开发完毕。&lt;/pre&gt;&lt;pre&gt;&lt;p&gt;&lt;a&gt;&lt;span&gt;提高索引性能&lt;/span&gt;&lt;/a&gt;&lt;p&gt;利用 Lucene，在创建索引的工程中你可以充分利用机器的硬件资源来提高索引的效率。当你需要索引大量的文件时，你会注意到索引过程的瓶颈是在往&lt;p&gt;磁盘&lt;p&gt;上写索引文件的过程中。为了解决这个问题, Lucene 在内存中持有一块缓冲区。但我们如何控制 Lucene 的缓冲区呢？幸运的是，Lucene 的类 &lt;p&gt;IndexWriter 提供了三个参数用来调整缓冲区的大小以及往磁盘上写索引文件的频率。&lt;p&gt;1．合并因子（mergeFactor）&lt;p&gt;这个参数决定了在 Lucene 的一个索引块中可以存放多少文档以及把磁盘上的索引块合并成一个大的索引块的频率。比如，如果合并因子的值是 10，&lt;p&gt;那么当内存中的文档数达到 10 的时候所有的文档都必须写到磁盘上的一个新的索引块中。并且，如果磁盘上的索引块的隔数达到 10 的话，这 10 个&lt;p&gt;索引块会被合并成一个新的索引块。这个参数的默认值是 10，如果需要索引的文档数非常多的话这个值将是非常不合适的。对批处理的索引来讲，为这个&lt;p&gt;参数赋一个比较大的值会得到比较好的索引效果。&lt;p&gt;2．最小合并文档数&lt;p&gt;这个参数也会影响索引的性能。它决定了内存中的文档数至少达到多少才能将它们写回磁盘。这个参数的默认值是10，如果你有足够的内存，那么将这个值&lt;p&gt;尽量设的比较大一些将会显著的提高索引性能。&lt;p&gt;3．最大合并文档数&lt;p&gt;这个参数决定了一个索引块中的最大的文档数。它的默认值是 Integer.MAX_VALUE，将这个参数设置为比较大的值可以提高索引效率和检索速度，由于&lt;p&gt;该参数的默认值是整型的最大值，所以我们一般不需要改动这个参数。&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;int mergeFactor = 10;
int minMergeDocs = 10;
int maxMergeDocs = Integer.MAX_VALUE;
IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true);        
indexWriter.mergeFactor = mergeFactor;
indexWriter.minMergeDocs = minMergeDocs;
indexWriter.maxMergeDocs = maxMergeDocs;&lt;/pre&gt;&lt;pre&gt;&lt;a&gt;&lt;b&gt;表1：测试结果&lt;/b&gt;&lt;/a&gt;&lt;br&gt;&lt;img height=199 alt="表1：测试结果" src="http://www.ibm.com/developerworks/cn/java/wa-lucene/images/table1.gif" width=502 border=0&gt;&lt;/pre&gt;&lt;pre&gt;通过表 1，你可以清楚地看到三个参数对索引时间的影响。在实践中，你会经常的改变合并因子和最小合并文档数的值来提高索引性能。只要你有足够大&lt;/pre&gt;&lt;pre&gt;的内存，你可以为合并因子和最小合并文档数这两个参数赋尽量大的值以提高索引效率，另外我们一般无需更改最大合并文档数这个参数的值，因为系统&lt;/pre&gt;&lt;pre&gt;已经默认将它设置成了最大。&lt;/pre&gt;&lt;pre&gt;&lt;a href="http://blufiles.storage.live.com/y1pStrYuwwgzdmMhI63wlnNkl1BZ83KPd4TospMsbLPhjI9FdwXujfWQ95UPqcBFa83" target="_blank"&gt;&lt;/a&gt; &lt;/pre&gt;&lt;pre&gt;&lt;p&gt;&lt;a&gt;&lt;span&gt;&lt;font color="#4563b9"&gt;Lucene 索引机制&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;p&gt;在分析 Lucene 的索引文件结构之前，我们先要理解反向索引（Inverted 
index）这个概念，反向索引是一种以索引项为中心来组织文档的方式，每个索引项指向一个文档序列，这个序列中的文档都包含该索引项。相反，在正向索引中，文档占据了中心的位置，每个文档指向了一个它所包含的索引项的序列。你可以利用反向索引轻松的找到那些文档包含了特定的索引项。Lucene正是使用了反向索引作为其基本的索引结构。 &lt;p&gt;&lt;font color="#0070c0"&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#0070c0"&gt;文本格式解析&lt;/font&gt;&lt;div&gt;lucene只能对纯文本格式进行索引，如果是其他格式的文档必须转化为文本格式。&lt;/div&gt;&lt;div&gt;html格式使用htmlparse包来解析；&lt;/div&gt;&lt;div&gt;pdf格式使用pdfbox包来解析；&lt;/div&gt;&lt;div&gt;word,excel,ppt使用poi包来解析；&lt;/div&gt;&lt;p&gt;
&lt;/pre&gt;&lt;pre&gt;&lt;a href="http://blufiles.storage.live.com/y1pStrYuwwgzdmMhI63wlnNkl1BZ83KPd4TospMsbLPhjI9FdwXujfWQ95UPqcBFa83" target="_blank"&gt;&lt;img style="width:536px;height:447px" height=190 alt=figure1.gif src="http://blufiles.storage.live.com/y1pStrYuwwgzdmMhI63wlnNkl1BZ83KPd4TospMsbLPhjI9FdwXujfWQ95UPqcBFa83" width=225&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=5643277193709091688&amp;page=RSS%3a+Lucene+%e7%b4%a2%e5%bc%95%e5%8f%8a%e6%90%9c%e7%b4%a2%e7%ae%80%e4%bb%8b&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=zx0zx9zx1zx9.spaces.live.com&amp;amp;GT1=zx0zx9zx1zx9"&gt;</description><category>技术</category><comments>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!238.entry#comment</comments><guid isPermaLink="true">http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!238.entry</guid><pubDate>Thu, 17 Jul 2008 07:35:38 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://zx0zx9zx1zx9.spaces.live.com/blog/cns!4E50F2B55417FB68!238/comments/feed.rss</wfw:commentRss><wfw:comment>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!238.entry#comment</wfw:comment><dcterms:modified>2008-07-18T03:13:53Z</dcterms:modified></item><item><title>人的一生,到底在追求什么</title><link>http://zx0zx9zx1zx9.spaces.live.com/Blog/cns!4E50F2B55417FB68!237.entry</link><description>&lt;div&gt;&lt;br&gt;     英国某小镇。这儿，有一个青年人，整日以沿街为小镇的人说唱为生；这儿，有一个华人妇女，远离家人，在这儿打工。 他们总是在同一个小餐馆用餐，于是他们屡屡相遇。 时间长了，彼此已十分的熟悉。有一日，我们的女同胞，关切地对那个小伙子说：“不要沿街卖唱了，去做一个正当的职业吧。我介绍你到中国去教书，在那儿，你完全可以拿到比你现在高得多的薪水。” 小伙子听后，先是一愣，然后反问道：“难道我现在从事的不是正当的职业吗？我喜欢这个职业，它给我，也给其他人带来欢乐。有什么不好？我何必要远渡重洋，抛弃亲人，抛弃家园，去做我并不喜欢的工作？” &lt;/div&gt;
&lt;div&gt;　　邻桌的英国人，无论老人孩子，也都为之愕然。他们不明白，仅仅为了多挣几张钞票，抛弃家人，远离幸福，有什么可以值得羡慕的。在他们的眼中，家人团聚，平平安安，才是最大的幸福。它与财富的多少，地位的贵贱无关。 于是，小镇上的人，开始可怜我们的女同胞了。 &lt;/div&gt;
&lt;div&gt;　　中国山东，有这样一对夫妇。 刚刚结婚时，妻子在济宁，丈夫在枣庄；过了若干年，妻子调到了枣庄，丈夫却一纸调令到了菏泽。若干年后，妻子又费尽周折，调到了菏泽，但不久，丈夫又被提拔到了省城济南。妻子又托关系找熟人，好不容易调到了济南。可是不到一年，丈夫又被国家电业总公司调到重庆。于是，她所有的朋友，就给她开玩笑——你们俩呀，天生就是牛郎织女的命。要我们说呀，你也别追了，干脆辞职，跟着你们家老张算了。 但是，她以及公婆、父母，都一致反对。“干了这么多年，马上就退休了，再说，你的单位效益这么好，辞职多可惜。要丢掉多少钱呀！再干几年吧，也给孩子多挣一些。” &lt;/div&gt;
&lt;div&gt;　　其实，他们家的经济条件已经非常优越。早已是中层阶级，但是他们仍然惦念着那一点退休金。于是，夫妻两个至今依然是牛郎织女。 &lt;/div&gt;
&lt;div&gt;　　我们，是一个尚义轻利的民族。中国人一直是为了某种自己未必真正明白的主义而活着。 &lt;/div&gt;
&lt;div&gt;　　于是，中国人，不能在没有目标的生活中活着。而这个目标，可以是工作，可以是理想，可以是金钱，可以是孩子，可以是老人……但是，唯一不可能是的，就是自己。 &lt;/div&gt;
&lt;div&gt;　　中国人，可以很委屈的活着。可以是工作上的极不顺心，可以是婚姻上的勉强维持，可以是人际关系上的强作笑颜，可以是所有欲望的极端压制，可以是为了一个所谓的户口……哪怕牺牲自己一生的幸福，也在所不惜。 &lt;/div&gt;
&lt;div&gt;　　中国人，可以过异常艰难的日子，但并不能安贫乐道，他所遭受的一切不幸，必定有一个近乎玩&lt;br&gt;笑的借口；中国人，可以把高官厚禄当作成功，中国人可以把身家百万当作理想，中国人可以抛却天伦之乐四海飘荡，但是，中