<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>莫生气--拒绝空谈，开始行动</title>
    <description></description>
    <link>http://msq.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>Maven 配置之 Maven 坐标 </title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/250393" style="color:red;">http://msq.javaeye.com/blog/250393</a>&nbsp;
          发表时间: 2008年10月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Maven 坐标 <br /><br />Maven 坐标是一组可以惟一标识工件的三元组值。坐标包含了下列三条信息：<br /><br />组 ID：代表制造该工件的实体或组织。例如，com.ibm.devworks 就是一个组 ID。<br /><br />工件 ID：实际的工件的名称。例如，主体类名为 OpsImp 的项目也许会用 OpsImp 作为其工件 ID。<br /><br />版本：该工件的版本号。支持的格式为 mmm.nnn.bbb-qqqqqqq-dd ，其中， mmm 是主版本号， nnn 是次版本号， bbb 代表其 bug 修复水平。 qqqqq （限定词）或 dd （构建号）也能添加到版本号中，这两项是可选项。 <br /><br /><pre name="code" class="java">&lt;dependencies>
   &lt;dependency>
      &lt;groupId>com.ibm.devworks&lt;/groupId>
      &lt;artifactId>OpsImp&lt;/artifactId>
      &lt;version>1.0-SNAPSHOT&lt;/version>
   &lt;/dependency>
