<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[璀璨心灵]]></title>
  <subtitle type="html"><![CDATA[记录那些朝花拾夕的日子]]></subtitle>
  <id>http://blog.mmgg.net/</id> 
  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/" /> 
  <link rel="self" type="application/atom+xml" href="http://blog.mmgg.net/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.4.1022">PJBlog2</generator> 
  <updated>2009-01-05T17:59:38+08:00</updated> 

  <entry>
	  <title type="html"><![CDATA[Linux下安装TOMCAT]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=5" label="JSP" /> 
	  <updated>2009-01-05T17:59:38+08:00</updated>
	  <published>2009-01-05T17:59:38+08:00</published>
		  <summary type="html"><![CDATA[<p style="font-size: 20px; font-family: 黑体;"><b>Linux下Tomcat的安装</b></p>
<p><b>１．下载Tomcat</b></p>
<p>在下面的地址下载Tomcat的二进制版</p>
<p> &nbsp;&nbsp;&nbsp; <a href="http://mirrors.ccs.neu.edu/Apache/dist/jakarta/tomcat-4/binaries/"> http://mirrors.ccs.neu.edu/Apache/dist/jakarta/tomcat-4/binaries/</a></p>
<p>即下载文件</p>
<p> &nbsp;&nbsp;&nbsp; tomcat-4.1.18.tar.gz</p>
<p><b>2. 安装</b></p>
<p>首先解压缩</p>
<p>&nbsp;&nbsp;&nbsp; gunzip tomcat-4.1.18.tar.gz<br /> &nbsp;&nbsp;&nbsp; tar -zxvf tomcat-4.1.18.tar</p>
<p>得到Tomcat的所有文件.然后把它拷贝到你要安装的位置，如</p>
<p>&nbsp;&nbsp;&nbsp; /opt/tomcat-4.1.18/</p>
<p>然后为了方便，你可以把目录名tomcat-4.1.18改为tomcat．</p>
<p><b>３．设置</b></p>
<ul>
    <li><b>设置路经<br />   </b><br />   在/etc/profile文件中加入如下两行<br />   <br /> &nbsp;&nbsp;&nbsp; export JAVA_HOME=/opt/jdk1.4<br /> &nbsp;&nbsp;&nbsp; export TOMCAT_HOME=/opt/tomcat<br />   <br />   在此我们假设Java JDK安装在/opt/jdk1.4目录下．<br /> 　</li>
    <li><b>激活ROOT</b><br />   <br />   ROOT的缺省设置是没有激活(disabled)．为了激活ROOT，打开文件<br />   <br /> &nbsp;&nbsp;&nbsp; tomcat/conf/server.xml<br />   <br />   然后把<br />   <br /> &nbsp;&nbsp;&nbsp; &lt;!--<br /> &nbsp;&nbsp;&nbsp; &lt;Context path=&quot;&quot; docBase=&quot;ROOT&quot; debug=&quot;0&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp; --&gt;<br />   <br />   的注释去掉，即去掉&lt;!--<span lang="zh-cn">和</span>--&gt;．<br /> &nbsp; </li>
    <li><b>激活Invoker Servlet</b><br />   <br />   即把tomcat/conf/web.xml中的下列字段的注释去掉<br />   <br /> &nbsp;&nbsp;&nbsp; &lt;servlet-mapping&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;invoker&lt;/servlet-name&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/servlet/*&lt;/url-pattern&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/servlet-mapping&gt;<br /> 　</li>
    <li><b>设置Port</b><br />   Tomcat缺省的Port number是8080．由于Tomcat是一个独立的(Standalone) Web Server，它可以不用Apache而独立工作，所以你可以不安装Apache，这样你可以把Tomcat设置在Port    80．这样你就可以在URL中省略:8080.<span lang="zh-cn"> </span>打开文件tomcat/conf/server.xml，找到如下的字段：<br />   <br /> &nbsp;&nbsp;&nbsp; &lt;Connector<span lang="zh-cn"> </span>className=&quot;org.apache.coyote.tomcat4.CoyoteConnector&quot;<br /> &nbsp;&nbsp;&nbsp; <b>port=&quot;8080&quot;</b> ...<br /> &nbsp;&nbsp;&nbsp; ... /&gt;<br />   <br />   然后把8080改成80即可．<br /> 　</li>
    <li><b>创建temp子目录</b><br />   在/opt/tomcat/目录下建立一个temp子目录<br /> &nbsp;&nbsp;&nbsp; mkdir temp</li>
</ul>
<p><b>４．启动Tomcat</b></p>
<p>安装完后，重新启动计算机，以使JAVA_HOME和TOMCAT_HOME的设置生效．然后到</p>
<p>&nbsp;&nbsp;&nbsp; /opt/tomcat/bin</p>
<p>下，运行命令：</p>
<p>&nbsp;&nbsp;&nbsp; ./startup.sh</p>
<p>正常情况下可以见到如下的信息：</p>
<p>&nbsp;&nbsp;&nbsp; Using CATALINA_BASE:&nbsp;&nbsp; /opt/tomcat<br /> &nbsp;&nbsp;&nbsp; Using CATALINA_HOME:&nbsp;&nbsp; /opt/tomcat<br /> &nbsp;&nbsp;&nbsp; Using CATALINA_TEMDIR: /opt/tomcat/temp<br /> &nbsp;&nbsp;&nbsp; Using JAVA_HOME:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /opt/jdk1.4</p>
<p>然后用浏览器打开如下的网页</p>
<p>&nbsp;&nbsp;&nbsp; <a href="http://localhost/"> http://localhost/</a></p>
<p>或者</p>
<p>&nbsp;&nbsp;&nbsp;  <a href="http://localhost:8080/">http://localhost:8080/</a>&nbsp;&nbsp;&nbsp;&nbsp; （如果没有把Port number改为８０）</p>
<p>如果你见到Tomcat的网页（index.jsp），证明Tomcat安装成功，并已经启动．</p>
<p>如要关闭Tomcat，在/opt/tomcat/bin下运行下面的命令即可</p>
<p>&nbsp;&nbsp;&nbsp; ./shutdown.sh</p>
<p><b>5. 注册你自己的项目（Project）</b></p>
<p>假设你有一个自己的JSP项目，他应该安装在下面的目录下：</p>
<p>&nbsp;&nbsp;&nbsp; /opt/tomcat/webapps/myproject</p>
<p>你必须在tomcat/conf/server.xml中加入一行</p>
<p>&nbsp;&nbsp;&nbsp; &lt;Context path=&quot;/myproject&quot; docBase=&quot;myproject&quot; debug=&quot;0&quot;/&gt;</p>
<p>在浏览器中对应的地址为：</p>
<p>&nbsp;&nbsp;&nbsp;  <a href="http://localhost/myproject">http://localhost/myproject</a></p>
<p>&nbsp;</p>
<p><span class="Title">如果想看TOMCAT的控制台信息，命令如下：</span></p>
<p>进入tomcat/logs/文件夹下<br />  键入指令：tail -f catalina.out<br />  <br />  这样就可以与本地电脑一样查看TOMCAT的控制台了。 </p>
<p><a href="http://localhost/myproject"><br /></a></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=43" /> 
	  <id>http://blog.mmgg.net/default.asp?id=43</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[常用正则表达式]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=8" label="JavaScript" /> 
	  <updated>2008-08-21T18:03:49+08:00</updated>
	  <published>2008-08-21T18:03:49+08:00</published>
		  <summary type="html"><![CDATA[1、非负整数：^\d+$ <br/><br/>2、正整数：^[0-9]*[1-9][0-9]*$ <br/><br/>3、非正整数：^((-\d+)|(0+))$ <br/><br/>4、负整数：^-[0-9]*[1-9][0-9]*$ <br/><br/>5、整数：^-?\d+$ <br/><br/>6、非负浮点数：^\d+(\.\d+)?$ <br/><br/>7、正浮点数：^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ <br/><br/>8、非正浮点数：^((-\d+\.\d+)?)|(0+(\.0+)?))$ <br/><br/>9、负浮点数：^(-((正浮点数正则式)))$ <br/><br/>10、英文字符串：^[A-Za-z]+$ <br/><br/>11、英文大写串：^[A-Z]+$ <br/><br/>12、英文小写串：^[a-z]+$ <br/><br/>13、英文字符数字串：^[A-Za-z0-9]+$ <br/><br/>14、英数字加下划线串：^\w+$ <br/><br/>15、E-mail地址：^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ <br/><br/>16、URL：^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ <br/>或：^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\&#39;:+!]*([^&lt;&gt;\&#34;\&#34;])*$<br/><br/>17、邮政编码：^[1-9]\d{5}$<br/><br/>18、中文：^[\u0391-\uFFE5]+$<br/><br/>19、电话号码：^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$<br/><br/>20、手机号码：^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$<br/><br/>21、双字节字符(包括汉字在内)：^\x00-\xff<br/><br/>22、匹配首尾空格：(^\s*)|(\s*$)（像vbscript那样的trim函数）<br/><br/>23、匹配HTML标记：&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt; <br/><br/>24、匹配空行：\n[\s| ]*\r<br/><br/>25、提取信息中的网络链接：(h|H)(r|R)(e|E)(f|F)&nbsp;&nbsp;*=&nbsp;&nbsp;*(&#39;|&#34;)?(\w|\\|\/|\.)+(&#39;|&#34;|&nbsp;&nbsp;*|&gt;)?<br/><br/>26、提取信息中的邮件地址：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br/><br/>27、提取信息中的图片链接：(s|S)(r|R)(c|C)&nbsp;&nbsp;*=&nbsp;&nbsp;*(&#39;|&#34;)?(\w|\\|\/|\.)+(&#39;|&#34;|&nbsp;&nbsp;*|&gt;)?<br/><br/>28、提取信息中的IP地址：(\d+)\.(\d+)\.(\d+)\.(\d+)<br/><br/>29、提取信息中的中国手机号码：(86)*0*13\d{9}<br/><br/>30、提取信息中的中国固定电话号码：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}<br/><br/>31、提取信息中的中国电话号码（包括移动和固定电话）：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}<br/><br/>32、提取信息中的中国邮政编码：[1-9]{1}(\d+){5}<br/><br/>33、提取信息中的浮点数（即小数）：(-?\d*)\.?\d+<br/><br/>34、提取信息中的任何数字 ：(-?\d*)(\.\d+)?&nbsp;&nbsp;<br/><br/>35、IP：(\d+)\.(\d+)\.(\d+)\.(\d+)<br/><br/>36、电话区号：/^0\d{2,3}$/<br/><br/>37、腾讯QQ号：^[1-9]*[1-9][0-9]*$<br/><br/>38、帐号(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br/><br/>39、中文、英文、数字及下划线：^[\u4e00-\u9fa5_a-zA-Z0-9]+$ <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=42" /> 
	  <id>http://blog.mmgg.net/default.asp?id=42</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Ajax相关函数]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=8" label="JavaScript" /> 
	  <updated>2008-08-03T12:18:45+08:00</updated>
	  <published>2008-08-03T12:18:45+08:00</published>
		  <summary type="html"><![CDATA[//@desc&nbsp;&nbsp;&nbsp;&nbsp;load a page(some html) via xmlhttp,and display on a container<br/>//@param&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the url of the page will load,such as &#34;index.php&#34;<br/>//@param&nbsp;&nbsp; request&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request string to be sent,such as &#34;action=1&amp;name=surfchen&#34;<br/>//@param&nbsp;&nbsp; method&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POST o&#114; GET<br/>//@param&nbsp;&nbsp; container&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the container object,the loaded page will display in container.innerHTML<br/>//@usage <br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajaxLoadPage(&#39;index.php&#39;,&#39;action=1&amp;name=surfchen&#39;,&#39;POST&#39;,document.getElementById(&#39;my_home&#39;))<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; suppose there is a html element of &#34;my_home&#34; id,such as &#34;&lt;span id=&#39;my_home&#39;&gt;&lt;/span&gt;&#34; <br/>//@author&nbsp;&nbsp;SurfChen &lt;surfchen@gmail.com&gt;<br/>//@url&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.surfchen.org/" target="_blank">http://www.surfchen.org/</a><br/>//@license <a href="http://www.gnu.org/licenses/gpl.html" target="_blank">http://www.gnu.org/licenses/gpl.html</a> GPL<br/>function ajaxLoadPage(url,request,method,container)<br/>{<br/>&#160;&#160;&#160;&#160;method=method.toUpperCase();<br/>&#160;&#160;&#160;&#160;var loading_msg=&#39;Loading...&#39;;//the text shows on the container on loading.<br/>&#160;&#160;&#160;&#160;var loader=new XMLHttpRequest;//require Cross-Browser XMLHttpRequest<br/>&#160;&#160;&#160;&#160;if (method==&#39;GET&#39;)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;urls=url.split(&#34;?&#34;);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (urls[1]==&#39;&#39; || typeof urls[1]==&#39;undefined&#39;)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;url=urls[0]+&#34;?&#34;+request;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;url=urls[0]+&#34;?&#34;+urls[1]+&#34;&amp;&#34;+request;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;request=null;//for GET method,loader should send NULL<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;loader.open(method,url,true);<br/>&#160;&#160;&#160;&#160;if (method==&#34;POST&#34;)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;loader.setRequestHeader(&#34;Content-Type&#34;,&#34;application/x-www-form-urlencoded&#34;);<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;loader.onreadystatechange=function(){<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (loader.readyState==1)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;container.innerHTML=loading_msg;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (loader.readyState==4)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;container.innerHTML=loader.responseText;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;loader.send(request);<br/>}<br/>//@desc&nbsp;&nbsp;&nbsp;&nbsp;transform the elements of a form object and their values into request string( such as &#34;action=1&amp;name=surfchen&#34;)<br/>//@param&nbsp;&nbsp; form_obj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the form object<br/>//@usage&nbsp;&nbsp; formToRequestString(document.form1)<br/>//@notice&nbsp;&nbsp;this function can not be used to upload a file.if there is a file input element,the func will take it as a text input.<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as I know,because of the security,in most of the browsers,we can not upload a file via xmlhttp.<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a solution is iframe.<br/>//@author&nbsp;&nbsp;SurfChen &lt;surfchen@gmail.com&gt;<br/>//@url&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.surfchen.org/" target="_blank">http://www.surfchen.org/</a><br/>//@license <a href="http://www.gnu.org/licenses/gpl.html" target="_blank">http://www.gnu.org/licenses/gpl.html</a> GPL<br/>function formToRequestString(form_obj)<br/>{<br/>&#160;&#160;&#160;&#160;var query_string=&#39;&#39;;<br/>&#160;&#160;&#160;&#160;var and=&#39;&#39;;<br/>&#160;&#160;&#160;&#160;//alert(form_obj.length);<br/>&#160;&#160;&#160;&#160;for (i=0;i&lt;form_obj.length ;i++ )<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;e=form_obj[i];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (e.name!=&#39;&#39;)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (e.type==&#39;sel&#101;ct-one&#39;)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;element_value=e.options[e.sel&#101;ctedIndex].value;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else if (e.type==&#39;checkbox&#39; || e.type==&#39;radio&#39;)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (e.checked==false)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;break;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;element_value=e.value;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;element_value=e.value;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;query_string+=and+e.name+&#39;=&#39;+element_value.replace(/\&amp;/g,&#34;%26&#34;);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;and=&#34;&amp;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;return query_string;<br/>}<br/>//@desc&nbsp;&nbsp;&nbsp;&nbsp;no refresh submit(ajax) by using ajaxLoadPage and formToRequestString<br/>//@param&nbsp;&nbsp; form_obj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the form object<br/>//@param&nbsp;&nbsp; container&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the container object,the loaded page will display in container.innerHTML<br/>//@usage&nbsp;&nbsp; ajaxFormSubmit(document.form1,document.getElementById(&#39;my_home&#39;))<br/>//@author&nbsp;&nbsp;SurfChen &lt;surfchen@gmail.com&gt;<br/>//@url&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.surfchen.org/" target="_blank">http://www.surfchen.org/</a><br/>//@license <a href="http://www.gnu.org/licenses/gpl.html" target="_blank">http://www.gnu.org/licenses/gpl.html</a> GPL<br/>function ajaxFormSubmit(form_obj,container)<br/>{<br/>&#160;&#160;&#160;&#160;ajaxLoadPage(form_obj.getAttributeNode(&#34;action&#34;).value,formToRequestString(form_obj),form_obj.method,container)<br/>}]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=41" /> 
	  <id>http://blog.mmgg.net/default.asp?id=41</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[javascript字符串替换所有要替换字符]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=8" label="JavaScript" /> 
	  <updated>2008-05-22T15:52:14+08:00</updated>
	  <published>2008-05-22T15:52:14+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://blog.mmgg.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>//将字母i全部替换成5<br/><br/>&lt;script language=&#34;javascript&#34;&gt;<br/>var txt = &#34;sjfisjfisdjfijsidfjioalfjewofjjgs&#34;;<br/>alert(txt .replace(/i/g,&#34;5&#34;));<br/>&lt;/script&gt;<br/><br/><br/>//只将第一个字母i替换成5<br/><br/>&lt;script language=&#34;javascript&#34;&gt;<br/>var txt = &#34;sjfisjfisdjfijsidfjioalfjewofjjgs&#34;;<br/>alert(txt .replace(&#34;i&#34;,&#34;5&#34;));<br/>&lt;/script&gt;<br/><br/></div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=40" /> 
	  <id>http://blog.mmgg.net/default.asp?id=40</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[httpSessionListener统计在线人数]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=7" label="J2EE" /> 
	  <updated>2008-05-21T13:47:38+08:00</updated>
	  <published>2008-05-21T13:47:38+08:00</published>
		  <summary type="html"><![CDATA[package SessionCount;<br/>import javax.servlet.*;<br/>import javax.servlet.http.*;<br/>public class SessionCounter implements HttpSessionListener {<br/>private static int activeSessions = 0;<br/>public void sessionCr&#101;ated(HttpSessionEvent se) {<br/>activeSessions++;<br/>}<br/>public void sessionDestroyed(HttpSessionEvent se) {<br/>if(activeSessions &gt; 0)<br/>activeSessions--;<br/>}<br/>public static int getActiveSessions() {<br/>return activeSessions;<br/>}<br/>}<br/>　　接着建立online.jsp文件用于显示在线人数<br/><br/>&lt;%@ page import=&#34;SessionCount.SessionCounter&#34; %&gt;<br/>　　在线：<br/><br/>&lt;%= SessionCounter.getActiveSessions() %&gt;<br/>　　然后需要在你的网站的WEB-INF中建立web.xml 文件内容如下：<br/><br/>&lt;!-- Web.xml --&gt;<br/>&lt;?xml version=&#34;1.0&#34; encoding=&#34;ISO-8859-1&#34;?&gt;<br/>&lt;!DOCTYPE web-app<br/>PUBLIC &#34;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&#34;<br/>&#34;<a href="http://java.sun.com/j2ee/dtds/web-app_2.3.dtd" target="_blank">http://java.sun.com/j2ee/dtds/web-app_2.3.dtd</a>&#34;&gt;<br/>&lt;web-app&gt;<br/>&lt;!-- Listeners --&gt;<br/>&lt;listener&gt;<br/>&lt;listener-class&gt;<br/>SessionCount.SessionCounter<br/>&lt;/listener-class&gt;<br/>&lt;/listener&gt;<br/>&lt;/web-app&gt;<br/>　　然后重新启动你的应用服务器，访问online.jsp检查是否显示正确。<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=39" /> 
	  <id>http://blog.mmgg.net/default.asp?id=39</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[JS表单检验]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=8" label="JavaScript" /> 
	  <updated>2008-05-21T13:29:17+08:00</updated>
	  <published>2008-05-21T13:29:17+08:00</published>
		  <summary type="html"><![CDATA[以前对于表单里字段验证，是通过每个JSP写JS函数。感觉太落后。前段时间找到一个好方法。接下来我介绍具体实现<br/>首先是JSP核心代码<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://blog.mmgg.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&lt;script language=&#34;javascript&#34;&gt;<br/>&nbsp;&nbsp; function valid(){<br/> var fields= new Array();<br/> var i=0;<br/>&nbsp;&nbsp;fields[i++] = new Field(&#34;tests1&#34;,&#34;测试不能为空&#34;,true,0,true,25);<br/>&nbsp;&nbsp;fields[i++] = new Field(&#34;test2&#34;,&#34;测试是电子邮件格式&#34;,true,0,true,25); <br/>&nbsp;&nbsp;fields[i++] = new Field(&#34;test3&#34;,&#34;测试是身份证号码&#34;,true,0,true,25);<br/> var flag=checkDocument(fields);<br/> return flag;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&lt;/script&gt;<br/><br/>&lt;form name=&#34;form&#34; action=&#34;test.action&#34; method=&#34;post&#34; onSubmit=&#34;return valid();&#34;&gt;<br/><br/>&lt;table&gt;<br/><br/>&lt;tr&gt;&lt;td&gt;&lt;input type=&#34;text&#34; name=&#34;company.name&#34; id=&#34;test1&#34;&gt;&lt;/td&gt;&lt;/tr&gt; <br/><br/>&lt;tr&gt;&lt;td&gt;&lt;input type=&#34;text&#34; name=&#34;company.email&#34; id=&#34;test2&#34;&gt;&lt;/td&gt;&lt;/tr&gt; <br/><br/>&lt;tr&gt;&lt;td&gt;&lt;input type=&#34;text&#34; name=&#34;company.cer&#34; id=&#34;test3&#34;&gt;&lt;/td&gt;&lt;/tr&gt; <br/><br/>&lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td align=&#34;center&#34; colspan=&#34;6&#34;&gt;&lt;input type=&#34;submit&#34; name=&#34;Submit&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value=&#34;确 认&#34; /&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;button onclick=&#34;javascript:history.back();&#34; class=binput&gt;返回&lt;/button&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br/><br/>&lt;/table&gt;<br/></div></div><br/>封装好的一个JS代码：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://blog.mmgg.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>/**<br/>*检查提交的数据是否符合要求<br/>* fields为自定义的对象<br/>* 符合要求时返回true否则提示并返回假<br/>*/<br/>function checkDocument(fields)<br/>{<br/><br/><br/> var strmsg ;<br/> var i = 0;<br/> var count = fields.length;<br/> var field,name, message, isNull, strtype,isLen,strlength;<br/> var thisform;<br/> strmsg = &#34;&#34;;<br/> <br/> for(i=0; i&lt;count; i++)<br/> {<br/>&nbsp;&nbsp;field = fields;<br/>&nbsp;&nbsp;name=field.name;<br/>&nbsp;&nbsp;message=field.message;<br/>&nbsp;&nbsp;isNull=field.isNull;<br/>&nbsp;&nbsp;strtype=field.strtype;<br/>&nbsp;&nbsp;isLen=field.isLen;<br/>&nbsp;&nbsp;strlength=field.strlength;<br/>&nbsp;&nbsp;thisform=eval(&#34;document.getElementById(&#39;&#34;+name+&#34;&#39;)&#34;);<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;//不允许为空时却为空<br/>&nbsp;&nbsp;if(isNull)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp; if(trim(thisform.value)==&#34;&#34;){<br/>&nbsp;&nbsp;&nbsp;&nbsp;strmsg=strmsg+message+&#34;不能为空\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;//允许为空时，事实为空时给一个缺省的值0<br/>&nbsp;&nbsp;if(trim(thisform.value)==&#34;&#34;) {strtype=0;};<br/><br/>&nbsp;&nbsp;//输入了时判断输入的正确性<br/>&nbsp;&nbsp;switch(strtype){<br/>&nbsp;&nbsp;case 0:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp; }<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;case 1:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp; if(!isFloat(thisform.value)){<br/>&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;一定是数字\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;case 2:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!isFloat(thisform.value)){<br/>&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;一定是数字\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;case 3:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!isPercent(thisform.value)){<br/>&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;一定是百分数\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp; case 4:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!isHZ(thisform.value)){<br/>&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;一定是汉字\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 5:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!notHZ(thisform.value)){<br/>&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;一定不是汉字\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 6:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!isEmail(thisform.value)){<br/>&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;一定是邮件格式\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 7:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 8:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 9:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!isInt(thisform.value)){<br/>&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;一定是整型\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 10:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp; if(!isTime(thisform.value)){<br/>&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;一定是时间\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp; case 11:<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp; //var ss = isHttp(thisform.value);<br/>&nbsp;&nbsp;&nbsp;&nbsp; //thisform.value = ss;<br/>&nbsp;&nbsp;&nbsp;&nbsp; if(!isHttp(thisform.value)){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;网址格式不对，应该如<a href="http://www.szcly.com" target="_blank">http://www.szcly.com</a>\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;}//end switch<br/>&nbsp;&nbsp;if (isLen){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(strlen(thisform.value)&gt;strlength){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strmsg=strmsg+message+&#34;字符串太长,超过&#34;+strlength+&#34;位\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;}<br/> }<br/><br/><br/> if(strmsg!=&#34;&#34;){<br/>&nbsp;&nbsp; alert(strmsg);<br/>&nbsp;&nbsp; return false;<br/> }<br/> else<br/> {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br/> }<br/><br/>}<br/></div></div><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=38" /> 
	  <id>http://blog.mmgg.net/default.asp?id=38</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[客户端静态页面玩分页]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=8" label="JavaScript" /> 
	  <updated>2008-05-16T09:23:02+08:00</updated>
	  <published>2008-05-16T09:23:02+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://blog.mmgg.net/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp64155">
<!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.0 Transitional//EN&#34;>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME=&#34;Generator&#34; CONTENT=&#34;EditPlus&#34;>
<META NAME=&#34;Author&#34; CONTENT=&#34;&#34;>
<META NAME=&#34;Keywords&#34; CONTENT=&#34;&#34;>
<META NAME=&#34;Description&#34; CONTENT=&#34;&#34;>
<style>
* {
 font-size:10.2pt;
 font-family:tahoma;
 line-height:150%;
}
.divContent
{
 border:1px solid red;
 background-color:#FFD2D3;
 width:500px;
 word-break:break-all;
 margin:10px 0px 10px;
 padding:10px;
}
</style>
</HEAD>
<BODY>
header
<div id=&#34;divPagenation&#34;></div>
<div id=&#34;divContent&#34;></div>
footer
<SCRIPT LANGUAGE=&#34;JavaScript&#34;>
<!--
s=&#34;<p>女老师竭力向孩子们证明，学习好功课的重要性。 </p><p>她说：“牛顿坐在树下，眼睛盯着树在思考，这时，有一个苹果落在他的头上，于是他发现了万有引力定律，孩子们，你们想想看，做一位伟大的科学家多么好，多么神气啊，要想做到这一点，就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说：“兴许是这样，可是，假如他坐在学校里，埋头书本，那他就什么也发现不了啦。” </p><p>女老师竭力向孩子们证明，学习好功课的重要性。 </p><p>她说：“牛顿坐在树下，眼睛盯着树在思考，这时，有一个苹果落在他的头上，于是他发现了万有引力定律，孩子们，你们想想看，做一位伟大的科学家多么好，多么神气啊，要想做到这一点，就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说：“兴许是这样，可是，假如他坐在学校里，埋头书本，那他就什么也发现不了啦。” </p><p>女老师竭力向孩子们证明，学习好功课的重要性。 </p><p>她说：“牛顿坐在树下，眼睛盯着树在思考，这时，有一个苹果落在他的头上，于是他发现了万有引力定律，孩子们，你们想想看，做一位伟大的科学家多么好，多么神气啊，要想做到这一点，就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说：“兴许是这样，可是，假如他坐在学校里，埋头书本，那他就什么也发现不了啦。” </p><p>女老师竭力向孩子们证明，学习好功课的重要性。 </p><p>她说：“牛顿坐在树下，眼睛盯着树在思考，这时，有一个苹果落在他的头上，于是他发现了万有引力定律，孩子们，你们想想看，做一位伟大的科学家多么好，多么神气啊，要想做到这一点，就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说：“兴许是这样，可是，假如他坐在学校里，埋头书本，那他就什么也发现不了啦。” </p><p>女老师竭力向孩子们证明，学习好功课的重要性。 </p><p>她说：“牛顿坐在树下，眼睛盯着树在思考，这时，有一个苹果落在他的头上，于是他发现了万有引力定律，孩子们，你们想想看，做一位伟大的科学家多么好，多么神气啊，要想做到这一点，就必须好好学习。” </p><p>“班上一个调皮鬼对此并不满意。他说：“兴许是这样，可是，假如他坐在学校里，埋头书本，那他就什么也发现不了啦。” </p>&#34;;
function DHTMLpagenation(content) { with (this)
{
 // client static html file pagenation
 this.content=content;
 this.contentLength=content.length;
 this.pageSizeCount;
 this.perpageLength=100; //default perpage byte length.
 this.currentPage=1;
 //this.regularExp=/.+[\?\&amp;]{1}page=(\d+)/;
 this.regularExp=/\d+/;
 this.divDisplayContent;
 this.contentStyle=null;
 this.strDisplayContent=&#34;&#34;;
 this.divDisplayPagenation;
 this.strDisplayPagenation=&#34;&#34;;
 
 arguments.length==2?perpageLength=arguments[1]:'';
 try {
  divExecuteTime=document.cr&#101;ateElement(&#34;DIV&#34;);
  document.body.appendChild(divExecuteTime);
 }
 catch(e)
 {
 }
 if(document.getElementById(&#34;divContent&#34;))
 {
  divDisplayContent=document.getElementById(&#34;divContent&#34;);
 }
 else
 {
  try
  {
   divDisplayContent=document.cr&#101;ateElement(&#34;DIV&#34;);
   divDisplayContent.id=&#34;divContent&#34;;
   document.body.appendChild(divDisplayContent);
  }
  catch(e)
  {
   return false;
  }
 }
 if(document.getElementById(&#34;divPagenation&#34;))
 {
  divDisplayPagenation=document.getElementById(&#34;divPagenation&#34;);
 }
 else
 {
  try
  {
   divDisplayPagenation=document.cr&#101;ateElement(&#34;DIV&#34;);
   divDisplayPagenation.id=&#34;divPagenation&#34;;
   document.body.appendChild(divDisplayPagenation);
  }
  catch(e)
  {
   return false;
  }
 }
 DHTMLpagenation.initialize();
 return this;
 
}};
DHTMLpagenation.initialize=function() { with (this)
{
 divDisplayContent.className=contentStyle!=null?contentStyle:&#34;divContent&#34;;
 if(contentLength<=perpageLength)
 {
  strDisplayContent=content;
  divDisplayContent.innerHTML=strDisplayContent;
  return null;
 }
 pageSizeCount=Math.ceil((contentLength/perpageLength));
 DHTMLpagenation.goto(currentPage);
 DHTMLpagenation.displayContent();
}};
DHTMLpagenation.displayPage=function() { with (this)
{
 strDisplayPagenation=&#34;分页：&#34;;
 if(currentPage&amp;&amp;currentPage!=1)
  strDisplayPagenation+='<a href=&#34;javascript:void(0)&#34; onclick=&#34;DHTMLpagenation.previous()&#34;>上一页</a>&amp;nbsp;&amp;nbsp;';
 else
  strDisplayPagenation+=&#34;上一页&amp;nbsp;&amp;nbsp;&#34;;
 for(var i=1;i<=pageSizeCount;i++)
 {
  if(i!=currentPage)
   strDisplayPagenation+='<a href=&#34;javascript:void(0)&#34; onclick=&#34;DHTMLpagenation.goto('+i+');&#34;>'+i+'</a>&amp;nbsp;&amp;nbsp;';
  else
   strDisplayPagenation+=i+&#34;&amp;nbsp;&amp;nbsp;&#34;;
 }
 if(currentPage&amp;&amp;currentPage!=pageSizeCount)
  strDisplayPagenation+='<a href=&#34;javascript:void(0)&#34; onclick=&#34;DHTMLpagenation.next()&#34;>下一页</a>&amp;nbsp;&amp;nbsp;';
 else
  strDisplayPagenation+=&#34;下一页&amp;nbsp;&amp;nbsp;&#34;;
 strDisplayPagenation+=&#34;共 &#34; + pageSizeCount + &#34; 页，每页&#34; + perpageLength + &#34; 字符，调整字符数：<input type='text' value='&#34;+perpageLength+&#34;' id='ctlPerpageLength'><input type='button' value='确定' onclick='DHTMLpagenation.change(document.getElementById(\&#34;ctlPerpageLength\&#34;).value);'>&#34;;
 divDisplayPagenation.innerHTML=strDisplayPagenation;
}};
DHTMLpagenation.previous=function() { with(this)
{
 DHTMLpagenation.goto(currentPage-1);
}};
DHTMLpagenation.next=function() { with(this)
{
 DHTMLpagenation.goto(currentPage+1);
}};
DHTMLpagenation.goto=function(iCurrentPage) { with (this)
{
 startime=new Date();
 if(regularExp.test(iCurrentPage))
 {
  currentPage=iCurrentPage;
  strDisplayContent=content.substr((currentPage-1)*perpageLength,perpageLength);
 }
 else
 {
  alert(&#34;page parameter error!&#34;);
 }
 DHTMLpagenation.displayPage();
 DHTMLpagenation.displayContent();
}};
DHTMLpagenation.displayContent=function() { with (this)
{
 divDisplayContent.innerHTML=strDisplayContent;
}};
DHTMLpagenation.change=function(iPerpageLength) { with(this)
{
 if(regularExp.test(iPerpageLength))
 {
  DHTMLpagenation.perpageLength=iPerpageLength;
  DHTMLpagenation.currentPage=1;
  DHTMLpagenation.initialize();
 }
 else
 {
  alert(&#34;请输入数字&#34;);
 }
}};
// method
// DHTMLpagenation(strContent,perpageLength)
DHTMLpagenation(s,100);
//-->
</SCRIPT>
</BODY>
</HTML> 
</TEXTAREA><br/><INPUT onclick="runEx('temp64155')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp64155')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=37" /> 
	  <id>http://blog.mmgg.net/default.asp?id=37</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[让网页自动穿上外套]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=8" label="JavaScript" /> 
	  <updated>2008-05-13T15:09:58+08:00</updated>
	  <published>2008-05-13T15:09:58+08:00</published>
		  <summary type="html"><![CDATA[进行网页设计时，许多网页都需要相同的边框图案和导航条，FrontPage给我们提供了共享边框方便设计，但是，这样也不太方便，毕竟每个网页都添加了相同的内容，无形中网页增大了，当然，对于动态网页，这不是问题，但是，如果是静态的呢？<br/><br/>怎样可以克服这个缺点，通过框架可以实现这些的，只是，框架又引来了另一个麻烦，就是如果直接打开框架内部网页，脱去了华丽的外套，是不是显得很单调，这里我们找一种好的方法，让脱去外套的网页自动穿上外套，你想到了吗？如果你对这个议题不感兴趣，你可以走开了，下面我们详细讨论。<br/><br/>在框架网页中，通常使用src参数指定框架内的网页地址，我们要做的就是，当直接打开这个地址时，让它自动监测然后再穿上外套，当然，首先要在网页内添加检测代码，如下：<br/><br/>&lt;script&gt;<br/>if(top.location==self.location)<br/>{<br/>&nbsp;&nbsp;top.location=&#34;index.htm?&#34;+self.location;<br/>}<br/>&lt;/script&gt;<br/><br/>就这么简单，注意，index.htm是外套网页地址，接下来要做的就是，怎样让外套网页自动添加这部分内容，我们要在外套网页中解析网页地址，找到参数，然后将框架src参数指向该参数就行了，代码如下：<br/><br/>&lt;script&gt;<br/>document.write(&#39;&lt;iframe id=&#34;mid&#34; name=&#34;mid&#34; width=&#34;100%&#34; height=&#34;100%&#34; frameborder=&#34;0&#34; scrolling=&#34;auto&#34;&#39;)<br/>var n=self.location.href.indexOf(&#34;?&#34;)//查看是否包含参数<br/>if(n&gt;0)//存在参数<br/>{<br/>//指向参数<br/>document.write(&#34; src=&#34;+self.location.href.substr(n+1))<br/>}<br/>document.write(&#39;&gt;&lt;/iframe&gt;&#39;)<br/>&lt;/script&gt;<br/><br/>这里使用iframe框架，具体应用可在我的网站ggg82.126.com上看到.<br/><br/>你可以打开该页的地址<a href="http://ggg82.go.nease.net/document/autotake.htm" target="_blank">http://ggg82.go.nease.net/document/autotake.htm</a>看一下效果，如有不懂的地方，也可以联系我。有什么好的看法，欢迎与我讨论．<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=36" /> 
	  <id>http://blog.mmgg.net/default.asp?id=36</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[HTML 中小 meta 的大作用]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=5" label="JSP" /> 
	  <updated>2008-05-13T15:08:49+08:00</updated>
	  <published>2008-05-13T15:08:49+08:00</published>
		  <summary type="html"><![CDATA[meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的&lt;head&gt;与&lt;/head&gt;中，meta 标签的用处很多。meta 的属性有两种：name和http-equiv。name属性主要用于描述网页，对应于content（网页内容），以便于搜索引擎机器人查找、分类（目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类）。这其中最重要的是description（站点在搜索引擎上的描述）和keywords（分类关键词），所以应该给每页加一个meta值。比较常用的有以下几个： <br/><br/>name 属性 <br/><br/>1、&lt;meta name=&#34;Generator&#34; contect=&#34;&#34;&gt;用以说明生成工具（如Microsoft FrontPage 4.0）等； <br/><br/>2、&lt;meta name=&#34;KEYWords&#34; contect=&#34;&#34;&gt;向搜索引擎说明你的网页的关键词； <br/><br/>3、&lt;meta name=&#34;DEscription&#34; contect=&#34;&#34;&gt;告诉搜索引擎你的站点的主要内容； <br/><br/>4、&lt;meta name=&#34;Author&#34; contect=&#34;你的姓名&#34;&gt;告诉搜索引擎你的站点的制作的作者； <br/><br/>5、&lt;meta name=&#34;Robots&#34; contect= &#34;all|none|index|noindex|follow|nofollow&#34;&gt; <br/><br/>其中的属性说明如下： <br/><br/>设定为all：文件将被检索，且页面上的链接可以被查询； <br/><br/>设定为none：文件将不被检索，且页面上的链接不可以被查询； <br/><br/>设定为index：文件将被检索； <br/><br/>设定为follow：页面上的链接可以被查询； <br/><br/>设定为noindex：文件将不被检索，但页面上的链接可以被查询； <br/><br/>设定为nofollow：文件将不被检索，页面上的链接可以被查询。 <br/><br/>http-equiv属性 <br/><br/>1、&lt;meta http-equiv=&#34;Content-Type&#34; contect=&#34;text/html&#34;;charset=gb_2312-80&#34;&gt; <br/><br/>和 &lt;meta http-equiv=&#34;Content-Language&#34; contect=&#34;zh-CN&#34;&gt;用以说明主页制作所使用的文字以及语言； <br/><br/>又如英文是ISO-8859-1字符集，还有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集； <br/><br/>2、&lt;meta http-equiv=&#34;Refresh&#34; contect=&#34;n;url=http://yourlink&#34;&gt;定时让网页在指定的时间n内，跳转到页面<a href="http://yourlink" target="_blank">http://yourlink</a>； <br/><br/>3、&lt;meta http-equiv=&#34;Expires&#34; contect=&#34;Mon,12 May 2001 00:20:00 GMT&#34;&gt;可以用于设定网页的到期时间，一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式； <br/><br/>4、&lt;meta http-equiv=&#34;Pragma&#34; contect=&#34;no-cache&#34;&gt;是用于设定禁止浏览器从本地机的缓存中调阅页面内容，设定后一旦离开网页就无法从Cache中再调出； <br/><br/>5、&lt;meta http-equiv=&#34;set-cookie&#34; contect=&#34;Mon,12 May 2001 00:20:00 GMT&#34;&gt;cookie设定，如果网页过期，存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式； <br/><br/>6、&lt;meta http-equiv=&#34;Pics-label&#34; contect=&#34;&#34;&gt;网页等级评定，在IE的internet选项中有一项内容设置，可以防止浏览一些受限制的网站，而网站的限制级别就是通过meta属性来设置的； <br/><br/>7、&lt;meta http-equiv=&#34;windows-Target&#34; contect=&#34;_top&#34;&gt;强制页面在当前窗口中以独立页面显示，可以防止自己的网页被别人当作一个frame页调用； <br/><br/>8、&lt;meta http-equiv=&#34;Page-Enter&#34; contect=&#34;revealTrans(duration=10,transtion= 50)&#34;&gt;和&lt;meta http-equiv=&#34;Page-Exit&#34; contect=&#34;revealTrans(duration=20，transtion=6)&#34;&gt;设定进入和离开页面时的特殊效果，这个功能即FrontPage中的“格式/网页过渡”，不过所加的页面不能够是一个frame页面。 <br/><br/>以上是常用的几个meta属性，有个人主页的朋友不妨在你的主页中加上它，效果可是不一样的哦：）。<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=35" /> 
	  <id>http://blog.mmgg.net/default.asp?id=35</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[打开浏览器窗口最大化的效果]]></title>
	  <author>
		 <name>Fly</name>
		 <uri>http://blog.mmgg.net/</uri>
		 <email>Fly@MMGG.NET</email>
	  </author>
	  <category term="" scheme="http://blog.mmgg.net/default.asp?cateID=8" label="JavaScript" /> 
	  <updated>2008-05-12T10:52:22+08:00</updated>
	  <published>2008-05-12T10:52:22+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://blog.mmgg.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&lt;SCRIPT LANGUAGE=&#34;javascript&#34;&gt;<br/>function winSizer(){<br/>&#160;&#160;&#160;&#160;windowWidth = window.screen.availWidth;<br/>&#160;&#160;&#160;&#160;windowHeight = window.screen.availHeight;<br/>&#160;&#160;&#160;&#160;window.moveTo(0,0);<br/>&#160;&#160;&#160;&#160;window.resizeTo(windowWidth,windowHeight);<br/>}<br/>&lt;/SCRIPT&gt;<br/></div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.mmgg.net/default.asp?id=34" /> 
	  <id>http://blog.mmgg.net/default.asp?id=34</id> 
  </entry>	
		
</feed>