&lt;/dependencies>
</pre><br />特别限定词 SNAPSHOT 告诉 Maven 2：该项目或模块还处于开发状态中，它应该获取最新版的可用工件。
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/250393#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 08 Oct 2008 16:47:25 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/250393</link>
        <guid>http://msq.javaeye.com/blog/250393</guid>
      </item>
          <item>
        <title>oracle中判断是否存在记录</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/247340" style="color:red;">http://msq.javaeye.com/blog/247340</a>&nbsp;
          发表时间: 2008年09月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          很多人喜欢用这样的方法来判断是否存在记录：<br />select count(*) into t_count from t where condition;<br />if t_count> 0 then ....<br /><br />这种方法的问题在于：我们需要的仅仅是是否存在，而不是得到总记录数。查询记录总数付出了不必要的性能代价。<br /><br />两种情况：<br />1. 如果判断是否存在记录后， 要查询记录中的某些列的信息，或者是决定要对表进行insert/update操作，典型的操作为：<br />a.<br /><br />select count(*) into t_count from t where condition;<br /><br />if t_count> 0 then <br /><br />&nbsp;&nbsp; select cols into t_cols from t where condition;<br /><br />else<br /><br />&nbsp;&nbsp; otherstatement;<br /><br />end;<br /><br />b.<br /><br />select count(*) into t_count from t where condition;<br /><br />if t_count> 0 then <br /><br />&nbsp; update ...;<br /><br />else<br /><br />&nbsp; insert ...;<br /><br />end;<br /><br />这两种操作，都可以采用直接操作，然后进行例外处理的方式，根本就不进行这个存在性判断！改写后的a.<br /><br />begin<br /><br />&nbsp; select cols into t_cols from t where condition;<br /><br />exception <br /><br />&nbsp; when no_data_found then begin <br /><br />&nbsp;&nbsp;&nbsp; statement-block2;<br /><br />&nbsp; end;<br /><br />&nbsp; when others then begin<br /><br />&nbsp;&nbsp;&nbsp; raise error...<br /><br />&nbsp; end;<br /><br />end;<br /><br />改写后的b.<br /><br />update t set ... where condition;<br /><br />IF SQL%NOTFOUND THEN<br /><br />&nbsp; insert into t ...<br /><br />END IF;<br /><br />或者：<br /><br />begin<br /><br />&nbsp; insert into t ...<br /><br />exception <br /><br />&nbsp; when DUP_VAL_ON_INDEX then begin <br /><br />&nbsp;&nbsp;&nbsp; update t set ...<br /><br />&nbsp; end;<br /><br />end;<br /><br />这两种方法使用哪一种，取决于你认为哪种情况出现的可能更高。2. 如果判断是否存在记录来决定是否进行其它操作， 如下例<br /><br />select count(*) into t_count from t where condition;<br /><br />if t_count> 0 then ....<br /><br />则可以改成这样的语句：<br /><br />select count(*) into t_count from dual where exists(select 1 from t where condition);<br /><br />if t_count> 0 then ....<br /><br />使用改写后的语句，多数情形下应该会有比原来的语句更好的性能。(当然， 如果你要查询的表本身是一个单行或只有几行记录的表， 直接查询应该会更好)
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/247340#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 27 Sep 2008 09:24:25 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/247340</link>
        <guid>http://msq.javaeye.com/blog/247340</guid>
      </item>
          <item>
        <title>oracle中substr函数的用法</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/247338" style="color:red;">http://msq.javaeye.com/blog/247338</a>&nbsp;
          发表时间: 2008年09月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          In oracle/PLSQL, the substr functions allows you to extract a substring from a string.<br /><br />The syntax for the substr function is:<br /><br />substr( string, start_position, [ length ] )<br /><br /><br />说明：<br />string is the source string.<br />start_position is the position for extraction. The first position in the string is always 1.<br />length is optional. It is the number of characters to extract. If this parameter is omitted, substr will return the entire string.<br /><br />For example:<br />&nbsp;&nbsp;&nbsp;&nbsp; substr('This is a test', 6, 2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; would return 'is'<br />&nbsp;&nbsp;&nbsp;&nbsp; substr('This is a test', 6)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; would return 'is a test'<br />&nbsp;&nbsp;&nbsp;&nbsp; substr('TechOnTheNet', 1, 4)&nbsp;&nbsp;&nbsp;&nbsp; would return 'Tech'<br />&nbsp;&nbsp;&nbsp;&nbsp; substr('TechOnTheNet', -3, 3)&nbsp;&nbsp;&nbsp; would return 'Net'<br />&nbsp;&nbsp;&nbsp;&nbsp; substr('TechOnTheNet', -6, 3)&nbsp;&nbsp;&nbsp;&nbsp; would return 'The'<br />&nbsp;&nbsp;&nbsp;&nbsp; substr('TechOnTheNet', -8, 2)&nbsp;&nbsp;&nbsp;&nbsp; would return 'On'
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/247338#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 27 Sep 2008 09:23:45 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/247338</link>
        <guid>http://msq.javaeye.com/blog/247338</guid>
      </item>
          <item>
        <title>解决form表单中只有一个文本框时回车提交的问题.</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/171241" style="color:red;">http://msq.javaeye.com/blog/171241</a>&nbsp;
          发表时间: 2008年03月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在form表单中如果只有一个text文本框时,在上面敲回车时,就会自动提交.要解决这个问题可以<br />再增加一个text文本框,并将其样式设置为隐藏,即可.
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/171241#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 14 Mar 2008 10:14:22 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/171241</link>
        <guid>http://msq.javaeye.com/blog/171241</guid>
      </item>
          <item>
        <title>转：C3P0连接池详细配置</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/154690" style="color:red;">http://msq.javaeye.com/blog/154690</a>&nbsp;
          发表时间: 2008年01月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          本文原文为：http://jacreater.spaces.live.com/blog/cns!BE44984C5949B55B!120.entry<br /><br />&lt;c3p0-config><br />&nbsp; &lt;default-config><br /> &lt;!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --><br /> &lt;property name="acquireIncrement">3&lt;/property><br /> <br /> &lt;!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --><br /> &lt;property name="acquireRetryAttempts">30&lt;/property><br /> <br /> &lt;!--两次连接中间隔时间，单位毫秒。Default: 1000 --><br /> &lt;property name="acquireRetryDelay">1000&lt;/property><br /> <br /> &lt;!--连接关闭时默认将所有未提交的操作回滚。Default: false --><br /> &lt;property name="autoCommitOnClose">false&lt;/property><br /> <br /> &lt;!--c3p0将建一张名为Test的空表，并使用其自带的查询语句进行测试。如果定义了这个参数那么<br />&nbsp; 属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作，它将只供c3p0测试<br />&nbsp; 使用。Default: null--><br /> &lt;property name="automaticTestTable">Test&lt;/property><br /> <br /> &lt;!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效<br />&nbsp; 保留，并在下次调用getConnection()的时候继续尝试获取连接。如果设为true，那么在尝试<br />&nbsp; 获取连接失败后该数据源将申明已断开并永久关闭。Default: false--><br /> &lt;property name="breakAfterAcquireFailure">false&lt;/property><br /> <br /> &lt;!--当连接池用完时客户端调用getConnection()后等待获取新连接的时间，超时后将抛出<br />&nbsp; SQLException,如设为0则无限期等待。单位毫秒。Default: 0 --><br /> &lt;property name="checkoutTimeout">100&lt;/property><br /> <br /> &lt;!--通过实现ConnectionTester或QueryConnectionTester的类来测试连接。类名需制定全路径。<br />&nbsp; Default: com.mchange.v2.c3p0.impl.DefaultConnectionTester--><br /> &lt;property name="connectionTesterClassName">&lt;/property><br /> <br /> &lt;!--指定c3p0 libraries的路径，如果（通常都是这样）在本地即可获得那么无需设置，默认null即可<br />&nbsp; Default: null--><br /> &lt;property name="factoryClassLocation">null&lt;/property><br /> <br /> &lt;!--Strongly disrecommended. Setting this to true may lead to subtle and bizarre bugs.<br />&nbsp; （文档原文）作者强烈建议不使用的一个属性--><br /> &lt;property name="forceIgnoreUnresolvedTransactions">false&lt;/property><br /> <br /> &lt;!--每60秒检查所有连接池中的空闲连接。Default: 0 --><br /> &lt;property name="idleConnectionTestPeriod">60&lt;/property><br /> <br /> &lt;!--初始化时获取三个连接，取值应在minPoolSize与maxPoolSize之间。Default: 3 --><br /> &lt;property name="initialPoolSize">3&lt;/property><br /> <br /> &lt;!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --><br /> &lt;property name="maxIdleTime">60&lt;/property><br /> <br /> &lt;!--连接池中保留的最大连接数。Default: 15 --><br /> &lt;property name="maxPoolSize">15&lt;/property><br /> <br /> &lt;!--JDBC的标准参数，用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements<br />&nbsp; 属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。<br />&nbsp; 如果maxStatements与maxStatementsPerConnection均为0，则缓存被关闭。Default: 0--><br /> &lt;property name="maxStatements">100&lt;/property><br /> <br /> &lt;!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0&nbsp; --><br /> &lt;property name="maxStatementsPerConnection">&lt;/property><br /> <br /> &lt;!--c3p0是异步操作的，缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能<br />&nbsp; 通过多线程实现多个操作同时被执行。Default: 3--><br /> &lt;property name="numHelperThreads">3&lt;/property><br /> <br /> &lt;!--当用户调用getConnection()时使root用户成为去获取连接的用户。主要用于连接池连接非c3p0<br />&nbsp; 的数据源时。Default: null--><br /> &lt;property name="overrideDefaultUser">root&lt;/property><br /> <br /> &lt;!--与overrideDefaultUser参数对应使用的一个参数。Default: null--><br /> &lt;property name="overrideDefaultPassword">password&lt;/property><br /> <br /> &lt;!--密码。Default: null--><br /> &lt;property name="password">&lt;/property><br /> <br /> &lt;!--定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。注意：<br />&nbsp; 测试的表必须在初始数据源的时候就存在。Default: null--><br /> &lt;property name="preferredTestQuery">select id from test where id=1&lt;/property><br /> <br /> &lt;!--用户修改系统配置参数执行前最多等待300秒。Default: 300 --><br /> &lt;property name="propertyCycle">300&lt;/property><br /> <br /> &lt;!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的<br />&nbsp; 时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable<br />&nbsp; 等方法来提升连接测试的性能。Default: false --><br /> &lt;property name="testConnectionOnCheckout">false&lt;/property><br /> <br /> &lt;!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false --><br /> &lt;property name="testConnectionOnCheckin">true&lt;/property><br /> <br /> &lt;!--用户名。Default: null--><br /> &lt;property name="user">root&lt;/property><br /> <br /> &lt;!--早期的c3p0版本对JDBC接口采用动态反射代理。在早期版本用途广泛的情况下这个参数<br />&nbsp; 允许用户恢复到动态反射代理以解决不稳定的故障。最新的非反射代理更快并且已经开始<br />&nbsp; 广泛的被使用，所以这个参数未必有用。现在原先的动态反射与新的非反射代理同时受到<br />&nbsp; 支持，但今后可能的版本可能不支持动态反射代理。Default: false--><br /> &lt;property name="usesTraditionalReflectiveProxies">false&lt;/property><br /><br />&nbsp;&nbsp;&nbsp; &lt;property name="automaticTestTable">con_test&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;property name="checkoutTimeout">30000&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;property name="idleConnectionTestPeriod">30&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;property name="initialPoolSize">10&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;property name="maxIdleTime">30&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;property name="maxPoolSize">25&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;property name="minPoolSize">10&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;property name="maxStatements">0&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;user-overrides user="swaldman"><br />&nbsp;&nbsp;&nbsp; &lt;/user-overrides><br />&nbsp; &lt;/default-config><br />&nbsp; &lt;named-config name="dumbTestConfig"><br />&nbsp;&nbsp;&nbsp; &lt;property name="maxStatements">200&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;user-overrides user="poop"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="maxStatements">300&lt;/property><br />&nbsp;&nbsp;&nbsp; &lt;/user-overrides><br />&nbsp;&nbsp; &lt;/named-config><br />&lt;/c3p0-config>
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/154690#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 10 Jan 2008 12:38:33 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/154690</link>
        <guid>http://msq.javaeye.com/blog/154690</guid>
      </item>
          <item>
        <title>mysql table full 的解决方案</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/148124" style="color:red;">http://msq.javaeye.com/blog/148124</a>&nbsp;
          发表时间: 2007年12月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>发现执行mysql的 REPLACE INTO 的时候mysql返回 #1114 - The table &lsquo;xxxx&rsquo; is full<br />
这个错误。。。<br />
以前没有遇到过，于是查找资料解决这个问题。。。</p>
<p>得知是由于内存表的大小超过了规定的范围，于是搜索解决方法，<br />
网上提到的有两种解决方法，<br />
一种是修改tmp_table_size参数，另外一种是修改max_heap_table_size参数。。。</p>
[root@localhost etc]# vi /etc/rc.d/init.d/mysql<br />
找到<br />
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file&nbsp;&gt;/dev/null 2&gt;&amp;1 &amp;<br />
修改为<br />
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file -O tmp_table_size=64M -O max_heap_table_size=32M &gt;/dev/null 2&gt;&amp;1 &amp;<br />
<br />
重启mysql<br />
[root@localhost etc]# /usr/bin/mysqladmin -u root -p shutdown<br />
Enter password: <br />
[root@localhost etc]# /etc/init.d/mysql start<br />
[root@localhost etc]# mysql<br />
<br />
查看是否己修改<br />
<p>mysql&gt; show variables like '%max_heap_table_size%';<br />
+---------------------+----------+<br />
| Variable_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Value&nbsp;&nbsp;&nbsp; |<br />
+---------------------+----------+<br />
| max_heap_table_size | 33553408 |<br />
+---------------------+----------+<br />
1 row in set (0.00 sec)</p>
<p>mysql&gt; show variables like '%tmp_table_size%';<br />
+----------------+----------+<br />
| Variable_name&nbsp; | Value&nbsp;&nbsp;&nbsp; |<br />
+----------------+----------+<br />
| tmp_table_size | 67108864 |<br />
+----------------+----------+<br />
1 row in set (0.00 sec)</p>
己经修改成功！<br />
注意：修改参数值是按照M单位来计算的。。。
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/148124#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 13 Dec 2007 16:18:30 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/148124</link>
        <guid>http://msq.javaeye.com/blog/148124</guid>
      </item>
          <item>
        <title>lucene包中的常用类</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/148107" style="color:red;">http://msq.javaeye.com/blog/148107</a>&nbsp;
          发表时间: 2007年12月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Directory：<br />
&nbsp;&nbsp;&nbsp;&nbsp; Directory这个类代表了 Lucene 的索引的存储的位置，这是一个抽象类，<br />
&nbsp;&nbsp;&nbsp;&nbsp; 它目前有两个实现，第一个是 FSDirectory，它表示一个存储在文件系统中的索引的位置。<br />
&nbsp;&nbsp;&nbsp; &nbsp; 第二个是 RAMDirectory，它表示一个存储在内存当中的索引的位置。<br />
<br />
Document:<br />
&nbsp;&nbsp;&nbsp; Document文档类似数据库中的一条记录，可以由好几个字段（Field）组成，并且字段可以套用不同的类型<br />
&nbsp;&nbsp;&nbsp; Document 是用来描述文档的，这里的文档可以指一个 HTML 页面，一封电子邮件，或者是一个文本文件。<br />
&nbsp;&nbsp;&nbsp; 一个 Document 对象由多个 Field 对象组成的。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 可以把一个 Document 对象想象成数据库中的一个记录，而每个 Field 对象就是记录的一个字段。 <br />
<br />
IndexWriter<br />
&nbsp;&nbsp;&nbsp;&nbsp; IndexWriter 是 Lucene 用来创建索引的一个核心的类，<br />
&nbsp;&nbsp;&nbsp; &nbsp; 他的作用是把一个个的 Document 对象加到索引中来。<br />
&nbsp;&nbsp;&nbsp; 例如：IndexWriter writer = new IndexWriter(directory, new StandardAnalyzer(), false);<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 第一个参数是要索引建立在哪个目录里 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 第二个参数是新建一个文本分析器,这里用的是标准的大家也可以自己写一个 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 第三个参数如果是true，在建立索引之前先将目录清空。&nbsp; <br />
Analyzer<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在一个文档被索引之前，首先需要对文档内容进行分词处理，<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 这部分工作就是由 Analyzer 来做的。Analyzer 类是一个抽象类，它有多个实现。<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 针对不同的语言和应用需要选择适合的 Analyzer。<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Analyzer 把分词后的内容交给 IndexWriter 来建立索引<br />
<br />
IndexSearcher<br />
&nbsp;&nbsp;&nbsp; IndexSearcher是用来在建立好的索引上进行搜索的。<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;它只能以只读的方式打开一个索引，所以可以有多个IndexSearcher的实例在一个索引上进行操作。<br />
<br />
Term是搜索的基本单位，一个Term对象有两个String类型的域组成。<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 生成一个Term对象可以有如下一条语句来完成：<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Term term = new Term(&ldquo;fieldName&rdquo;,&rdquo;queryWord&rdquo;);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 其中第一个参数代表了要在文档的哪一个Field上进行查找，第二个参数代表了要查询的关键词。<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Term term = new Term(fieldNames[i], keyWord);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; FuzzyQuery用来搜索相似的term<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; FuzzyQuery fQuery = new FuzzyQuery(term);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br />
<br />
&nbsp;Query这是一个抽象类，他有多个实现，<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 比如TermQuery, BooleanQuery, PrefixQuery. <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 这个类的目的是把用户输入的查询字符串封装成Lucene能够识别的Query。<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 如果想输入关键字而不想关心是在哪个Field里的就可以用MultiFieldQueryParser了。 &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Query keyQuery = MultiFieldQueryParser.parse(keyWord, fieldNames,<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; conditions, new StandardAnalyzer());<br />
<br />
BooleanClause.Occur[]的三种类型：<br />
&nbsp;&nbsp;&nbsp; &nbsp; MUST : + and<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; MUST_NOT : - not<br />
&nbsp;&nbsp;&nbsp; &nbsp; SHOULD : or<br />
&nbsp;&nbsp; <br />
Hits是用来保存搜索的结果的
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/148107#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 13 Dec 2007 15:47:20 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/148107</link>
        <guid>http://msq.javaeye.com/blog/148107</guid>
      </item>
          <item>
        <title>Subversion安装成service</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/147104" style="color:red;">http://msq.javaeye.com/blog/147104</a>&nbsp;
          发表时间: 2007年12月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          安装成自启动服务：例如：<br />
sc create svnserver binpath= &quot;\&quot;F:\Program files\subversion\bin\svnserve.exe\&quot; --service -r d:\svnroot&quot; displayname= &quot;svnserver&quot; depend= Tcpip start= auto<br />
<br />
注意：<font color="#ff0000">上面的命令要写在一行上！！！<br />
<br />
<font color="#000000">删除服务：<br />
</font></font>如果服务安装的有问题，你可能需要删除服务。要删除前面添加的服务，只需要运行&quot;sc delete svnservice&quot;，&quot;svnservice&quot;就是我们创建服务时使用的名字。<br />
<font color="#ff0000"><br />
</font>
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/147104#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 09 Dec 2007 21:13:54 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/147104</link>
        <guid>http://msq.javaeye.com/blog/147104</guid>
      </item>
          <item>
        <title>mysql提示Column count doesn't match value count at row 1错误</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/141634" style="color:red;">http://msq.javaeye.com/blog/141634</a>&nbsp;
          发表时间: 2007年11月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          开发中运行mysql脚本，发现提示mysql提示Column count doesn't match value count at row 1错误，坚持后发现是由于写的SQL语句里列的数目和后面的值的数目不一致，<br /><br />比如insert into 表名 (field1,field2,field3) values('a','b')这样前面的是三列，后面却只有二个值，这就会出现这个错误的。<br /><br /><img src="/images/smiles/icon_smile.gif"/>下次就不会犯这样的错误了！！
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/141634#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 19 Nov 2007 10:47:17 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/141634</link>
        <guid>http://msq.javaeye.com/blog/141634</guid>
      </item>
          <item>
        <title>修改mysql数据表中的字段属性</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/138816" style="color:red;">http://msq.javaeye.com/blog/138816</a>&nbsp;
          发表时间: 2007年11月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1.登录数据库<br />>mysql -u root -p 数据库名称<br /><br />2.查询所有数据表<br />>show tables;<br /><br />3.查询表的字段信息<br />>desc 表名称;<br /><br />4.1.修改某个表的字段类型及指定为空或非空<br />>alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];<br />>alter table 表名称 modify 字段名称 字段类型 [是否允许非空];<br /><br />4.2.修改某个表的字段名称及指定为空或非空<br />>alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空];<br /><br />例如:<br />修改表expert_info中的字段birth,允许其为空<br />>alter table expert_info change birth birth varchar(20) null;
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/138816#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 07 Nov 2007 16:48:23 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/138816</link>
        <guid>http://msq.javaeye.com/blog/138816</guid>
      </item>
          <item>
        <title>setTimeout()使用及 setInterval()使用</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/137572" style="color:red;">http://msq.javaeye.com/blog/137572</a>&nbsp;
          发表时间: 2007年11月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在用JS对页面进行控制，有时候需要定时执行某项操作，这就可以使用setTimeout()来完成，但是setTimeout()只能执行一次。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 如果我们需要循环执行某项操作的时候，怎么办呢？这时候，setInterval()就可以派上用场了。<br />&nbsp;&nbsp;&nbsp; setInterval()的用法和setTimeout()是一样的:<br /><br />&nbsp;&nbsp;&nbsp; iTimerID = window.setInterval(vCode, iMilliSeconds [, sLanguage])<br /><br />&nbsp;&nbsp;&nbsp; 不同的是setTimeout()是一次性作用,而setInterval()是每隔iMilliSeconds就执行一次vCode.(Evaluates an expression each time a specified number of milliseconds has elapsed)
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/137572#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 Nov 2007 14:14:33 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/137572</link>
        <guid>http://msq.javaeye.com/blog/137572</guid>
      </item>
          <item>
        <title>测试表情符号</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/135451" style="color:red;">http://msq.javaeye.com/blog/135451</a>&nbsp;
          发表时间: 2007年10月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          8)&nbsp; :oops:&nbsp; :?&nbsp; :shock:&nbsp; :x&nbsp; :evil:&nbsp; :!:&nbsp; :?:&nbsp; :idea:&nbsp; :arrow:&nbsp; :cry:&nbsp; :o&nbsp;<img src="/images/smiles/icon_biggrin.gif"/><br />Smilies 代码
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/135451#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 25 Oct 2007 15:19:03 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/135451</link>
        <guid>http://msq.javaeye.com/blog/135451</guid>
      </item>
          <item>
        <title>转：Ubuntu软件安装与删除相关命令</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/133877" style="color:red;">http://msq.javaeye.com/blog/133877</a>&nbsp;
          发表时间: 2007年10月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Ubuntu软件安装与删除相关命令<br />安装软件<br />命令： apt-get install softname1 softname2 softname3……<br />卸载软件<br />命令： apt-get remove softname1 softname2 softname3……<br />卸载并清除配置<br />命令： apt-get remove --purge softname1<br />更新软件信息数据库<br />命令： apt-get update<br />进行系统升级<br />命令： apt-get upgrade<br />搜索软件包<br />命令： apt-cache search softname1 softname2 softname3……<br />Deb软件包相关安装与卸载<br /><br />安装deb软件包<br />命令： dpkg -i xxx.deb<br />删除软件包<br />命令：&nbsp; dpkg -r xxx.deb<br />连同配置文件一起删除<br />命令： dpkg -r --purge xxx.deb<br />查看软件包信息<br />命令： dpkg -info xxx.deb<br />查看文件拷贝详情<br />命令： dpkg -L xxx.deb<br />查看系统中已安装软件包信息<br />命令： dpkg -l<br />重新配置软件包<br />命令：&nbsp; dpkg-reconfigure xxx
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/133877#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 20 Oct 2007 23:37:25 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/133877</link>
        <guid>http://msq.javaeye.com/blog/133877</guid>
      </item>
          <item>
        <title>转： ubuntu输入法安装</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/133875" style="color:red;">http://msq.javaeye.com/blog/133875</a>&nbsp;
          发表时间: 2007年10月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这里的方法同样适用于Debian下的Scim输入法的安装。<br />&nbsp;&nbsp;&nbsp; 根据SCIM的文档说明，装SCIM最好用UTF-8的locale。（你也可以使用GB2312以及GBK的locale，使用scim都一样的）<br />对于一个新装好的没有安装SCIM的Ubuntu系统（新的Ubuntu安装器选择中文安装后，一边都已经装好了scim），只要<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apt-get install scim（当然前提是你要设置好源，具体见<a href="http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97" target="_blank">http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97</a>, 有些高校自己内部也有源的，好好找找)<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 就已经安装好SCIM了！当然还不能用。因为SCIM只是一个输入法平台，还要在上面安装输入法（或者码表）。例如，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apt-get install scim-chinese<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 就可以使用智能拼音输入法了！当然在使用之前还要先配置一下，配置方法很简单，在/etc/X11/Xsession.d/里新建一个名叫95xinput的文件，文件内容如下<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/bin/scim -d<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XMODIFIERS="@im=SCIM"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; export XMODIFIERS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; export GTK_IM_MODULE=scim<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 保存文件，确认内容无误后，退出X（建议退出X后运行exit命令重新login一次），再进入X的时候就可以用Ctrl+Space调出SCIM了！<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 就我的试验情况，这样已经可以在qterm里使用SCIM了。<br /><br />&nbsp;&nbsp;&nbsp; 如果你需要其它中文输入法，可以这样<br /><br />&nbsp;&nbsp;&nbsp; apt-get install scim-tables-zh<br /><br />&nbsp;&nbsp;&nbsp; 这包括了简体中文的五笔、二笔、广东拼音、自然码，和繁体中文的行列、 }頡五代、大易、注音等输入法了。<br />&nbsp;&nbsp;&nbsp; 我现在使用五笔输入法，能输入简繁汉字，词汇也丰富，很好用。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但是现在还不能在基于GTK的软件中调出SCIM，例如我就不能在leafpad里使用SCIM。解决办法很简单，只要安装scim-gtk2-immodule就可以了。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apt-get install scim-gtk2-immodule<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 安装后无须重启X，只要重新打开基于GTK的软件就可以了，比如我新开一个leafpad，马上就可以使用SCIM了！<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个命令会根据依赖关系自动安装 scim-server-socket, scim-frontend-socket, scim-config-socket，如果没有安装scim，也会自动安装。
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/133875#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 20 Oct 2007 23:35:49 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/133875</link>
        <guid>http://msq.javaeye.com/blog/133875</guid>
      </item>
          <item>
        <title>webwork</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/124426" style="color:red;">http://msq.javaeye.com/blog/124426</a>&nbsp;
          发表时间: 2007年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          webwork2是一个优秀的J2EE web程序MVC框架，作为一个传统的框架，在2.2以后和struts2进行合并为一个新型的统一框架。其提供了很多工具可以使初学者快速入门，从而进行敏捷开发，以下是我的尝试：<br /><br />到官方网站下载webwork2.2.4版本。<br /><br /><br />(1)快速上手：<br /><br />&nbsp;&nbsp;&nbsp; 进入%webwork-2.2.4%目录下，运行java -jar webwork-2.2.4.jar quickstart:showcase<br /><br />&nbsp;&nbsp;&nbsp; 运行之后，将会启动内嵌的jetty服务器在8080端口监视,并创建了一个showcase的应用程序，当你在浏览器输入http://localhost:8080/showcase的时候，将会连接我们的样例程序。<br /><br />&nbsp;&nbsp;&nbsp; 背后：主要是读取webapps文件夹下的符合webwork规范的应用程序布局（可以简单创建，等下再说），同理，如果你输入java -jar webwork-2.2.4.jar quickstart:shopping-cart读取的将是shopping-cart应用程序，这样方便我们进行快速测试应用程序。<br /><br />(2)创建应用程序：<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 进入%webwork-2.2.4%/webapps文件夹下，运行ant new，将会提示你创建一个新的应用程序名字，输入我们的样例名problog，将会创建problog应用程序，其中基本的程序布局都已经设置好，你只需要编写相关的应用程序代码。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 测试：按照快速上手上面说的那样，输入java -jar webwork-2.2.4.jar quickstart:problog<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 在浏览器里面输入： http://localhost:8080/problog<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 激动人心的时候到了，浏览器返回正确的结果。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; 从这里可以看出，使用webwork进行敏捷开发是多么的简单^_^。由于集成的jetty内嵌服务器，测试变得那么容易了。<br /><br />(3)在eclipse中编写源码：<br /><br />&nbsp;&nbsp;&nbsp; 创建应用程序problog后，在%webwork-2.2.4%/webapps/problog/文件夹下有几个文件专门用于eclipse使用的，那就是.project和.classpath。<br /><br />&nbsp;&nbsp;&nbsp; 打开eclipse，把工作空间换到%webwork-2.2.4%/webapps(选择File/Switch Workspace)下，然后选择新建工程problog，点击完成，如果出现错误提示找不到junit，你可以新建一个junit测试，那就会提示你导入junit.jar到路径里来了。
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/124426#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Sep 2007 21:55:49 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/124426</link>
        <guid>http://msq.javaeye.com/blog/124426</guid>
      </item>
          <item>
        <title>人的一生能有几天（很有感触的一首词）</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/124425" style="color:red;">http://msq.javaeye.com/blog/124425</a>&nbsp;
          发表时间: 2007年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这是从阎肃老师口中听到的很有感触的一首词：&nbsp;&nbsp;&nbsp; <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 人的一生问一问能有几天？ <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 人的一生算一算不过三天： <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 跑过去的是昨天，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 奔过来的是明天，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正在走的是今天。<br /><br /> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不要忘记昨天，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 认真想想明天，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好好把握今天。<br /><br /> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但愿到了明天，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天已成昨天，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你依然在我身边。<br /><br /> <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 啊！<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 春梦无痕，秋夜缠绵，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如歌岁月，似水流年。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但愿到了明天，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天已成昨天，<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我依然在您心间。
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/124425#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 15 Sep 2007 21:54:12 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/124425</link>
        <guid>http://msq.javaeye.com/blog/124425</guid>
      </item>
          <item>
        <title>java实现图像缩略</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/102764" style="color:red;">http://msq.javaeye.com/blog/102764</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">//缩略图实现，将图片(jpg,gif,bmp等等)真实的变成想要的大小
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.net.*;
import java.applet.*;
import java.sql.*;
//缩略图类，
//本java类能将jpg图片文件，进行等比或非等比的大小转换。
//具体使用方法
//s_pic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度,是否等比缩放(默认为true))
public class DwindlePic{
  String InputDir; //输入图路径
  String OutputDir; //输出图路径
  String InputFileName; //输入图文件名
  String OutputFileName; //输出图文件名
  int OutputWidth = 80; //默认输出图片宽
  int OutputHeight = 80; //默认输出图片高
  int rate = 0;
  boolean proportion = true; //是否等比缩放标记(默认为等比缩放)
 
  public DwindlePic() {
    //初始化变量
    InputDir = "";
    OutputDir = "";
    InputFileName = "";
    OutputFileName = "";
    OutputWidth = 80;
    OutputHeight = 80;
    rate = 0;
  }
 
  public void setInputDir(String InputDir) {
    this.InputDir = InputDir;
  }
 
  public void setOutputDir(String OutputDir) {
    this.OutputDir = OutputDir;
  }
 
  public void setInputFileName(String InputFileName) {
    this.InputFileName = InputFileName;
  }
 
  public void setOutputFileName(String OutputFileName) {
    this.OutputFileName = OutputFileName;
  }
 
  public void setOutputWidth(int OutputWidth) {
    this.OutputWidth = OutputWidth;
  }
 
  public void setOutputHeight(int OutputHeight) {
    this.OutputHeight = OutputHeight;
  }
 
  public void setW_H(int width, int height) {
    this.OutputWidth = width;
    this.OutputHeight = height;
  }
 
  public String s_pic() {
    BufferedImage image;
    String NewFileName;
//建立输出文件对象
    File file = new File(OutputDir + OutputFileName);
    FileOutputStream tempout = null;
    try {
      tempout = new FileOutputStream(file);
    }
    catch (Exception ex) {
      System.out.println(ex.toString());
    }
    Image img = null;
    Toolkit tk = Toolkit.getDefaultToolkit();
    Applet app = new Applet();
    MediaTracker mt = new MediaTracker(app);
    try {
      img = tk.getImage(InputDir + InputFileName);
      mt.addImage(img, 0);
      mt.waitForID(0);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
 
    if (img.getWidth(null) == -1) {
      System.out.println(" can't read,retry!" + "&lt;BR>");
      return "no";
    }
    else {
      int new_w;
      int new_h;
      if (this.proportion == true) { //判断是否是等比缩放.
//为等比缩放计算输出的图片宽度及高度
        double rate1 = ( (double) img.getWidth(null)) / (double) OutputWidth +
            0.1;
        double rate2 = ( (double) img.getHeight(null)) / (double) OutputHeight +
            0.1;
        double rate = rate1 > rate2 ? rate1 : rate2;
        new_w = (int) ( ( (double) img.getWidth(null)) / rate);
        new_h = (int) ( ( (double) img.getHeight(null)) / rate);
      }
      else {
        new_w = OutputWidth; //输出的图片宽度
        new_h = OutputHeight; //输出的图片高度
      }
      BufferedImage buffImg = new BufferedImage(new_w, new_h,
                                                BufferedImage.TYPE_INT_RGB);
 
      Graphics g = buffImg.createGraphics();
 
      g.setColor(Color.white);
      g.fillRect(0, 0, new_w, new_h);
 
      g.drawImage(img, 0, 0, new_w, new_h, null);
      g.dispose();
 
      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout);
      try {
        encoder.encode(buffImg);
        tempout.close();
      }
      catch (IOException ex) {
        System.out.println(ex.toString());
      }
    }
    return "ok";
  }
 
  public String s_pic(String InputDir, String OutputDir, String InputFileName,
                      String OutputFileName) {
//输入图路径
    this.InputDir = InputDir;
//输出图路径
    this.OutputDir = OutputDir;
//输入图文件名
    this.InputFileName = InputFileName;
//输出图文件名
    this.OutputFileName = OutputFileName;
    return s_pic();
  }
 
  public String s_pic(String InputDir, String OutputDir, String InputFileName,
                      String OutputFileName, int
                      width, int height, boolean gp) {
//输入图路径
    this.InputDir = InputDir;
//输出图路径
    this.OutputDir = OutputDir;
//输入图文件名
    this.InputFileName = InputFileName;
//输出图文件名
    this.OutputFileName = OutputFileName;
//设置图片长宽
    setW_H(width, height);
//是否是等比缩放 标记
    this.proportion = gp;
    return s_pic();
  }
/**
  public static void main(String[] a)
  {
//s_pic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度)
    DwindlePic mypic = new DwindlePic();
    System.out.println(
        mypic.s_pic("e:\\Tomcat\\webapps\\pms\\image\\",
                    "e:\\Tomcat\\webapps\\pms\\image\\",
                    "test.jpg", "new.jpg", 120, 80, true)
        );
  }
*/
}
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/102764#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 12:49:16 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/102764</link>
        <guid>http://msq.javaeye.com/blog/102764</guid>
      </item>
          <item>
        <title>Java使用正则表达式将UBB的img表达方法转换成html样式</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/102763" style="color:red;">http://msq.javaeye.com/blog/102763</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">//此方法用于解析将UBB的img表达方法转换成html样式，使用regx包
 
public static String convertTags(String str)
 {
   if (str == null || str.length() == 0) 
   {
    return str;
   }
   String patt = "(\\[img\\])([^\\[]+)(\\[/img\\])";
   Pattern p = Pattern.compile(patt);
   Matcher m = p.matcher(str);
   StringBuffer sb = new StringBuffer();
   int i=0;
   boolean result = m.find();
   while(result) 
   {
    i++;
    m.appendReplacement(sb, "&lt;img src=\""+m.group(2)+"\">");
    result = m.find();
   }
   m.appendTail(sb);
   return sb.toString();
  }
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/102763#comments" style="color:red;">已有 <strong>8</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 12:45:47 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/102763</link>
        <guid>http://msq.javaeye.com/blog/102763</guid>
      </item>
          <item>
        <title>多选框动态插入内容到页面去</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/102762" style="color:red;">http://msq.javaeye.com/blog/102762</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
&lt;html xmlns="http://www.w3.org/1999/xhtml">
&lt;head>
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
&lt;script>
function qwer(obj){
	var obj=document.getElementById(obj);
	if(obj.checked){
		document.getElementById("div1").innerHTML+="&lt;li id='qwer1' style='border:1px solid #000;'>1111111111111111111111&lt;/li>";
		document.getElementById("qwer1").innerHTML+="&lt;span id='qwer2' style='border:2px solid #F00;'>2222222222222222222&lt;/span>";
	}
	else{
		document.getElementById("qwer1").outerHTML="   ";
		alert(document.getElementById("div1").innerHTML);
	}
}

&lt;/script>
&lt;/head>

&lt;body>
&lt;input type="checkbox" name="checkbox" id="checkbox1" value="checkbox" onclick="qwer('checkbox1')" />
&lt;br />
&lt;br />&lt;br />&lt;br />&lt;br />&lt;br />
&lt;ul id="div1">0000000000000000000&lt;/ul>
&lt;/body>
&lt;/html>
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/102762#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 12:44:21 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/102762</link>
        <guid>http://msq.javaeye.com/blog/102762</guid>
      </item>
          <item>
        <title>转：js得到光标位置</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/102759" style="color:red;">http://msq.javaeye.com/blog/102759</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">&lt;html>
&lt;textarea   rows="7"   cols="49"   id="box"   onclick=tellPoint()>
fasdfsdafsdafsafsadsdfsdfasfsafdsadfsadfsaf
  &lt;/textarea>
  &lt;script   language="javascript">
  function   tellPoint()
  {
    var   rng   =   event.srcElement.createTextRange();
    rng.moveToPoint(event.x,event.y);
    rng.moveStart("character",-event.srcElement.value.length);
    pnum.value   =   rng.text.length;
  }
  &lt;/script>  &lt;p>&lt;/p>                   
  光标位置：&lt;input   type="text"   value="0"   id="pnum"   size="8">   
&lt;/html></pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/102759#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 12:40:08 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/102759</link>
        <guid>http://msq.javaeye.com/blog/102759</guid>
      </item>
          <item>
        <title>转：用JavaScirpt在Textarea中插入元素（光标位置）</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/102758" style="color:red;">http://msq.javaeye.com/blog/102758</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">&lt;HTML> 
&lt;HEAD>  
&lt;SCRIPT>  
function storeCaret (textEl) { 
if (textEl.createTextRange)  
textEl.caretPos = document.selection.createRange().duplicate();  
} 
function insertAtCaret (textEl, text) { 
if (textEl.createTextRange &amp;&amp; textEl.caretPos) { 
var caretPos = textEl.caretPos; 
caretPos.text =caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?text + ' ' : text;  
}  
else  
textEl.value = text; 

}  
&lt;/SCRIPT>  
&lt;/HEAD>  
&lt;BODY>  
&lt;FORM NAME="aForm"> 
&lt;TEXTAREA NAME="aTextArea" ROWS="20" COLS="40" WRAP="soft" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);" ONKEYUP="storeCaret(this);"> 这是例子，你可以在这里添加文字、插入文字。 &lt;/TEXTAREA>  
&lt;BR>  
&lt;INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="我要在光标处插入这些文字">&lt;BR> 
&lt;INPUT TYPE="button" VALUE="我要在光标处插入上面文本框里输入的文字！" ONCLICK="insertAtCaret(this.form.aTextArea, this.form.aText.value);"> 
&lt;/FORM> 
&lt;/BODY> 
&lt;/HTML>   </pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/102758#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 12:39:06 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/102758</link>
        <guid>http://msq.javaeye.com/blog/102758</guid>
      </item>
          <item>
        <title>转：如何查看本机打开的端口是被哪个程序使用的</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/102757" style="color:red;">http://msq.javaeye.com/blog/102757</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在上网的过程中，我们的计算机难免会受到木马的入侵，一般的木马杀毒软件可以查出来，但比较新型或少见的就有可能被漏掉，因为一般的木马都会在计算机上打开某一个端口等待别人控制，所以通常的做发都是去分析端口来看是否有异常的程序，一般windows提供的netstat命令只能列出被打开的端口，所以如果要看是哪个程序占用了端口，有时候还不得不借助于第三方软件，如ActivePort或Fport等，但这些软件均需要安装才可以使用，较为麻烦。 <br />其实在XP与Windows2003下，netstat 已经新增了一个-b的开关，用来指定同时列出端口所对应的程序。对我们分析是否中了木马或有异常的程序非常有用。只需要输入 <br /><br />netstat -anb <br /><br />就可以实现fport或ActivePort的功能了，马上试试吧：）
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/102757#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 12:35:35 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/102757</link>
        <guid>http://msq.javaeye.com/blog/102757</guid>
      </item>
          <item>
        <title>转： java中相对路径，绝对路径问题总结</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/102756" style="color:red;">http://msq.javaeye.com/blog/102756</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1.基本概念的理解<br /><br />　　绝对路径：绝对路径就是你的主页上的文件或目录在硬盘上真正的路径，(URL和物理路径)例如：<br />C:\xyz\test.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个<br />URL绝对路径。<br /><br />　　相对路径：相对与某个基准目录的路径。包含Web的相对路径（HTML中的相对目录），例如：在<br />Servlet中，"/"代表Web应用的跟目录。和物理路径的相对表示。例如："./" 代表当前目录,<br />"../"代表上级目录。这种类似的表示，也是属于相对路径。<br /><br />另外关于URI，URL,URN等内容，请参考RFC相关文档标准。<br /><br />RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax, <br />(http://www.ietf.org/rfc/rfc2396.txt)<br /><br /><br />2.关于JSP/Servlet中的相对路径和绝对路径。<br /><br />2.1服务器端的地址 <br /><br />　　 服务器端的相对地址指的是相对于你的web应用的地址，这个地址是在服务器端解析的<br />（不同于html和javascript中的相对地址，他们是由客户端浏览器解析的）也就是说这时候<br />在jsp和servlet中的相对地址应该是相对于你的web应用，即相对于http://192.168.0.1/webapp/的。 <br /><br />　　其用到的地方有： <br /> forward：servlet中的request.getRequestDispatcher(address);这个address是<br />在服务器端解析的，所以，你要forward到a.jsp应该这么写：<br />request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的web应用webapp，<br />其绝对地址就是：http://192.168.0.1/webapp/user/a.jsp。 <br />sendRedirect：在jsp中&lt;%response.sendRedirect("/rtccp/user/a.jsp");%> <br /><br />2.22、客户端的地址 <br /> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所有的html页面中的相对地址都是相对于服务器根目录(http://192.168.0.1/)的，<br />而不是(跟目录下的该Web应用的目录)http://192.168.0.1/webapp/的。 <br /> Html中的form表单的action属性的地址应该是相对于服务器根目录(http://192.168.0.1/)的，<br />所以，如果提交到a.jsp为：action＝"/webapp/user/a.jsp"或action="&lt;%=request.getContextPath()%>"/user/a.jsp；<br />　　提交到servlet为actiom＝"/webapp/handleservlet"&nbsp; <br /> 　　Javascript也是在客户端解析的，所以其相对路径和form表单一样。 <br /> <br /><br />　　因此，一般情况下，在JSP/HTML页面等引用的CSS,Javascript.Action等属性前面最好都加上<br />&lt;%=request.getContextPath()%>,以确保所引用的文件都属于Web应用中的目录。<br />另外，应该尽量避免使用类似".","./","../../"等类似的相对该文件位置的相对路径，这样<br />当文件移动时，很容易出问题。<br /><br /><br />3. JSP/Servlet中获得当前应用的相对路径和绝对路径<br />3.1 JSP中获得当前应用的相对路径和绝对路径<br /> 根目录所对应的绝对路径:request.getRequestURI()<br /> 文件的绝对路径&nbsp;&nbsp;&nbsp; 　:application.getRealPath(request.getRequestURI());<br /> 当前web应用的绝对路径 :application.getRealPath("/");<br /> 取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()<br /><br />3.2 Servlet中获得当前应用的相对路径和绝对路径<br /> 根目录所对应的绝对路径:request.getServletPath();<br /> 文件的绝对路径&nbsp;&nbsp;&nbsp; :request.getSession().getServletContext().getRealPath<br />(request.getRequestURI())&nbsp;&nbsp; <br /> 当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");<br />&nbsp;&nbsp;&nbsp;&nbsp; (ServletContext对象获得几种方式：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; javax.servlet.http.HttpSession.getServletContext() <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; javax.servlet.jsp.PageContext.getServletContext() <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; javax.servlet.ServletConfig.getServletContext() <br />&nbsp;&nbsp;&nbsp;&nbsp; )<br /><br />4.java 的Class中获得相对路径，绝对路径的方法<br />4.1单独的Java类中获得绝对路径<br />　　根据java.io.File的Doc文挡，可知:<br /> 默认情况下new File("/")代表的目录为：System.getProperty("user.dir")。<br /> 一下程序获得执行类的当前路径<br />package org.cheng.file;<br />import java.io.File;<br /><br />public class FileTest {<br />&nbsp;&nbsp;&nbsp; public static void main(String[] args) throws Exception {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />&nbsp; System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />&nbsp; System.out.println(FileTest.class.getClassLoader().getResource(""));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />　　System.out.println(ClassLoader.getSystemResource(""));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp; System.out.println(FileTest.class.getResource(""));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp; System.out.println(FileTest.class.getResource("/")); //Class文件所在路径&nbsp; <br />&nbsp; System.out.println(new File("/").getAbsolutePath());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp; System.out.println(System.getProperty("user.dir"));&nbsp;&nbsp;&nbsp; <br /> }<br />}<br /><br />4.2服务器中的Java类获得当前路径（来自网络）<br />(1).Weblogic<br /><br />WebApplication的系统文件根目录是你的weblogic安装所在根目录。<br />例如：如果你的weblogic安装在c:\bea\weblogic700.....<br />那么，你的文件根路径就是c:\.<br />所以，有两种方式能够让你访问你的服务器端的文件：<br />a.使用绝对路径：<br />比如将你的参数文件放在c:\yourconfig\yourconf.properties，<br />直接使用 new FileInputStream("yourconfig/yourconf.properties");<br />b.使用相对路径：<br />相对路径的根目录就是你的webapplication的根路径，即WEB-INF的上一级目录，将你的参数文件放<br /><br />在yourwebapp\yourconfig\yourconf.properties，<br />这样使用：<br />new FileInputStream("./yourconfig/yourconf.properties");<br />这两种方式均可，自己选择。<br /><br />(2).Tomcat<br /><br />在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin<br /><br />(3).Resin<br /><br />不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET<br />的路径为根.比如用新建文件法测试File f = new File("a.htm");<br />这个a.htm在resin的安装目录下 <br /><br />(4).如何读相对路径哪？<br /><br />在Java文件中getResource或getResourceAsStream均可<br /><br />例：getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web<br /><br />发布根路径下WEB-INF/classes<br /><br />默认使用该方法的路径是：WEB-INF/classes。已经在Tomcat中测试。<br /><br />5.读取文件时的相对路径，避免硬编码和绝对路径的使用。（来自网络）<br />5.1 采用Spring的DI机制获得文件，避免硬编码。<br />&nbsp;&nbsp; 参考下面的连接内容：<br />&nbsp;&nbsp; http://www.javajia.net/viewtopic.php?p=90213&amp;<br />5.2 配置文件的读取<br /> 参考下面的连接内容：<br /> http://dev.csdn.net/develop/article/39/39681.shtm<br />5.3 通过虚拟路径或相对路径读取一个xml文件，避免硬编码<br /> 参考下面的连接内容：<br /> http://club.gamvan.com/club/clubPage.jsp?iPage=1&amp;tID=10708&amp;ccID=8<br /> <br />6.Java中文件的常用操作（复制，移动，删除，创建等）（来自网络）<br /> 常用 java File 操作类 <br /> http://www.easydone.cn/014/200604022353065155.htm<br /> <br /> Java文件操作大全（JSP中）<br /> http://www.pconline.com.cn/pcedu/empolder/gj/java/0502/559401.html<br /><br /> java文件操作详解（Java中文网）<br /> http://www.51cto.com/html/2005/1108/10947.htm<br /><br /> JAVA 如何创建\删除\修改\复制目录及文件<br /> http://www.gamvan.com/developer/java/2005/2/264.html<br /><br />总结：<br /> 通过上面内容的使用，可以解决在Web应用服务器端，移动文件，查找文件，复制<br /> 删除文件等操作，同时对服务器的相对地址，绝对地址概念更加清晰。<br />建议参考URI,的RFC标准文挡。同时对Java.io.File. Java.net.URI.等内容了解透彻<br />对其他方面的理解可以更加深入和透彻。
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/102756#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 12:34:21 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/102756</link>
        <guid>http://msq.javaeye.com/blog/102756</guid>
      </item>
          <item>
        <title>java得到一张图片的宽度和高度</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/102754" style="color:red;">http://msq.javaeye.com/blog/102754</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          java.io.File&nbsp;&nbsp; file&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; java.io.File(application.getRealPath("/aa.jpg"));&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp; java.awt.image.BufferedImage&nbsp;&nbsp; bi&nbsp;&nbsp; =&nbsp;&nbsp; javax.imageio.ImageIO.read(file);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp; bi.getWidth();&nbsp;&nbsp; //获得&nbsp;&nbsp; 宽度&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp; bi.getHeight()&nbsp;&nbsp; ;//获得&nbsp;&nbsp; 高度
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/102754#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 12:31:25 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/102754</link>
        <guid>http://msq.javaeye.com/blog/102754</guid>
      </item>
          <item>
        <title>js实现光标定位</title>
        <author>莫生气</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://msq.javaeye.com">莫生气</a>&nbsp;
                    链接：<a href="http://msq.javaeye.com/blog/102753" style="color:red;">http://msq.javaeye.com/blog/102753</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">&lt;html>

&lt;head>
&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312">
&lt;meta name="GENERATOR" content="Microsoft FrontPage 4.0">
&lt;meta name="ProgId" content="FrontPage.Editor.Document">
&lt;title>光标位置&lt;/title>
&lt;style>
INPUT{border: 1 solid #000000}
BODY,TABLE{font-size: 10pt}
&lt;/style>
&lt;/head>

&lt;body>


&lt;table border="0" width="700" cellspacing="0" cellpadding="0">
  &lt;tr>
    &lt;td width="479" rowspan="7">
点击 TextArea 实现光标定位                                    
                                    
&lt;p>                                    
&lt;textarea rows="7" cols="49" id="box" onclick=tellPoint()>我怕来不及我要抱着你，直到感觉你的绉纹有了岁月的痕迹，直到视线变得模糊直到不能呼吸
为了你我愿意
动也不能动也要看着你，直到感觉你的发线有了白雪的痕迹，直到肯定你是真的直到失去力气让我们形影不离
如果全世界我也可以放弃，至少还有你值得我去珍惜而你在这里就是生命的奇迹
也许全世界我也可以忘记，就是不愿意失去你的消息你掌心的痣我总记得在哪里
我们好不容易我们身不由已，我怕时间太快不够将你看仔细，我怕时间太慢日夜担心失去你恨不得一夜之间白头永不分离
&lt;/textarea>       
     
&lt;script>     
     
function movePoint()     
{     
	var pn = parseInt(pnum.value);     
	     
	if(isNaN(pn))     
		return;     
	     
	var rng = box.createTextRange(); 
		     
	rng.moveStart("character",pn);     
	     
	rng.collapse(true);	     
	     
	rng.select();     
	     
	returnCase(rng)	     
		     
}     
     
function tellPoint()     
{     
	var rng = event.srcElement.createTextRange();	
     
	rng.moveToPoint(event.x,event.y);	     
	rng.moveStart("character",-event.srcElement.value.length)	     
	     
	pnum.value = rng.text.length     
	     
	returnCase(rng)     
}     
     
     
function returnCase(rng)     
{     
	bh.innerText = rng.boundingHeight;     
	bl.innerText = rng.boundingLeft;     
	bt.innerText = rng.boundingTop;     
	bw.innerText = rng.boundingWidth;     
	ot.innerText = rng.offsetTop;     
	ol.innerText = rng.offsetLeft;     
	t.innerText  = rng.text;  
}     
     
     
function selectText(sp,ep)     
{     
	sp = parseInt(sp)     
	ep = parseInt(ep)     
	     
	if(isNaN(sp)||isNaN(ep))     
		return;     
		     
	var rng = box.createTextRange();     
	     
	rng.moveEnd("character",-box.value.length)     
	rng.moveStart("character",-box.value.length)     
	     
	rng.collapse(true);     
	     
	rng.moveEnd("character",ep)     
	rng.moveStart("character",sp)     
	     
	rng.select();     
	     
	returnCase(rng);     
}     

var rg = box.createTextRange();
     
function findText(tw)     
{     
	if(tw=="")     
		return;        
	     
	var sw = 0;     
	     
	if(document.selection)     
	{     
		sw = document.selection.createRange().text.length;     
	}	     
	     
	rg.moveEnd("character",box.value.length);     
	     
	rg.moveStart("character",sw);     

			     
	if(rg.findText(tw))	     
	{     
		rg.select(); 

		returnCase(rg);	   
	}	
	
	if(rg.text!=tw)
	{
		alert("已经搜索完了")
		rg = box.createTextRange()
        }
		     
}     
     
&lt;/script>                                  
&lt;/p>                                    
&lt;p>&lt;/p>                                    
光标位置：&lt;input type="text" value="0" id="pnum" size="8"> &lt;input type="button" onclick="movePoint()" value="移动光标到指定位置">                                 
&lt;p>&lt;/p>                               
选择指定范围：&lt;input type="text" size="9" id="sbox"> -- &lt;input type="text" size="9" id="ebox"> &lt;input type="button" onclick="selectText(sbox.value,ebox.value)" value="选择">                                
&lt;p>&lt;/p>                    
选择查找字符 ：&lt;input type="text" value="" id="cbox" size="8"> &lt;input type="button" onclick="findText(cbox.value)" value="查找下一个并选择">                                 
                    
    &lt;/td>                              
    &lt;td width="217">boundingHeight: &lt;span id="bh">&lt;/span>&lt;/td>                              
  &lt;/tr>                              
  &lt;tr>                              
    &lt;td width="217">boundingWidth: &lt;span id="bw">&lt;/span>&lt;/td>                              
  &lt;/tr>                              
  &lt;tr>                              
    &lt;td width="217">boundingTop: &lt;span id="bt">&lt;/span>&lt;/td>                              
  &lt;/tr>                              
  &lt;tr>                              
    &lt;td width="217">boundingLeft: &lt;span id="bl">&lt;/span>&lt;/td>                              
  &lt;/tr>                              
  &lt;tr>                              
    &lt;td width="217">offsetLeft: &lt;span id="ol">&lt;/span> &lt;/td>                              
  &lt;/tr>                              
  &lt;tr>                              
    &lt;td width="217">offsetTop: &lt;span id="ot">&lt;/span> &lt;/td>                              
  &lt;/tr>                              
  &lt;tr>                              
    &lt;td width="217">text: &lt;span style="position: absolute; z-index: 10" id="t">&lt;/span> &lt;/td>                              
  &lt;/tr>                              
&lt;/table>                              
&lt;/body>                                    
                                    
&lt;/html>                                    
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://msq.javaeye.com/blog/102753#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/138' target='_blank'><span style="color:red;font-weight:bold;">加入阿里巴巴，发展潜力无限</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 12:28:41 +0800</pubDate>
        <link>http://msq.javaeye.com/blog/102753</link>
        <guid>http://msq.javaeye.com/blog/102753</guid>
      </item>
      </channel>
</rss>