﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-花</title><link>http://www.blogjava.net/hua/</link><description>即使世界明天毁灭，我也要在今天种下我的葡萄树。 </description><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 06:28:21 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 06:28:21 GMT</pubDate><ttl>60</ttl><item><title>ANT 下载,ant的配法 </title><link>http://www.blogjava.net/hua/archive/2007/09/18/146061.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Tue, 18 Sep 2007 01:44:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/09/18/146061.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/146061.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/09/18/146061.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/146061.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/146061.html</trackback:ping><description><![CDATA[<p>下载http://www.apache.org/dist/ant/binaries下的apache-ant-1.6.1-bin.zip <br />
接压安装。 <br />
<br />
ant的配法： <br />
1。解压ant的包到本地目录。 <br />
2。在环境变量中设置ANT_HOME，值为你的安装目录。 <br />
3。在环境变量中设置JAVA_HOME，值为你的jdk安装目录。 <br />
4。把ANT_HOME/bin加到你系统的path目录中去。 </p>
<p>SET ANT_HOME=D:\jakarta-ant-1.5.1 //注意是Ant的安装目录，不是bin子目录 <br />
SET PATH=%PATH%;%ANT_HOME%\bin; </p>
<p><br />
在cmd模式下输入 ant -version回车，看到输出说明配置成功。 </p>
<img src ="http://www.blogjava.net/hua/aggbug/146061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-09-18 09:44 <a href="http://www.blogjava.net/hua/archive/2007/09/18/146061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发JSP&amp;Servlet </title><link>http://www.blogjava.net/hua/archive/2007/07/02/127470.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Mon, 02 Jul 2007 03:44:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/07/02/127470.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/127470.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/07/02/127470.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/127470.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/127470.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 开发JSP&amp;Servlet &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;终于有空可以闲下来了，前2个星期忙着写代码。在开发过程中，因为不懂的东西太多，所以这段时间在不停的恶补，忙的连看美女的时间都没。就&nbsp;趁着今天夜黑风高之际，我就继续写点把。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;介绍下我的开发工具是：eclipse...&nbsp;&nbsp;<a href='http://www.blogjava.net/hua/archive/2007/07/02/127470.html'>阅读全文</a><img src ="http://www.blogjava.net/hua/aggbug/127470.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-07-02 11:44 <a href="http://www.blogjava.net/hua/archive/2007/07/02/127470.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Proxool连接池</title><link>http://www.blogjava.net/hua/archive/2007/05/21/118888.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Mon, 21 May 2007 07:25:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/05/21/118888.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/118888.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/05/21/118888.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/118888.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/118888.html</trackback:ping><description><![CDATA[<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Proxool连接池是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池，最为关键的是这个连接池提供监控的功能，方便易用，便于发现连接泄漏的情况。开源项目地址是：<a href="http://proxool.sourceforge.net/"><br><u><font color=#0000ff>http://proxool.sourceforge.net/</font></u></a><br><br>配置连接池比较的简单：<br>1、将下载的包解开，从包中的lib目录下将proxool-xxx.jar(xxx随着不同的版本号变化)加入你的工程中。<br>2、配置数据源：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在web-info下建立文件：proxool.xml，文件内容如下：<br><font style="BACKGROUND-COLOR: #d3d3d3"><font size=2>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;something-else-entirely&gt;<br>&nbsp; &lt;proxool&gt;<br>&nbsp;&nbsp;&nbsp; &lt;alias&gt;Develop&lt;/alias&gt;<br>&nbsp;&nbsp;&nbsp; &lt;driver-url&gt;jdbc:mysql://localhost/kuanxue&lt;/driver-url&gt;<br>&nbsp;&nbsp;&nbsp; &lt;driver-class&gt;com.mysql.jdbc.Driver&lt;/driver-class&gt;<br>&nbsp;&nbsp;&nbsp; &lt;driver-properties&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="user" value="root"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="password" value=""/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="useUnicode" value="true"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="characterEncoding" value="GBK"/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/driver-properties&gt;<br>&nbsp;&nbsp;&nbsp; &lt;maximum-connection-count&gt;500&lt;/maximum-connection-count&gt;<br>&nbsp;&nbsp;&nbsp; &lt;house-keeping-test-sql&gt;select CURRENT_DATE&lt;/house-keeping-test-sql&gt;<br>&nbsp; &lt;/proxool&gt;<br>&nbsp;&lt;/something-else-entirely&gt;<br></font><br><font style="BACKGROUND-COLOR: #ffffff">3、配置web.xml<br>在web.xml中增加：<br><font style="BACKGROUND-COLOR: #d3d3d3" size=2>&lt;!--&nbsp;配置初始化servlet,在web容器加载的时候自动加载配置文件，如果不是web程序，这个部分就需要通过开发接口来初始化了 --&gt;<br>&lt;servlet&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;proxoolInitialServlet&lt;/servlet-name&gt;<br>&nbsp;&lt;servlet-class&gt;org.logicalcobwebs.proxool.configuration.ServletConfigurator&lt;/servlet-class&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;xmlFile&lt;/param-name&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;WEB-INF/proxool.xml&lt;/param-value&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br>&nbsp;&nbsp; &lt;/servlet&gt;<br>&lt;!--配置监控servlet,其实如果不想监控的话，可以不配--&gt;<br>&nbsp;&nbsp; &lt;servlet&gt;<br>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;dbpoolAdmin&lt;/servlet-name&gt;<br>&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;org.logicalcobwebs.proxool.admin.servlet.AdminServlet&lt;/servlet-class&gt;<br>&nbsp; &lt;/servlet&gt;<br>&nbsp;&nbsp; &lt;servlet-mapping&gt;<br>&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;dbpoolAdmin&lt;/servlet-name&gt;<br>&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/dbpool&lt;/url-pattern&gt;<br>&nbsp; &lt;/servlet-mapping&gt;<br></font><br></font></font><font style="BACKGROUND-COLOR: #ffffff">4、在程序中调用<br>一般我将获取connection的行为封装为一个工厂模式，便于多种情况的切换，以下是其中proxool数据源的getConnection方法的实现：<br><br></font><font style="BACKGROUND-COLOR: #d3d3d3" size=2>public Connection getConnection() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return DriverManager.getConnection("proxool.Develop");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }catch(Exception ex){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; }<br><br><font style="BACKGROUND-COLOR: #ffffff">5、应用开发：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在实际的应用中，我们可能需要更多的功能，比如监控功能不够强大，权限不好控制，我们希望能够编写出更强大的功能，比如杀死一些大的查询语句等，记录各种查询语句占用的时间，这就需要对开发接口进行进一步的研究了。<br></font></font>
<img src ="http://www.blogjava.net/hua/aggbug/118888.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-05-21 15:25 <a href="http://www.blogjava.net/hua/archive/2007/05/21/118888.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>window.showModalDialog 简介</title><link>http://www.blogjava.net/hua/archive/2007/04/28/114250.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Sat, 28 Apr 2007 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/04/28/114250.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/114250.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/04/28/114250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/114250.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/114250.html</trackback:ping><description><![CDATA[基本介绍：<br>showModalDialog() (IE 4+ 支持)<br>showModelessDialog() (IE 5+ 支持)<br>window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。<br>window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。<br><br>使用方法：
<div class=code>vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])<br>vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])</div>
<br>参数说明：<br>sURL--<br>必选参数，类型：字符串。用来指定对话框要显示的文档的URL。<br>vArguments--<br>可选参数，类型：变体。用来向对话框传递参数。传递的参数类型不限，包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。<br>sFeatures--<br>可选参数，类型：字符串。用来描述对话框的外观等信息，可以使用以下的一个或几个，用分号&#8220;;&#8221;隔开。<br>1.dialogHeight :对话框高度，不小于１００px，ＩＥ４中dialogHeight 和 dialogWidth 默认的单位是em，而ＩＥ５中是px，为方便其见，在定义modal方式的对话框时，用px做单位。<br>2.dialogWidth: 对话框宽度。<br>3.dialogLeft: 离屏幕左的距离。<br>4.dialogTop: 离屏幕上的距离。<br>5.center: {yes | no | 1 | 0 }：窗口是否居中，默认yes，但仍可以指定高度和宽度。<br>6.help: {yes | no | 1 | 0 }：是否显示帮助按钮，默认yes。<br>7.resizable: {yes | no | 1 | 0 } ［ＩＥ５＋］：是否可被改变大小。默认no。<br>8.status: {yes | no | 1 | 0 } ［IE5+］：是否显示状态栏。默认为yes[ Modeless]或no[Modal]。<br>9.scroll:{ yes | no | 1 | 0 | on | off }：指明对话框是否显示滚动条。默认为yes。<br>下面几个属性是用在HTA中的，在一般的网页中一般不使用。<br>10.dialogHide:{ yes | no | 1 | 0 | on | off }：在打印或者打印预览时对话框是否隐藏。默认为no。<br>11.edge:{ sunken | raised }：指明对话框的边框样式。默认为raised。<br>12.unadorned:{ yes | no | 1 | 0 | on | off }：默认为no。<br><br>参数传递：<br>1.要想对话框传递参数，是通过vArguments来进行传递的。类型不限制，对于字符串类型，最大为4096个字符。也可以传递对象，例如：<br>-------------------------------<br>parent.htm
<div class=code>&lt;script&gt;<br>var obj = new Object();<br>obj.name="pin7";<br>window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");<br>&lt;/script&gt;<br>modal.htm<br>&lt;script&gt;<br>var obj = window.dialogArguments<br>alert("您传递的参数为：" + obj.name)<br>&lt;/script&gt;</div>
-------------------------------<br>2.可以通过window.returnValue向打开对话框的窗口返回信息，当然也可以是对象。例如：<br>------------------------------<br>parent.htm
<div class=code>&lt;script&gt;<br>str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");<br>alert(str);<br>&lt;/script&gt;<br>modal.htm<br>&lt;script&gt;<br>window.returnValue="<a href="http://www.pin7.cn/">http://www.pin7.cn</a>";<br>&lt;/script&gt;</div>
<img src ="http://www.blogjava.net/hua/aggbug/114250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-04-28 09:29 <a href="http://www.blogjava.net/hua/archive/2007/04/28/114250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Meta标签详解 [转]</title><link>http://www.blogjava.net/hua/archive/2007/04/28/114242.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Sat, 28 Apr 2007 01:14:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/04/28/114242.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/114242.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/04/28/114242.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/114242.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/114242.html</trackback:ping><description><![CDATA[Meta标签详解&nbsp;[转]<br><br>Meta标签详解<br>　　引言&nbsp;<br>　　您的个人网站即使做得再精彩，在&#8220;浩瀚如海&#8221;的网络空间中，也如一叶扁舟不易为人发现，如何推广<br>个人网站，人们首先想到的方法无外乎以下几种：　　<br>　　●　在搜索引擎中登录自己的个人网站　　<br>　　●　在知名网站加入你个人网站的链接&nbsp;<br>　　●　在论坛中发帖子宣传你的个人网站&nbsp;<br>　　很多人却忽视了HTML标签META的强大功效，一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性，有兴趣吗，谁我来重新认识一下META标签吧！&nbsp;　　META标签是HTML语言HEAD区的一个辅助性标签，它位于HTML文档头部的&lt;HEAD&gt;标记和&lt;TITLE&gt;标记之间，它提供用户不可见的信息。meta标签通常用来为搜索引擎robots定义页面主题，或者是定义用户浏览器上的cookie；它可以用于鉴别作者，设定页面格式，标注内容提要和关键字；还可以设置页面使其可以根据你定义的时间间隔刷新自己,以及设置RASC内容等级，等等。&nbsp;<br><br>　　详细介绍&nbsp;<br>　　下面介绍一些有关&nbsp;标记的例子及解释。&nbsp;<br>　　META标签分两大部分：HTTP标题信息(HTTP-EQUIV)和页面描述信息(NAME)。&nbsp;<br><br>　　★HTTP-EQUIV&nbsp;<br>　　HTTP-EQUIV类似于HTTP的头部协议，它回应给浏览器一些有用的信息，以帮助正确和精确地显示网页内容。常用的HTTP-EQUIV类型有：&nbsp;<br><br>　　1、Content-Type和Content-Language&nbsp;(显示字符集的设定)&nbsp;<br>　　说明：设定页面使用的字符集，用以说明主页制作所使用的文字已经语言，浏览器会根据此来调用相应的字符集显示page内容。&nbsp;<br>　　用法：&lt;Meta&nbsp;http-equiv="Content-Type"&nbsp;Content="text/html;&nbsp;Charset=gb2312"&gt;<br>　　　　　　&lt;Meta&nbsp;http-equiv="Content-Language"&nbsp;Content="zh-CN"&gt;&nbsp;<br>　　注意：　该META标签定义了HTML页面所使用的字符集为GB2132，就是国标汉字码。如果将其中的&#8220;charset=GB2312&#8221;替换成&#8220;BIG5&#8221;，则该页面所用的字符集就是繁体中文Big5码。当你浏览一些国外的站点时，IE浏览器会提示你要正确显示该页面需要下载xx语支持。这个功能就是通过读取HTML页面META标签的Content-Type属性而得知需要使用哪种字符集显示该页面的。如果系统里没有装相应的字符集，则IE就提示下载。其他的语言也对应不同的charset，比如日文的字符集是&#8220;iso-2022-jp&nbsp;&#8221;，韩文的是&#8220;ks_c_5601&#8221;。<br>　　　　　　<br>　　Content-Type的Content还可以是：text/xml等文档类型；<br>　　Charset选项：ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii,&nbsp;x-mac-roman,&nbsp;iso-8859-2,&nbsp;x-mac-ce,&nbsp;iso-2022-jp,&nbsp;x-sjis,&nbsp;x-euc-jp,euc-kr,&nbsp;iso-2022-kr,&nbsp;gb2312,&nbsp;gb_2312-80,&nbsp;x-euc-tw,&nbsp;x-cns11643-1,x-cns11643-2等字符集；Content-Language的Content还可以是：EN、FR等语言代码。&nbsp;<br>　　2、Refresh&nbsp;(刷新)&nbsp;<br>　　　说明：让网页多长时间（秒）刷新自己，或在多长时间后让网页自动链接到其它网页。<br>　　　用法：&lt;Meta&nbsp;http-equiv="Refresh"&nbsp;Content="30"&gt;<br>　　　　　　&lt;Meta&nbsp;http-equiv="Refresh"&nbsp;Content="5;&nbsp;Url=<img alt=::URL:: hspace=2 src="http://www.blogcn.com/images/aurl.gif" align=absBottom border=0><a href='http://www.xia8.net">/' target=_blank><u><font color=#0000ff>http://www.xia8.net"&gt;</font></u></a> <br>　　　注意：其中的5是指停留5秒钟后自动刷新到URL网址。&nbsp;<br>　　3、Expires&nbsp;(期限)&nbsp;<br>　　　说明：指定网页在缓存中的过期时间，一旦网页过期，必须到服务器上重新调阅。<br>　　　用法：&lt;Meta&nbsp;http-equiv="Expires"&nbsp;Content="0"&gt;<br>　　　　　　&lt;Meta&nbsp;http-equiv="Expires"&nbsp;Content="Wed,&nbsp;26&nbsp;Feb&nbsp;1997&nbsp;08:21:57&nbsp;GMT"&gt;<br>　　　注意：必须使用GMT的时间格式，或直接设为0(数字表示多少时间后过期)。&nbsp;<br>　　4、Pragma&nbsp;(cach模式)&nbsp;<br>　　　说明：禁止浏览器从本地机的缓存中调阅页面内容。<br>　　　用法：&lt;Meta&nbsp;http-equiv="Pragma"&nbsp;Content="No-cach"&gt;<br>　　　注意：网页不保存在缓存中，每次访问都刷新页面。这样设定，访问者将无法脱机浏览。&nbsp;<br>　　5、Set-Cookie&nbsp;(cookie设定)&nbsp;<br>　　说明：浏览器访问某个页面时会将它存在缓存中，下次再次访问时就可从缓存中读取，以提高速度。当你希望访问者每次都刷新你广告的图标，或每次都刷新你的计数器，就要禁用缓存了。通常HTML文件没有必要禁用缓存，对于ASP等页面，就可以使用禁用缓存，因为每次看到的页面都是在服务器动态生成的，缓存就失去意义。如果网页过期，那么存盘的cookie将被删除。<br>　　　用法：&lt;Meta&nbsp;http-equiv="Set-Cookie"&nbsp;Content="cookievalue=xxx;&nbsp;expires=Wednesday,<br>　　　　　　&nbsp;21-Oct-98&nbsp;16:14:21&nbsp;GMT;&nbsp;path=/"&gt;<br>　　　注意：必须使用GMT的时间格式。&nbsp;<br>　　6、Window-target&nbsp;(显示窗口的设定)&nbsp;<br>　　　说明：强制页面在当前窗口以独立页面显示。<br>　　　用法：&lt;Meta&nbsp;http-equiv="Widow-target"&nbsp;Content="_top"&gt;<br>　　　注意：这个属性是用来防止别人在框架里调用你的页面。Content选项：_blank、_top、_self、_parent。&nbsp;<br>　　7、Pics-label&nbsp;(网页RSAC等级评定)<br>　　　说明：在IE的Internet选项中有一项内容设置，可以防止浏览一些受限制的网站，而网站的限制级<br>　　　　　　别就是通过该参数来设置的。<br>　　　用法：&lt;META&nbsp;http-equiv="Pics-label"&nbsp;Contect=<br>　　　　　　　　　　　　　　　"(PICS－1.1'<img alt=::URL:: hspace=2 src="http://www.blogcn.com/images/aurl.gif" align=absBottom border=0><a href="http://www.rsac.org/ratingsv01.html" target=_blank ?><u><font color=#0000ff>http://www.rsac.org/ratingsv01.html'</font></u></a> <br>　　　　　　&nbsp;I&nbsp;gen&nbsp;comment&nbsp;'RSACi&nbsp;North&nbsp;America&nbsp;Sever'&nbsp;by&nbsp;'inet@microsoft.com'&nbsp;<br>　　　　　　　for&nbsp;'<img alt=::URL:: hspace=2 src="http://www.blogcn.com/images/aurl.gif" align=absBottom border=0><a href="http://www.microsoft.com/" target=_blank ?><u><font color=#0000ff>http://www.microsoft.com'</font></u></a> &nbsp;on&nbsp;'1997.06.30T14:21－0500'&nbsp;r(n0&nbsp;s0&nbsp;v0&nbsp;l0))"&gt;&nbsp;<br>　　　注意：不要将级别设置的太高。RSAC的评估系统提供了一种用来评价Web站点内容的标准。用户可以设置Microsoft&nbsp;Internet&nbsp;Explorer（IE3.0以上）来排除包含有色情和暴力内容的站点。上面这个例子中的HTML取自Microsoft的主页。代码中的（n&nbsp;0&nbsp;s&nbsp;0&nbsp;v&nbsp;0&nbsp;l&nbsp;0）表示该站点不包含不健康内容。级别的评定是由RSAC，即美国娱乐委员会的评级机构评定的，如果你想进一步了解RSAC评估系统的等级内容，或者你需要评价自己的网站，可以访问RSAC的站点：<img alt=::URL:: hspace=2 src="http://www.blogcn.com/images/aurl.gif" align=absBottom border=0><a href="http://www.rsac.org/。" target=_blank><u><font color=#0000ff>http://www.rsac.org/。</font></u></a> &nbsp;<br>　　8、Page-Enter、Page-Exit&nbsp;(进入与退出)&nbsp;<br>　　　说明：这个是页面被载入和调出时的一些特效。<br>　　　用法：&lt;Meta&nbsp;http-equiv="Page-Enter"&nbsp;Content="blendTrans(Duration=0.5)"&gt;<br>　　　　　　&lt;Meta&nbsp;http-equiv="Page-Exit"&nbsp;Content="blendTrans(Duration=0.5)"&gt;<br>　　　注意：blendTrans是动态滤镜的一种，产生渐隐效果。另一种动态滤镜RevealTrans也可以用于页面进入与退出效果:&nbsp;<br>　　　　　　&lt;Meta&nbsp;http-equiv="Page-Enter"&nbsp;Content="revealTrans(duration=x,&nbsp;transition=y)"&gt;<br>　　　　　　&lt;Meta&nbsp;http-equiv="Page-Exit"&nbsp;Content="revealTrans(duration=x,&nbsp;transition=y)"&gt;&nbsp;<br>　　　　　　　Duration　　表示滤镜特效的持续时间(单位：秒)<br>　　　　　　　Transition　滤镜类型。表示使用哪种特效，取值为0-23。&nbsp;<br>　　　　　　　0&nbsp;矩形缩小<br>　　　　　　　1&nbsp;矩形扩大<br>　　　　　　　2&nbsp;圆形缩小<br>　　　　　　　3&nbsp;圆形扩大<br>　　　　　　　4&nbsp;下到上刷新<br>　　　　　　　5&nbsp;上到下刷新<br>　　　　　　　6&nbsp;左到右刷新<br>　　　　　　　7&nbsp;右到左刷新<br>　　　　　　　8&nbsp;竖百叶窗<br>　　　　　　　9&nbsp;横百叶窗<br>　　　　　　&nbsp;10&nbsp;错位横百叶窗<br>　　　　　　&nbsp;11&nbsp;错位竖百叶窗<br>　　　　　　&nbsp;12&nbsp;点扩散<br>　　　　　　&nbsp;13&nbsp;左右到中间刷新<br>　　　　　　&nbsp;14&nbsp;中间到左右刷新<br>　　　　　　&nbsp;15&nbsp;中间到上下<br>　　　　　　&nbsp;16&nbsp;上下到中间<br>　　　　　　&nbsp;17&nbsp;右下到左上<br>　　　　　　&nbsp;18&nbsp;右上到左下<br>　　　　　　&nbsp;19&nbsp;左上到右下<br>　　　　　　&nbsp;20&nbsp;左下到右上<br>　　　　　　&nbsp;21&nbsp;横条<br>　　　　　　&nbsp;22&nbsp;竖条<br>　　　　　　&nbsp;23&nbsp;以上22种随机选择一种&nbsp;<br>　　9、MSThemeCompatible&nbsp;(XP主题)<br>　　　说明：是否在IE中关闭&nbsp;xp&nbsp;的主题<br>　　　用法：&lt;Meta&nbsp;http-equiv="MSThemeCompatible"&nbsp;Content="Yes"&gt;<br>　　　注意：关闭&nbsp;xp&nbsp;的蓝色立体按钮系统显示样式，从而和win2k&nbsp;很象。&nbsp;<br>　　10、IE6&nbsp;(页面生成器)<br>　　　说明：页面生成器generator，是ie6<br>　　　用法：&lt;Meta&nbsp;http-equiv="IE6"&nbsp;Content="Generator"&gt;<br>　　　注意：用什么东西做的，类似商品出厂厂商。&nbsp;<br>　　11、Content-Script-Type&nbsp;(脚本相关)<br>　　　说明：这是近来W3C的规范，指明页面中脚本的类型。<br>　　　用法：&lt;Meta&nbsp;http-equiv="Content-Script-Type"&nbsp;Content="text/javascript"&gt;<br>　　　注意：&nbsp;<br>　　★NAME变量&nbsp;<br>　　name是描述网页的，对应于Content（网页内容），以便于搜索引擎机器人查找、分类（目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类）。<br>　　name的value值（name=""）指定所提供信息的类型。有些值是已经定义好的。例如description(说明)、keyword(关键字)、refresh(刷新)等。还可以指定其他任意值，如：creationdate(创建日期)&nbsp;、<br>document&nbsp;ID(文档编号)和level(等级)等。<br>　　name的content指定实际内容。如：如果指定level(等级)为value(值)，则Content可能是beginner(初级)、intermediate(中级)、advanced(高级)。&nbsp;<br><br>　　1、Keywords&nbsp;(关键字)<br>　　　说明：为搜索引擎提供的关键字列表<br>　　　用法：&lt;Meta&nbsp;name="Keywords"&nbsp;Content="关键词1,关键词2，关键词3,关键词4,&#8230;&#8230;"&gt;<br>　　　注意：各关键词间用英文逗号&#8220;,&#8221;隔开。META的通常用处是指定搜索引擎用来提高搜索质量的关键词。当数个META元素提供文档语言从属信息时，搜索引擎会使用lang特性来过滤并通过用户的语言优先参照来显示搜索结果。例如：<br>　　　　　　&lt;Meta&nbsp;name="Kyewords"&nbsp;Lang="EN"&nbsp;Content="vacation,greece,sunshine"&gt;<br>　　　　　　&lt;Meta&nbsp;name="Kyewords"&nbsp;Lang="FR"&nbsp;Content="vacances,gr&#232;:ce,soleil"&gt;&nbsp;<br>　　2、Description&nbsp;(简介)<br>　　　说明：Description用来告诉搜索引擎你的网站主要内容。<br>　　　用法：&lt;Meta&nbsp;name="Description"&nbsp;Content="你网页的简述"&gt;<br>　　　注意：&nbsp;<br>　　3、Robots&nbsp;(机器人向导)<br>　　　说明：Robots用来告诉搜索机器人哪些页面需要索引，哪些页面不需要索引。Content的参数有all、none、index、noindex、follow、nofollow。默认是all。<br>　　　用法：&lt;Meta&nbsp;name="Robots"&nbsp;Content="All|None|Index|Noindex|Follow|Nofollow"&gt;<br>　　　注意：许多搜索引擎都通过放出robot/spider搜索来登录网站，这些robot/spider就要用到meta元素的一些特性来决定怎样登录。&nbsp;<br>　　　&nbsp;all：文件将被检索，且页面上的链接可以被查询；<br>　　　&nbsp;none：文件将不被检索，且页面上的链接不可以被查询；(和&nbsp;"noindex,&nbsp;no&nbsp;follow"&nbsp;起相同作用)<br>　　　&nbsp;index：文件将被检索；（让robot/spider登录）<br>　　　&nbsp;follow：页面上的链接可以被查询；<br>　　　&nbsp;noindex：文件将不被检索，但页面上的链接可以被查询；(不让robot/spider登录)<br>　　　nofollow：文件将不被检索，页面上的链接可以被查询。(不让robot/spider顺着此页的连接往下探找)&nbsp;<br>　　4、Author&nbsp;(作者)<br>　　　说明：标注网页的作者或制作组<br>　　　用法：&lt;Meta&nbsp;name="Author"&nbsp;Content="张三，abc@sina.com"&gt;<br>　　　注意：Content可以是：你或你的制作组的名字,或Email&nbsp;<br>　　5、Copyright&nbsp;(版权)<br>　　　说明：标注版权<br>　　　用法：&lt;Meta&nbsp;name="Copyright"&nbsp;Content="本页版权归Zerospace所有。All&nbsp;Rights&nbsp;Reserved"&gt;<br>　　　注意：&nbsp;<br>　　6、Generator&nbsp;(编辑器)<br>　　　说明：编辑器的说明<br>　　　用法：&lt;Meta&nbsp;name="Generator"&nbsp;Content="PCDATA|FrontPage|"&gt;<br>　　　注意：Content="你所用编辑器"&nbsp;<br>　　7、revisit-after&nbsp;(重访)<br>　　　说明：<br>　　　用法：&lt;META&nbsp;name="revisit-after"&nbsp;CONTENT="7&nbsp;days"&nbsp;&gt;<br>　　　注意：&nbsp;<br>　　★Head中的其它一些用法&nbsp;<br><br>　　1、scheme&nbsp;(方案)<br>　　　说明：scheme&nbsp;can&nbsp;be&nbsp;used&nbsp;when&nbsp;name&nbsp;is&nbsp;used&nbsp;to&nbsp;specify&nbsp;how&nbsp;the&nbsp;value&nbsp;of&nbsp;content&nbsp;should<br>　　　　　　be&nbsp;interpreted.<br>　　　用法：&lt;meta&nbsp;scheme="ISBN"&nbsp;name="identifier"&nbsp;content="0-14-043205-1"&nbsp;/&gt;<br>　　　注意：&nbsp;<br>　　2、Link&nbsp;(链接)<br>　　　说明：链接到文件<br>　　　用法：&lt;Link&nbsp;href="soim.ico"&nbsp;rel="Shortcut&nbsp;Icon"&gt;<br>　　　注意：很多网站如果你把她保存在收件夹中后，会发现它连带着一个小图标，如果再次点击进入之后还会发现地址栏中也有个小图标。现在只要在你的页头加上这段话，就能轻松实现这一功能。&lt;LINK&gt;&nbsp;用来将目前文件与其它&nbsp;URL&nbsp;作连结，但不会有连结按钮，用於&nbsp;&lt;HEAD&gt;&nbsp;标记间，&nbsp;格式如下：&nbsp;<br>　　　　　　　&lt;link&nbsp;href="URL"&nbsp;rel="relationship"&gt;&nbsp;<br>　　　　　　　&lt;link&nbsp;href="URL"&nbsp;rev="relationship"&gt;&nbsp;<br>　　3、Base&nbsp;(基链接)<br>　　　说明：插入网页基链接属性<br>　　　用法：&lt;Base&nbsp;href="<img alt=::URL:: hspace=2 src="http://www.blogcn.com/images/aurl.gif" align=absBottom border=0><a href='http://www.xia8.net/"' target=_blank><u><font color=#0000ff>http://www.xia8.net/"</font></u></a> &nbsp;target="_blank"&gt;<br>　　　注意：你网页上的所有相对路径在链接时都将在前面加上&#8220;<img alt=::URL:: hspace=2 src="http://www.blogcn.com/images/aurl.gif" align=absBottom border=0><a href='http://www.cn8cn.com/&#8221;。其中target="_blank"是链接文件在新的窗口中打开，你可以做其他设置。将&#8220;_blank&#8221;改为&#8220;_parent&#8221;是链接文件将在当前窗口的父级窗口中打开；改为&#8220;_self&#8221;链接文件在当前窗口（帧）中打开；改为&#8220;_top&#8221;链接文件全屏显示。' target=_blank><u><font color=#0000ff>http://www.cn8cn.com/&#8221;。其中target="_blank"是链接文件在新的窗口中打开，你可以做其他设置。将&#8220;_blank&#8221;改为&#8220;_parent&#8221;是链接文件将在当前窗口的父级窗口中打开；改为&#8220;_self&#8221;链接文件在当前窗口（帧）中打开；改为&#8220;_top&#8221;链接文件全屏显示。</font></u></a> &nbsp;<br><br>　　以上是META标签的一些基本用法，其中最重要的就是：Keywords和Description的设定。为什么呢？道理很简单，这两个语句可以让搜索引擎能准确的发现你，吸引更多的人访问你的站点!根据现在流行搜索引擎(Google，Lycos，AltaVista等)的工作原理，搜索引擎先派机器人自动在WWW上搜索，当发现新的网站时，便于检索页面中的Keywords和Description，并将其加入到自己的数据库，然后再根据关键词的密度将网站排序。&nbsp;<br>　　由此看来，我们必须记住添加Keywords和Description的META标签，并尽可能写好关键字和简介。否则，<br>后果就会是：<br>　　<br>　　●　如果你的页面中根本没有Keywords和Description的META标签，那么机器人是无法将你的站点加入数<br>　　　　据库，网友也就不可能搜索到你的站点。&nbsp;<br>　　●　如果你的关键字选的不好，关键字的密度不高，被排列在几十甚至几百万个站点的后面被点击的可<br>　　　　能性也是非常小的。&nbsp;<br>　　写好Keywords(关键字)要注意以下几点：&nbsp;<br><br>　　●　不要用常见词汇。例如www、homepage、net、web等。&nbsp;<br>　　●　不要用形容词，副词。例如最好的，最大的等。&nbsp;<br>　　●　不要用笼统的词汇，要尽量精确。例如&#8220;爱立信手机&#8221;，改用&#8220;T28SC&#8221;会更好。&nbsp;<br><br>　　&#8220;三人之行，必有我师&#8221;，寻找合适关键词的技巧是：到Google、Lycos、Alta等著名搜索引擎，搜索与<br>你的网站内容相仿的网站，查看排名前十位的网站的META关键字，将它们用在你的网站上，效果可想而知了。&nbsp;<br>　　★小窍门&nbsp;<br>　　为了提高搜索点击率，这里还有一些&#8220;捷径&#8221;可以帮得到你：&nbsp;<br>　　●　为了增加关键词的密度，将关键字隐藏在页面里(将文字颜色定义成与背景颜色一样)。&nbsp;<br>　　●　在图像的ALT注释语句中加入关键字。如：&lt;IMG&nbsp;SRC="xxx.gif"&nbsp;Alt="Keywords"&gt;&nbsp;<br>　　●　利用HTML的注释语句，在页面代码里加入大量关键字。用法：&nbsp;&lt;!--&nbsp;这里插入关键字&nbsp;--&gt;&nbsp;<br><br><br>　　&lt;title&gt;文件头，显示在浏览器标题区&lt;/title&gt;<br>　　&lt;meta&nbsp;http-equiv="Content-Language"&nbsp;content="zh-cn"&gt;<br>　　&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=gb2312"&gt;<br>　　&lt;meta&nbsp;name="GENERATOR"&nbsp;content="Microsoft&nbsp;FrontPage&nbsp;4.0"&gt;<br>　　&lt;meta&nbsp;name="ProgId"&nbsp;content="FrontPage.Editor.Document"&gt;<br>　　&lt;meta&nbsp;name="制作人"&nbsp;content="唐蓉生"&gt;<br>　　&lt;meta&nbsp;name="主题词"&nbsp;content="HTML&nbsp;网页制作&nbsp;课件"&gt;<br><br><br>
<img src ="http://www.blogjava.net/hua/aggbug/114242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-04-28 09:14 <a href="http://www.blogjava.net/hua/archive/2007/04/28/114242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用的js脚本</title><link>http://www.blogjava.net/hua/archive/2007/04/28/114241.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Sat, 28 Apr 2007 01:13:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/04/28/114241.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/114241.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/04/28/114241.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/114241.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/114241.html</trackback:ping><description><![CDATA[常用的js脚本<br><br>BS开发中常用的Javascript技术&nbsp;<br>一、验证类&nbsp;<br>1、数字验证内&nbsp;<br>&nbsp;&nbsp;1.1&nbsp;整数&nbsp;<br>&nbsp;&nbsp;1.2&nbsp;大于0的整数&nbsp;（用于传来的ID的验证)&nbsp;<br>&nbsp;&nbsp;1.3&nbsp;负整数的验证&nbsp;<br>&nbsp;&nbsp;1.4&nbsp;整数不能大于iMax&nbsp;<br>&nbsp;&nbsp;1.5&nbsp;整数不能小于iMin&nbsp;<br>2、时间类&nbsp;<br>&nbsp;&nbsp;2.1&nbsp;短时间，形如&nbsp;(13:04:06)&nbsp;<br>&nbsp;&nbsp;2.2&nbsp;短日期，形如&nbsp;(2003-12-05)&nbsp;<br>&nbsp;&nbsp;2.3&nbsp;长时间，形如&nbsp;(2003-12-05&nbsp;13:04:06)&nbsp;<br>&nbsp;&nbsp;2.4&nbsp;只有年和月。形如(2003-05,或者2003-5)&nbsp;<br>&nbsp;&nbsp;2.5&nbsp;只有小时和分钟,形如(12:03)&nbsp;<br>3、表单类&nbsp;<br>&nbsp;&nbsp;3.1&nbsp;所有的表单的值都不能为空&nbsp;<br>&nbsp;&nbsp;3.2&nbsp;多行文本框的值不能为空。&nbsp;<br>&nbsp;&nbsp;3.3&nbsp;多行文本框的值不能超过sMaxStrleng&nbsp;<br>&nbsp;&nbsp;3.4&nbsp;多行文本框的值不能少于sMixStrleng&nbsp;<br>&nbsp;&nbsp;3.5&nbsp;判断单选框是否选择。&nbsp;<br>&nbsp;&nbsp;3.6&nbsp;判断复选框是否选择.&nbsp;<br>&nbsp;&nbsp;3.7&nbsp;复选框的全选，多选，全不选，反选&nbsp;<br>&nbsp;&nbsp;3.8&nbsp;文件上传过程中判断文件类型&nbsp;<br>4、字符类&nbsp;<br>&nbsp;&nbsp;4.1&nbsp;判断字符全部由a-Z或者是A-Z的字字母组成&nbsp;<br>&nbsp;&nbsp;4.2&nbsp;判断字符由字母和数字组成。&nbsp;<br>&nbsp;&nbsp;4.3&nbsp;判断字符由字母和数字，下划线,点号组成.且开头的只能是下划线和字母&nbsp;<br>&nbsp;&nbsp;4.4&nbsp;字符串替换函数.Replace();&nbsp;<br>5、浏览器类&nbsp;<br>&nbsp;&nbsp;5.1&nbsp;判断浏览器的类型&nbsp;<br>&nbsp;&nbsp;5.2&nbsp;判断ie的版本&nbsp;<br>&nbsp;&nbsp;5.3&nbsp;判断客户端的分辨率&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>6、结合类&nbsp;<br>&nbsp;&nbsp;6.1&nbsp;email的判断。&nbsp;<br>&nbsp;&nbsp;6.2&nbsp;手机号码的验证&nbsp;<br>&nbsp;&nbsp;6.3&nbsp;身份证的验证&nbsp;<br>&nbsp;&nbsp;&nbsp;<br><br>二、功能类&nbsp;<br><br>1、时间与相关控件类&nbsp;<br>&nbsp;&nbsp;1.1&nbsp;日历&nbsp;<br>&nbsp;&nbsp;1.2&nbsp;时间控件&nbsp;<br>&nbsp;&nbsp;1.3&nbsp;万年历&nbsp;<br>&nbsp;&nbsp;1.4&nbsp;显示动态显示时钟效果（文本，如OA中时间）&nbsp;<br>&nbsp;&nbsp;1.5&nbsp;显示动态显示时钟效果&nbsp;(图像，像手表)&nbsp;&nbsp;<br>2、表单类&nbsp;<br>&nbsp;&nbsp;2.1&nbsp;自动生成表单&nbsp;<br>&nbsp;&nbsp;2.2&nbsp;动态添加，修改，删除下拉框中的元素&nbsp;<br>&nbsp;&nbsp;2.3&nbsp;可以输入内容的下拉框&nbsp;<br>&nbsp;&nbsp;2.4&nbsp;多行文本框中只能输入iMax文字。如果多输入了，自动减少到iMax个文字（多用于短信发送)&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>3、打印类&nbsp;<br>&nbsp;&nbsp;3.1&nbsp;打印控件&nbsp;<br>4、事件类&nbsp;<br>&nbsp;&nbsp;4.1&nbsp;屏蔽右键&nbsp;<br>&nbsp;&nbsp;4.2&nbsp;屏蔽所有功能键&nbsp;<br>&nbsp;&nbsp;4.3&nbsp;--&gt;&nbsp;和&lt;--&nbsp;F5&nbsp;F11,F9,F1&nbsp;<br>&nbsp;&nbsp;4.4&nbsp;屏蔽组合键ctrl+N&nbsp;<br>5、网页设计类&nbsp;<br>&nbsp;&nbsp;5.1&nbsp;连续滚动的文字，图片（注意是连续的，两段文字和图片中没有空白出现）&nbsp;<br>&nbsp;&nbsp;5.2&nbsp;html编辑控件类&nbsp;<br>&nbsp;&nbsp;5.3&nbsp;颜色选取框控件&nbsp;<br>&nbsp;&nbsp;5.4&nbsp;下拉菜单&nbsp;<br>&nbsp;&nbsp;5.5&nbsp;两层或多层次的下拉菜单&nbsp;<br>&nbsp;&nbsp;5.6&nbsp;仿IE菜单的按钮。（效果如rongshuxa.com的导航栏目)&nbsp;<br>&nbsp;&nbsp;5.7&nbsp;状态栏，title栏的动态效果（例子很多，可以研究一下）&nbsp;<br>&nbsp;&nbsp;5.8&nbsp;双击后，网页自动滚屏&nbsp;<br>6、树型结构。&nbsp;<br>&nbsp;&nbsp;6.1&nbsp;asp+SQL版&nbsp;<br>&nbsp;&nbsp;6.2&nbsp;asp+xml+sql版&nbsp;<br>&nbsp;&nbsp;6.3&nbsp;java+sql或者java+sql+xml&nbsp;<br>7、无边框效果的制作&nbsp;<br>8、连动下拉框技术&nbsp;<br>9、文本排序&nbsp;<br>10，画图类，含饼、柱、矢量贝滋曲线&nbsp;<br>11，操纵客户端注册表类&nbsp;<br>12，DIV层相关（拖拽、显示、隐藏、移动、增加）&nbsp;<br>13，TABLAE相关(客户端动态增加行列，模拟进度条，滚动列表等)&nbsp;<br>14，各种&lt;object&nbsp;classid=&gt;相关类，如播放器，flash与脚本互动等&nbsp;<br>16,&nbsp;刷新/模拟无刷新&nbsp;异步调用类（XMLHttp或iframe,frame）&nbsp;<br><br>&nbsp;<br><br>&nbsp;<br><br>&lt;script&nbsp;language="JavaScript"&gt;&nbsp;<br>&lt;!--&nbsp;<br>function&nbsp;check(text){&nbsp;<br>var&nbsp;checkstr,iMax=5,iMin=3&nbsp;<br>checkstr="isInt:"+(parseInt(text)==text)+"\n"&nbsp;<br>checkstr+="isID:"+((parseInt(text)==text)&amp;&amp;(text&gt;=0))+"\n"&nbsp;<br>checkstr+="小于"+iMax+":"+((parseInt(text)==text)&amp;&amp;(text&lt;iMax))+"\n"&nbsp;<br>checkstr+="大于"+iMin+":"+((parseInt(text)==text)&amp;&amp;(text&gt;iMin))+"\n"&nbsp;<br>alert(checkstr)&nbsp;<br>}&nbsp;<br>//--&gt;&nbsp;<br>&nbsp;<br>&lt;form&nbsp;method=post&nbsp;action=""&gt;&nbsp;<br>&lt;input&nbsp;type="text"&nbsp;id="text1"&nbsp;onchange="check(this.value)"&gt;&nbsp;<br>&lt;/form&gt;&nbsp;<br><br>&nbsp;<br><br>4、事件类&nbsp;<br>&nbsp;&nbsp;4.1&nbsp;屏蔽右键&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在body标签里加上oncontextmenu=self.event.returnValue=false&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;4.2&nbsp;屏蔽所有功能键&nbsp;<br><br>&nbsp;&nbsp;4.3&nbsp;--&gt;&nbsp;和&lt;--&nbsp;F5&nbsp;F11,F9,F1&nbsp;<br><br>&nbsp;&nbsp;4.4&nbsp;屏蔽组合键ctrl+N&nbsp;<br><br>&lt;script&nbsp;language=javascript&gt;&nbsp;<br>function&nbsp;KeyDown(){&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;if&nbsp;((window.event.altKey)&amp;&amp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((window.event.keyCode==37)||&nbsp;&nbsp;&nbsp;//屏蔽&nbsp;Alt+&nbsp;方向键&nbsp;&#8592;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(window.event.keyCode==39))){&nbsp;&nbsp;//屏蔽&nbsp;Alt+&nbsp;方向键&nbsp;&#8594;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("不准你使用ALT+方向键前进或后退网页！"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue=false;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;if&nbsp;((event.keyCode==8)||&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//屏蔽退格删除键&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(event.keyCode==116)){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//屏蔽&nbsp;F5&nbsp;刷新键&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.keyCode=0;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue=false;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;if&nbsp;((event.ctrlKey)&amp;&amp;(event.keyCode==78)){&nbsp;&nbsp;&nbsp;//屏蔽&nbsp;Ctrl+n&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue=false;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;if&nbsp;((event.shiftKey)&amp;&amp;(event.keyCode==121)){&nbsp;//屏蔽&nbsp;shift+F10&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue=false;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;if&nbsp;(event.keyCode==122){&nbsp;//屏蔽&nbsp;F11&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue=false;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>只要知道keyCode即可屏蔽所有功能键&nbsp;<br><br><br>一、验证类&nbsp;<br>1、数字验证内&nbsp;<br>&nbsp;&nbsp;1.1&nbsp;整数&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/^(-|\+)?\d+＄/.test(str)&nbsp;<br>&nbsp;&nbsp;1.2&nbsp;大于0的整数&nbsp;（用于传来的ID的验证)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/^\d+＄/.test(str)&nbsp;<br>&nbsp;&nbsp;1.3&nbsp;负整数的验证&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/^-\d+＄/.test(str)&nbsp;<br>2、时间类&nbsp;<br>&nbsp;&nbsp;2.1&nbsp;短时间，形如&nbsp;(13:04:06)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;isTime(str)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a&nbsp;=&nbsp;str.match(/^(\d{1,2})(<img onclick="window.open('/images/smile.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/smile.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>?(\d{1,2})\2(\d{1,2})＄/);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a&nbsp;==&nbsp;null)&nbsp;{alert('输入的参数不是时间格式');&nbsp;return&nbsp;false;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a[1]&gt;24&nbsp;||&nbsp;a[3]&gt;60&nbsp;||&nbsp;a[4]&gt;60)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("时间格式不对"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;2.2&nbsp;短日期，形如&nbsp;(2003-12-05)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;strDateTime(str)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;r&nbsp;=&nbsp;str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})＄/);&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(r==null)return&nbsp;false;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;d=&nbsp;new&nbsp;Date(r[1],&nbsp;r[3]-1,&nbsp;r[4]);&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(d.getFullYear()==r[1]&amp;&amp;(d.getMonth()+1)==r[3]&amp;&amp;d.getDate()==r[4]);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;2.3&nbsp;长时间，形如&nbsp;(2003-12-05&nbsp;13:04:06)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;strDateTime(str)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;reg&nbsp;=&nbsp;/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})&nbsp;(\d{1,2})<img onclick="window.open('/images/frown.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/frown.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>\d{1,2})<img onclick="window.open('/images/frown.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/frown.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>\d{1,2})＄/;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;r&nbsp;=&nbsp;str.match(reg);&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(r==null)return&nbsp;false;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;d=&nbsp;new&nbsp;Date(r[1],&nbsp;r[3]-1,r[4],r[5],r[6],r[7]);&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;<br><br>(d.getFullYear()==r[1]&amp;&amp;(d.getMonth()+1)==r[3]&amp;&amp;d.getDate()==r[4]&amp;&amp;<br>d.getHours()==r[5]&amp;&amp;d.getMinutes()==r[6]&amp;&amp;d.getSeconds()==&nbsp;<br><br>r[7]);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;2.4&nbsp;只有年和月。形如(2003-05,或者2003-5)&nbsp;<br>&nbsp;&nbsp;2.5&nbsp;只有小时和分钟,形如(12:03)&nbsp;<br>3、表单类&nbsp;<br>&nbsp;&nbsp;3.1&nbsp;所有的表单的值都不能为空&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;onblur="if(this.value.replace(/^\s+|\s+＄/g,')==')alert('不能为空!')"&gt;&nbsp;<br>&nbsp;&nbsp;3.2&nbsp;多行文本框的值不能为空。&nbsp;<br>&nbsp;&nbsp;3.3&nbsp;多行文本框的值不能超过sMaxStrleng&nbsp;<br>&nbsp;&nbsp;3.4&nbsp;多行文本框的值不能少于sMixStrleng&nbsp;<br>&nbsp;&nbsp;3.5&nbsp;判断单选框是否选择。&nbsp;<br>&nbsp;&nbsp;3.6&nbsp;判断复选框是否选择.&nbsp;<br>&nbsp;&nbsp;3.7&nbsp;复选框的全选，多选，全不选，反选&nbsp;<br>&nbsp;&nbsp;3.8&nbsp;文件上传过程中判断文件类型&nbsp;<br>4、字符类&nbsp;<br>&nbsp;&nbsp;4.1&nbsp;判断字符全部由a-Z或者是A-Z的字字母组成&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')"&gt;&nbsp;<br>&nbsp;&nbsp;4.2&nbsp;判断字符由字母和数字组成。&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')"&gt;&nbsp;<br>&nbsp;&nbsp;4.3&nbsp;判断字符由字母和数字，下划线,点号组成.且开头的只能是下划线和字母&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/^([a-zA-z_]{1})([\w]*)＄/g.test(str)&nbsp;<br>&nbsp;&nbsp;4.4&nbsp;字符串替换函数.Replace();&nbsp;<br>5、浏览器类&nbsp;<br>&nbsp;&nbsp;5.1&nbsp;判断浏览器的类型&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.navigator.appName&nbsp;<br>&nbsp;&nbsp;5.2&nbsp;判断ie的版本&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.navigator.appVersion&nbsp;<br>&nbsp;&nbsp;5.3&nbsp;判断客户端的分辨率&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.screen.height;&nbsp;&nbsp;window.screen.width;&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>6、结合类&nbsp;<br>&nbsp;&nbsp;6.1&nbsp;email的判断。&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;ismail(mail)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(new&nbsp;RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)<br>[A-Za-z0-9]+)*\.[A-Za-z0-9]+＄/).test(mail));&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;6.2&nbsp;手机号码的验证&nbsp;<br>&nbsp;&nbsp;6.3&nbsp;身份证的验证&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;isIdCardNo(num)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isNaN(num))&nbsp;{alert("输入的不是数字！"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;return&nbsp;false;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;len&nbsp;=&nbsp;num.length,&nbsp;re;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(len&nbsp;==&nbsp;15)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;re&nbsp;=&nbsp;new&nbsp;RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})＄/);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(len&nbsp;==&nbsp;18)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;re&nbsp;=&nbsp;new&nbsp;RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)＄/);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{alert("输入的数字位数不对！"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;return&nbsp;false;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a&nbsp;=&nbsp;num.match(re);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a&nbsp;!=&nbsp;null)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(len==15)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;D&nbsp;=&nbsp;new&nbsp;Date("19"+a[3]+"/"+a[4]+"/"+a[5]);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;B&nbsp;=&nbsp;D.getYear()==a[3]&amp;&amp;(D.getMonth()+1)==a[4]&amp;&amp;<br>D.getDate()==a[5];&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;D&nbsp;=&nbsp;new&nbsp;Date(a[3]+"/"+a[4]+"/"+a[5]);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;B&nbsp;=&nbsp;D.getFullYear()==a[3]&amp;&amp;(D.getMonth()+1)==a[4]&amp;&amp;<br>D.getDate()==a[5];&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!B)&nbsp;{alert("输入的身份证号&nbsp;"+&nbsp;a[0]&nbsp;+"&nbsp;里出生日期不对！"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;return&nbsp;false;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br><br><br>3.7&nbsp;复选框的全选，多选，全不选，反选&nbsp;<br>&lt;form&nbsp;name=hrong&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=All&nbsp;onclick="checkAll('mm')"&gt;全选&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm&nbsp;onclick="checkItem('All')"&gt;&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm&nbsp;onclick="checkItem('All')"&gt;&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm&nbsp;onclick="checkItem('All')"&gt;&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm&nbsp;onclick="checkItem('All')"&gt;&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm&nbsp;onclick="checkItem('All')"&gt;&lt;br/&gt;&lt;br/&gt;&nbsp;<br><br><br>&lt;input&nbsp;type=checkbox&nbsp;name=All2&nbsp;onclick="checkAll('mm2')"&gt;全选&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm2&nbsp;onclick="checkItem('All2')"&gt;&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm2&nbsp;onclick="checkItem('All2')"&gt;&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm2&nbsp;onclick="checkItem('All2')"&gt;&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm2&nbsp;onclick="checkItem('All2')"&gt;&lt;br/&gt;&nbsp;<br>&lt;input&nbsp;type=checkbox&nbsp;name=mm2&nbsp;onclick="checkItem('All2')"&gt;&lt;br/&gt;&nbsp;<br><br>&lt;/form&gt;&nbsp;<br><br>&lt;SCRIPT&nbsp;LANGUAGE="JavaScript"&gt;&nbsp;<br>function&nbsp;checkAll(str)&nbsp;<br>{&nbsp;<br>&nbsp;&nbsp;var&nbsp;a&nbsp;=&nbsp;document.getElementsByName(str);&nbsp;<br>&nbsp;&nbsp;var&nbsp;n&nbsp;=&nbsp;a.length;&nbsp;<br>&nbsp;&nbsp;for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;n;&nbsp;i++)&nbsp;<br>&nbsp;&nbsp;a[i].checked&nbsp;=&nbsp;window.event.srcElement.checked;&nbsp;<br>}&nbsp;<br>function&nbsp;checkItem(str)&nbsp;<br>{&nbsp;<br>&nbsp;&nbsp;var&nbsp;e&nbsp;=&nbsp;window.event.srcElement;&nbsp;<br>&nbsp;&nbsp;var&nbsp;all&nbsp;=&nbsp;eval("document.hrong."+&nbsp;str);&nbsp;<br>&nbsp;&nbsp;if&nbsp;(e.checked)&nbsp;<br>&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a&nbsp;=&nbsp;document.getElementsByName(e.name);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;all.checked&nbsp;=&nbsp;true;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;a.length;&nbsp;i++)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!a[i].checked){&nbsp;all.checked&nbsp;=&nbsp;false;&nbsp;break;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;else&nbsp;all.checked&nbsp;=&nbsp;false;&nbsp;<br>}&nbsp;<br>&lt;/SCRIPT&gt;&nbsp;<br><br>3.8&nbsp;文件上传过程中判断文件类型&nbsp;<br>&lt;input&nbsp;type=file&nbsp;onchange="alert(this.value.match(/^(.*)(\.)(.{1,8})＄/)[3])"&gt;&nbsp;<br><br>&nbsp;<br><br>不断地清空剪贴板:&nbsp;<br>&lt;body&nbsp;onload="setInterval('clipboardData.setData(\'Text\',\'\')',100)"&gt;&nbsp;<br><br><br>&lt;script&nbsp;language="JavaScript"&nbsp;type="text/JavaScript"&gt;&nbsp;<br>//先复制一样东西，或者文本或者图片&nbsp;<br>if(clipboardData.getData("Text"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>||clipboardData.getData("HTML"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>||<br>clipboardData.getData("URL"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>)&nbsp;<br>{&nbsp;<br>alert("有效行为"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;<br>}&nbsp;<br>&nbsp;<br><br><br>全屏技术：&nbsp;<br>真正的全屏页面解决之道！（全代码）&nbsp;&nbsp;<br>真正全屏解决之道：&nbsp;&nbsp;<br>1.htm&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&lt;title&gt;无标题文档&lt;/title&gt;&nbsp;&nbsp;<br>&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=gb2312"&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br><br>&lt;body&nbsp;onload="window.open('fullscreen.htm',','fullscreen=1,scroll=no');"&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br><br><br>fullscreen.htm&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&lt;title&gt;无标题文档&lt;/title&gt;&nbsp;&nbsp;<br>&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=gb2312"&gt;&nbsp;&nbsp;<br>&lt;script&nbsp;language="JavaScript1.2"&gt;&nbsp;&nbsp;&nbsp;<br>&lt;!--&nbsp;&nbsp;&nbsp;<br>function&nbsp;opensmallwin(myurl){&nbsp;&nbsp;&nbsp;<br>var&nbsp;w2=300;//想弹出窗口的宽度&nbsp;&nbsp;&nbsp;<br>var&nbsp;h2=100;//想弹出窗口的高度&nbsp;&nbsp;&nbsp;<br>var&nbsp;w3=window.screen.width/2-w2/2;&nbsp;&nbsp;&nbsp;<br>var&nbsp;h3=window.screen.height/2-h2/2;&nbsp;&nbsp;&nbsp;<br>window.open(myurl,'small','toolbar=no,location=no,directories=no,status=no,menubar=no,<br>scrollbars=no,resizable=0,width='+&nbsp;w2&nbsp;+',height='+&nbsp;h2&nbsp;+',left='+&nbsp;w3&nbsp;+',top='+&nbsp;h3&nbsp;+');&nbsp;&nbsp;&nbsp;<br>}&nbsp;&nbsp;&nbsp;<br>//--&gt;&nbsp;&nbsp;&nbsp;<br><br>&lt;!--&nbsp;&nbsp;<br>function&nbsp;modelesswin(url,mwidth,mheight){&nbsp;&nbsp;<br>&nbsp;&nbsp;if&nbsp;(document.all&amp;&amp;window.print)&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;eval('window.external.m2_blocked(url,"","help:0;resizable:0;status:0;center:1;<br>scroll:0;dialogWidth:'+mwidth+'px;dialogHeight:'+mheight+'px"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>')&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;else&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;eval('window.open(url,"","width='+mwidth+'px,height='+mheight+'px,resizable=1,<br>scrollbars=1"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>')&nbsp;&nbsp;<br>&nbsp;&nbsp;}&nbsp;&nbsp;<br>//--&gt;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br><br>&lt;body&nbsp;&nbsp;scroll="no"&gt;&nbsp;&nbsp;<br>&lt;div&nbsp;align="right"&gt;&lt;a&nbsp;href="javascript:"&nbsp;onclick="window.close()"&gt;关闭<br>&lt;/a&gt;&nbsp;&lt;/div&gt;&nbsp;&nbsp;<br>&lt;p&gt;&lt;/P&gt;&nbsp;&nbsp;<br>&lt;div&nbsp;align="right"&gt;&lt;a&nbsp;href="javascript:"&nbsp;onclick="opensmallwin('login.htm')"&gt;登录<br>&lt;/a&gt;&nbsp;&lt;/div&gt;&nbsp;&nbsp;<br><br>&lt;p&gt;&lt;/P&gt;&nbsp;&nbsp;<br>&lt;div&nbsp;align="center"&gt;&lt;a&nbsp;href="javascript:"&nbsp;<br>onclick="modelesswin('login.htm',300,160)"&gt;用模态登录窗口&lt;/a&gt;&nbsp;&lt;/div&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br><br><br>login.htm&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&lt;title&gt;用户登录&lt;/title&gt;&nbsp;&nbsp;<br>&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=gb2312"&gt;&nbsp;&nbsp;<br><br>&lt;style&nbsp;type="text/css"&gt;&nbsp;&nbsp;<br>&lt;!--&nbsp;&nbsp;<br>body&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;background-color:&nbsp;#EAEAEA;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;font-family:&nbsp;Arial,&nbsp;Helvetica,&nbsp;sans-serif;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;font-size:&nbsp;12px;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;line-height:&nbsp;24px;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;color:&nbsp;#336699;&nbsp;&nbsp;<br>}&nbsp;&nbsp;<br>input.boxline&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;width:&nbsp;100px;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;font-family:&nbsp;"Times&nbsp;New&nbsp;Roman",&nbsp;"Times",&nbsp;"serif";&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;font-size:&nbsp;9pt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;border:&nbsp;1px&nbsp;solid&nbsp;#669999;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;height:&nbsp;18px;&nbsp;&nbsp;<br><br>}&nbsp;&nbsp;<br><br>input.whiteline&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;font-size:&nbsp;12px;&nbsp;border:&nbsp;1px&nbsp;#999999&nbsp;solid&nbsp;&nbsp;<br>}&nbsp;&nbsp;<br>--&gt;&nbsp;&nbsp;<br>&lt;/style&gt;&nbsp;&nbsp;<br>&lt;body&nbsp;leftmargin="0"&nbsp;topmargin="0"&nbsp;marginwidth="0"&nbsp;marginheight="0"&gt;&nbsp;&nbsp;<br>&lt;table&nbsp;width="100%"&nbsp;height="100%"&nbsp;border="0"&nbsp;cellpadding="0"<br>&nbsp;cellspacing="14"&nbsp;bgcolor="#CCCCCC"&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&lt;tr&nbsp;valign="top"&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;width="10%"&nbsp;nowrap&nbsp;&nbsp;align="right"&gt;&lt;b&gt;用户名：&lt;/b&gt;&lt;/td&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;width="90%"&gt;&lt;input&nbsp;name="textfield1"&nbsp;type="text"&nbsp;size="25"<br>&nbsp;class="whiteline"&gt;&lt;/td&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&lt;/tr&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&lt;tr&nbsp;valign="top"&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;nowrap&nbsp;align="right"&gt;&lt;b&gt;密　码：&lt;/b&gt;&lt;/td&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;input&nbsp;name="textfield12"&nbsp;type="password"&nbsp;size="25"&nbsp;<br>class="whiteline"&gt;&lt;/td&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&lt;/tr&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&lt;tr&nbsp;valign="top"&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&nbsp;&lt;/td&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;input&nbsp;type="submit"&nbsp;name="Submit"&nbsp;value="登　　录"&nbsp;<br>class="boxline"&gt;&lt;/td&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;&lt;/tr&gt;&nbsp;&nbsp;<br>&lt;/table&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br><br><br>自动关掉原窗口：&nbsp;&nbsp;<br><br><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&lt;title&gt;无标题文档&lt;/title&gt;&nbsp;&nbsp;<br>&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=gb2312"&gt;&nbsp;&nbsp;<br>&lt;style&nbsp;type="text/css"&gt;&nbsp;&nbsp;<br>&lt;!--&nbsp;&nbsp;<br>body&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;margin-left:&nbsp;0px;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;margin-top:&nbsp;0px;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;margin-right:&nbsp;0px;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;margin-bottom:&nbsp;0px;&nbsp;&nbsp;<br>}&nbsp;&nbsp;<br>--&gt;&nbsp;&nbsp;<br>&lt;/style&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br><br>&lt;body&nbsp;onload="window.open('fullscreen.htm',','fullscreen=1,scroll=no');<br>window.opener=null;window.close()"&gt;&nbsp;&nbsp;<br>&lt;input&nbsp;type=button&nbsp;value=关闭&nbsp;onclick="window.opener=null;window.close()"&gt;&nbsp;&nbsp;&nbsp;<br>&lt;!--&nbsp;IE5.5+&nbsp;不会有弹出提示&nbsp;--&gt;&nbsp;&nbsp;&nbsp;<br><br>&lt;OBJECT&nbsp;id=WebBrowser&nbsp;classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2&nbsp;<br>height=0&nbsp;width=0&gt;&lt;/OBJECT&gt;&nbsp;&nbsp;&nbsp;<br>&lt;input&nbsp;type=button&nbsp;value=关闭窗口&nbsp;onclick=document.all.WebBrowser.ExecWB(45,1)&gt;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br><br>关键是在onload事件中加入：&nbsp;&nbsp;<br>window.opener=null;window.close()&nbsp;&nbsp;<br><br><br>预读图片：&nbsp;<br>&lt;SCRIPT&nbsp;LANGUAGE="JavaScript"&gt;&nbsp;<br><br>&lt;!--&nbsp;This&nbsp;script&nbsp;and&nbsp;many&nbsp;more&nbsp;are&nbsp;available&nbsp;free&nbsp;online&nbsp;at&nbsp;--&gt;&nbsp;<br>&lt;!--&nbsp;The&nbsp;JavaScript&nbsp;Source!!&nbsp;&lt;a&nbsp;href=<img alt=::URL:: hspace=2 src="http://www.blogcn.com/images/aurl.gif" align=absBottom border=0><a href="http://javascript.internet.com/" target=_blank><u><font color=#0000ff>http://javascript.internet.com</font></u></a> &nbsp;<br>target=_blank&gt;<img alt=::URL:: hspace=2 src="http://www.blogcn.com/images/aurl.gif" align=absBottom border=0><a href="http://javascript.internet.com/" target=_blank><u><font color=#0000ff>http://javascript.internet.com</font></u></a> &nbsp;--&gt;&nbsp;<br><br>&lt;!--&nbsp;Begin&nbsp;<br><br>image1&nbsp;=&nbsp;new&nbsp;Image();&nbsp;<br>image1.src&nbsp;=&nbsp;"image1.gif";&nbsp;<br><br>image2&nbsp;=&nbsp;new&nbsp;Image();&nbsp;<br>image2.src&nbsp;=&nbsp;"image2.gif";&nbsp;<br><br>//&nbsp;End&nbsp;--&gt;&nbsp;<br>&nbsp;<br><br>&nbsp;<br><br>关于两个网页刷新交互的问题&nbsp;&nbsp;<br>JS处理方法：&nbsp;&nbsp;<br><br>a.htm&nbsp;&nbsp;<br><br>&lt;a&nbsp;href="b.htm"&nbsp;target=blank&gt;发表留言&lt;/a&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>alert("wwwwwwwwwwwwwwwwwwwwwwwwww"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br><br>b.htm&nbsp;&nbsp;<br><br>&lt;script&nbsp;language="javascript"&gt;&nbsp;&nbsp;<br>//window.opener.location.reload();刷新父窗口&nbsp;&nbsp;<br>//window.opener.location="2.htm"//重定向父窗口到2.htm页&nbsp;&nbsp;<br>function&nbsp;closewindow()&nbsp;&nbsp;<br>{&nbsp;&nbsp;<br>window.opener.location.reload();&nbsp;&nbsp;<br>self.close();&nbsp;&nbsp;<br>window.opener.document.write("sssssssssssssssssss"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;&nbsp;<br>}&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&lt;a&nbsp;href="b.htm"&nbsp;target=blank&nbsp;onclick="closewindow();"&gt;关闭&lt;/a&gt;&nbsp;&nbsp;<br><br>&nbsp;<br><br>后台处理方法：&nbsp;&nbsp;<br><br>private&nbsp;btnForSubmit(Object&nbsp;sender,EventArgs&nbsp;e)&nbsp;&nbsp;<br>{&nbsp;&nbsp;<br>&nbsp;.............&nbsp;&nbsp;<br>&nbsp;Response.Write("window.opener.document.execCommand('refresh');<br>window.opener=';window.close();"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;&nbsp;<br>//string&nbsp;str="window.opener.document.execCommand('refresh');<br>window.opener=';window.close();";&nbsp;&nbsp;<br>//this.RegisterStartupScript("mycode",str);&nbsp;&nbsp;<br>external.m2_blocked()、external.m2_blocked()方法使用详解&nbsp;<br><br>&nbsp;Javascript有许多内建的方法来产生对话框，如：window.alert(),&nbsp;<br>window.confirm(),window.prompt().等。&nbsp;然而IE提供更多的方法支持对话框。如：&nbsp;<br><br>　　external.m2_blocked()&nbsp;(IE&nbsp;4+&nbsp;支持)&nbsp;<br>　　external.m2_blocked()&nbsp;(IE&nbsp;5+&nbsp;支持)&nbsp;<br><br><br>&nbsp;window.external.m2_blocked()方法用来创建一个显示HTML内容的模态对话框，<br>由于是对话框，因此它并没有一般用window.open()打开的窗口的所有属性。&nbsp;<br>&nbsp;window.external.m2_blocked()方法用来创建一个显示HTML内容的非模态对话框。&nbsp;<br><br>&nbsp;当我们用external.m2_blocked()打开窗口时，不必用window.close()去关闭它，<br>当以非模态方式[IE5]打开时，&nbsp;打开对话框的窗口仍可以进行其他的操作，即对话框<br>不总是最上面的焦点，当打开它的窗口ＵＲＬ改变时，它自动关闭。而模态[ＩＥ４]<br>方式的对话框始终有焦点（焦点不可移走，直到它关闭）。模态对话框和打开它的窗<br>口相联系，因此我们打开另外的窗口时，他们的链接关系依然保存，并且隐藏在活动<br>窗口的下面。&nbsp;<br><br>使用方法如下：&nbsp;<br>&nbsp;vReturnValue=window.external.m2_blocked(sURL&nbsp;[,vArguments]&nbsp;[,sFeatures])&nbsp;<br>&nbsp;vReturnValue=window.external.m2_blocked(sURL&nbsp;[,vArguments]&nbsp;[,sFeatures])&nbsp;<br>参数说明：&nbsp;<br>&nbsp;sURL&nbsp;<br>&nbsp;必选参数，类型：字符串。用来指定对话框要显示的文档的URL。&nbsp;<br>&nbsp;vArguments&nbsp;<br>&nbsp;可选参数，类型：变体。用来向对话框传递参数。传递的参数类型不限，包括数组等。<br>对话框通过window.dialogArguments来取得传递进来的参数。&nbsp;<br>&nbsp;sFeatures&nbsp;<br>&nbsp;可选参数，类型：字符串。用来描述对话框的外观等信息，可以使用以下的一个或几个，<br>用分号&#8220;;&#8221;隔开。&nbsp;<br>&nbsp;&nbsp;dialogHeight&nbsp;对话框高度，不小于１００px，ＩＥ４中dialogHeight&nbsp;和&nbsp;dialogWidth<br>&nbsp;默认的单位是em，而ＩＥ５中是px，为方便其见，在定义modal方式的对话框时，用px<br>做单位。&nbsp;<br>&nbsp;　　dialogWidth:&nbsp;对话框宽度。&nbsp;<br>&nbsp;　　dialogLeft:&nbsp;距离桌面左的距离。&nbsp;<br>&nbsp;　　dialogTop:&nbsp;离桌面上的距离。&nbsp;<br>&nbsp;　　center:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}：窗口是否居中，默认yes，但仍可以指定高度和宽度。&nbsp;<br>&nbsp;　　help:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}：是否显示帮助按钮，默认yes。&nbsp;<br>&nbsp;　　resizable:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}&nbsp;[ＩＥ５＋]：是否可被改变大小。默认no。&nbsp;<br>&nbsp;　　status:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}&nbsp;[IE5+]：是否显示状态栏。默认为yes[&nbsp;Modeless]<br>或no[Modal]。&nbsp;<br>&nbsp;&nbsp;scroll:{&nbsp;yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;|&nbsp;on&nbsp;|&nbsp;off&nbsp;}：指明对话框是否显示滚动条。默认为yes。&nbsp;<br><br>&nbsp;&nbsp;还有几个属性是用在HTA中的，在一般的网页中一般不使用。&nbsp;<br>&nbsp;&nbsp;dialogHide:{&nbsp;yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;|&nbsp;on&nbsp;|&nbsp;off&nbsp;}：在打印或者打印预览时对话框是否隐藏。<br>默认为no。&nbsp;<br>&nbsp;&nbsp;edge:{&nbsp;sunken&nbsp;|&nbsp;raised&nbsp;}：指明对话框的边框样式。默认为raised。&nbsp;<br>&nbsp;&nbsp;unadorned:{&nbsp;yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;|&nbsp;on&nbsp;|&nbsp;off&nbsp;}：默认为no。&nbsp;<br><br>&nbsp;传入参数：&nbsp;<br>&nbsp;要想对话框传递参数，是通过vArguments来进行传递的。类型不限制，对于字符串类型，<br>最大为4096个字符。也可以传递对象，例如：&nbsp;<br><br>&nbsp;test1.htm&nbsp;<br>&nbsp;====================&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;var&nbsp;mxh1&nbsp;=&nbsp;new&nbsp;Array("mxh","net_lover","孟子E章"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>&nbsp;<br>&nbsp;&nbsp;var&nbsp;mxh2&nbsp;=&nbsp;window.open("about:blank","window_mxh"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>&nbsp;<br>&nbsp;&nbsp;//&nbsp;向对话框传递数组&nbsp;<br>&nbsp;&nbsp;window.external.m2_blocked("test2.htm",mxh1)&nbsp;<br>&nbsp;&nbsp;//&nbsp;向对话框传递window对象&nbsp;<br>&nbsp;&nbsp;window.external.m2_blocked("test3.htm",mxh2)&nbsp;<br>&nbsp;&nbsp;<br><br>&nbsp;test2.htm&nbsp;<br>&nbsp;====================&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;var&nbsp;a&nbsp;=&nbsp;window.dialogArguments&nbsp;<br>&nbsp;&nbsp;alert("您传递的参数为："&nbsp;+&nbsp;a)&nbsp;<br>&nbsp;&nbsp;<br><br>&nbsp;test3.htm&nbsp;<br>&nbsp;====================&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;var&nbsp;a&nbsp;=&nbsp;window.dialogArguments&nbsp;<br>&nbsp;&nbsp;alert("您传递的参数为window对象，名称："&nbsp;+&nbsp;a.name)&nbsp;<br>&nbsp;&nbsp;<br><br>&nbsp;可以通过window.returnValue向打开对话框的窗口返回信息，当然也可以是对象。<br>例如：&nbsp;<br><br>&nbsp;test4.htm&nbsp;<br>&nbsp;===================&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;var&nbsp;a&nbsp;=&nbsp;window.external.m2_blocked("test5.htm"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>&nbsp;<br>&nbsp;&nbsp;for(i=0;i&lt;a.length;i++)&nbsp;alert(a[i])&nbsp;<br>&nbsp;&nbsp;<br><br>&nbsp;test5.htm&nbsp;<br>&nbsp;===================&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;function&nbsp;sendTo()&nbsp;<br>&nbsp;{&nbsp;<br>&nbsp;&nbsp;var&nbsp;a=new&nbsp;Array("a","b"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>&nbsp;<br>&nbsp;&nbsp;window.returnValue&nbsp;=&nbsp;a&nbsp;<br>&nbsp;&nbsp;window.close()&nbsp;<br>&nbsp;}&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&lt;form&gt;&nbsp;<br>&nbsp;&nbsp;&lt;input&nbsp;value="返回"&nbsp;type=button&nbsp;onclick="sendTo()"&gt;&nbsp;<br>&nbsp;&lt;/form&gt;&nbsp;<br><br>&nbsp;常见问题：&nbsp;<br>&nbsp;1，如何在模态对话框中进行提交而不新开窗口？&nbsp;<br>&nbsp;如果你&nbsp;的&nbsp;浏览器是IE5.5+,可以在对话框中使用带name属性的iframe，提交时可以<br>制定target为该iframe的name。对于IE4+，你可以用高度为0的frame来作：例子，&nbsp;<br><br>&nbsp;test6.htm&nbsp;<br>&nbsp;===================&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;window.external.m2_blocked("test7.htm"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>&nbsp;<br>&nbsp;&nbsp;<br><br>&nbsp;test7.htm&nbsp;<br>&nbsp;===================&nbsp;<br>&nbsp;if(window.location.search)&nbsp;alert(window.location.search)&nbsp;<br>&nbsp;&lt;frameset&nbsp;rows="0,*"&gt;&nbsp;<br>&nbsp;&nbsp;&lt;frame&nbsp;src="about:blank"&gt;&nbsp;<br>&nbsp;&nbsp;&lt;frame&nbsp;src="test8.htm"&gt;&nbsp;<br>&nbsp;&lt;/frameset&gt;&nbsp;<br><br>&nbsp;test8.htm&nbsp;<br>&nbsp;===================&nbsp;<br>&nbsp;&lt;form&nbsp;target="_self"&nbsp;method="get"&gt;&nbsp;<br>&nbsp;&lt;input&nbsp;name=txt&nbsp;value="test"&gt;&nbsp;<br>&nbsp;&lt;input&nbsp;type=submit&gt;&nbsp;<br>&nbsp;&lt;/form&gt;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;if(window.location.search)&nbsp;alert(window.location.search)&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;2,可以通过<img alt=::URL:: hspace=2 src="http://www.blogcn.com/images/aurl.gif" align=absBottom border=0><a href="http://servername/virtualdirname/test.htm?name=mxh方式直接向" target=_blank><u><font color=#0000ff>http://servername/virtualdirname/test.htm?name=mxh方式直接向</font></u></a> <br>对话框传递参数吗？&nbsp;<br>&nbsp;答案是不能。但在frame里是可以的。&nbsp;<br>//屏蔽&nbsp;F5&nbsp;刷新键&nbsp;<br><br><br>function&nbsp;document.onkeydown()&nbsp;<br>{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;k&nbsp;=&nbsp;window.event.keyCode;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(k&nbsp;==&nbsp;116)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//屏蔽&nbsp;F5&nbsp;刷新键&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.event.keyCode&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.event.returnValue=&nbsp;false;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>}&nbsp;<br><br><br>&lt;script&nbsp;language="Javascript"&gt;&nbsp;<br>&nbsp;//屏蔽鼠标右键、Ctrl+N、Shift+F10、F5刷新、退格键&nbsp;<br>&nbsp;//屏蔽F1帮助&nbsp;<br>function&nbsp;window.onhelp()&nbsp;<br>{&nbsp;<br>&nbsp;&nbsp;&nbsp;return&nbsp;false&nbsp;<br>}&nbsp;<br>function&nbsp;KeyDown()&nbsp;<br>{&nbsp;<br>&nbsp;&nbsp;//alert(event.keyCode);&nbsp;<br>&nbsp;&nbsp;&nbsp;//屏蔽&nbsp;Alt+&nbsp;方向键&nbsp;&#8592;&nbsp;屏蔽&nbsp;Alt+&nbsp;方向键&nbsp;&#8594;&nbsp;<br>&nbsp;&nbsp;if&nbsp;((window.event.altKey)&amp;&amp;((window.event.keyCode==37)||<br>(window.event.keyCode==39)))&nbsp;<br>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//alert("不准你使用ALT+方向键前进或后退网页！"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue=false;&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;//屏蔽退格删除键,屏蔽&nbsp;F5&nbsp;刷新键,Ctrl&nbsp;+&nbsp;R&nbsp;<br>&nbsp;&nbsp;if&nbsp;((event.keyCode==116)||(event.ctrlKey&nbsp;&amp;&amp;&nbsp;event.keyCode==82))&nbsp;<br>&nbsp;&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.keyCode=0;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue=false;&nbsp;<br>&nbsp;&nbsp;}&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;//屏蔽&nbsp;Ctrl+n&nbsp;<br>&nbsp;&nbsp;if&nbsp;((event.ctrlKey)&amp;&amp;(event.keyCode==78))&nbsp;<br>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue=false;&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;//屏蔽&nbsp;shift+F10&nbsp;<br>&nbsp;&nbsp;if&nbsp;((event.shiftKey)&amp;&amp;(event.keyCode==121))&nbsp;<br>&nbsp;&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue=false;&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;//屏蔽&nbsp;shift&nbsp;加鼠标左键新开一网页&nbsp;<br>&nbsp;&nbsp;if&nbsp;(window.event.srcElement.tagName&nbsp;==&nbsp;"A"&nbsp;&amp;&amp;&nbsp;window.event.shiftKey)&nbsp;&nbsp;<br>&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;window.event.returnValue&nbsp;=&nbsp;false;&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//屏蔽Alt+F4&nbsp;<br>&nbsp;&nbsp;if&nbsp;((window.event.altKey)&amp;&amp;(window.event.keyCode==115))&nbsp;<br>&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.external.m2_blocked("about:blank","","dialogWidth:1px;dialogheight:1px"<img onclick="window.open('/images/wink.gif','_blank');" hspace=2 src="http://www.blogcn.com/images/wink.gif" onload="javascript:if(this.width>screen.width/2)this.width=screen.width/2" vspace=2 border=0>;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;//屏蔽Ctrl+A&nbsp;<br>&nbsp;&nbsp;if((event.ctrlKey)&amp;&amp;(event.keyCode==65))&nbsp;<br>&nbsp;&nbsp;{&nbsp;<br>&nbsp;&nbsp;&nbsp;return&nbsp;false;&nbsp;<br>&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>}&nbsp;<br>&nbsp;<br>&nbsp;<br>&lt;/HTML&gt;&nbsp;&nbsp;<br><br>
<img src ="http://www.blogjava.net/hua/aggbug/114241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-04-28 09:13 <a href="http://www.blogjava.net/hua/archive/2007/04/28/114241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>直接telnet 25端口发邮件</title><link>http://www.blogjava.net/hua/archive/2007/04/24/113200.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Tue, 24 Apr 2007 07:43:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/04/24/113200.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/113200.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/04/24/113200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/113200.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/113200.html</trackback:ping><description><![CDATA[<p>：）可以自己写个程序发邮件咯。用jmail控件也行。<br>下次说telnet上收邮件，可以做邮件到达提醒。：）偶们的oa里用得到哦。<br><br>使用以下命令启动&nbsp;TELNET&nbsp;会话：<br>Telnet&nbsp;xxx.xxx.xxx.xxx&nbsp;25<br>如果正常，您将会看到以下来自&nbsp;IMC&nbsp;的响应：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;220&nbsp;site.company.com&nbsp;Microsoft&nbsp;Exchange&nbsp;Internet&nbsp;Mail<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connector&nbsp;4.0.xxx.xx<br><br>其中，xxx.xx&nbsp;对&nbsp;RTM&nbsp;是&nbsp;837.3，对&nbsp;SP1&nbsp;是&nbsp;838.14。<br><br>键入以下命令开始进行通讯：<br>HELO&nbsp;test.company.com<br>您应看到如下响应：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;250&nbsp;OK<br><br>键入以下命令来通知&nbsp;IMC&nbsp;邮件源于何处：<br>MAIL&nbsp;FROM:Admin@test.company.com<br>您应得到如下响应：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;250&nbsp;OK&nbsp;-&nbsp;MAIL&nbsp;FROM&nbsp;&lt;[email]Admin@test.company.com[/email]&gt;<br><br>键入以下命令来通知&nbsp;IMC&nbsp;邮件的目标地址（使用一个有效的&nbsp;Microsoft&nbsp;Exchange&nbsp;收件人&nbsp;SMTP&nbsp;地址）。<br>RCPT&nbsp;TO:&lt;[email]User@Site.Domain.Com[/email]&gt;<br>您应看到如下响应：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;250&nbsp;OK&nbsp;-&nbsp;Recipient&nbsp;&lt;[email]User@Site.Domain.Com[/email]&gt;<br><br>键入以下命令以通知&nbsp;IMC&nbsp;您已准备好发送数据：<br>DATA<br>您应看到如下响应：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;354&nbsp;Send&nbsp;data.&nbsp;&nbsp;End&nbsp;with&nbsp;CRLF.CRLF<br><br>键入以下命令以添加主题行：<br>Subject:&nbsp;test&nbsp;message<br><br>然后按两次&nbsp;Enter&nbsp;键。<br><br>该命令看不到任何响应。<br><br>备注：&nbsp;两个&nbsp;Enter&nbsp;命令符合&nbsp;RFC&nbsp;822&nbsp;规则，即&nbsp;822&nbsp;命令后必须跟空行。<br><br><br>键入以下命令来添加邮件正文：<br>This&nbsp;is&nbsp;a&nbsp;test&nbsp;message<br>您将看不到来自该命令的响应。<br><br><br>在紧接着的空行处键入句号，然后按&nbsp;ENTER&nbsp;键。<br><br>您应看到如下响应：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;250&nbsp;OK<br><br>键入以下命令以关闭连接：<br>QUIT<br>您应看到如下响应：<br>221&nbsp;closing&nbsp;connection<br><br>对于上述任一命令，如果您收到&#8220;500&nbsp;Command&nbsp;not&nbsp;recognized&#8221;错误消息，则表明由于语法错误或无效的命令导致&nbsp;IMC&nbsp;无法识别您所键入的内容。<br><br>登录进入您在上述步骤&nbsp;4&nbsp;中选择的邮件收件人的&nbsp;Microsoft&nbsp;Exchange&nbsp;客户邮箱。&nbsp;如果邮箱中有您的测试邮件，说明传入&nbsp;IMC&nbsp;通讯工作正常。<br><br>如果应用程序事件日志显示任何错误消息，或在接收邮件时出现问题，请检查配置或到主机的通讯。</p>
<div class=summary>
<h2>概要</h2>
本文介绍如何&nbsp;telnet&nbsp;到运行简单邮件传输协议&nbsp;(SMTP)&nbsp;服务的计算机上的端口&nbsp;25，以解决&nbsp;SMTP&nbsp;通信问题。默认情况下，SMTP&nbsp;侦听端口&nbsp;25。<br><br>您可以根据您遇到的问题类型选用以下适当的疑难解答步骤。例如，如果您在两台&nbsp;Microsoft&nbsp;Exchange&nbsp;2000&nbsp;Server&nbsp;服务器之间通过&nbsp;SMTP&nbsp;发送邮件时遇到问题，则可以通过在发送服务器上使用&nbsp;Telnet&nbsp;连接到目标服务器上的端口&nbsp;25&nbsp;来测试&nbsp;SMTP&nbsp;连接。或者，如果您在接收来自&nbsp;Internet&nbsp;的&nbsp;SMTP&nbsp;邮件时遇到问题，则可以按照本文中列出的步骤，测试驻留在&nbsp;Internet&nbsp;上但不在您的网络上的主机与您的&nbsp;SMTP&nbsp;服务器的连接。<br></div>
<div class=moreinformation>
<h2>更多信息</h2>
Microsoft&nbsp;产品线中有&nbsp;SMTP&nbsp;的多个不同变体。Microsoft&nbsp;Windows&nbsp;产品线的&nbsp;SMTP&nbsp;服务包含在&nbsp;Internet&nbsp;信息服务&nbsp;(IIS)&nbsp;中，而在&nbsp;Microsoft&nbsp;Windows&nbsp;NT&nbsp;Server&nbsp;4.0&nbsp;中，SMTP&nbsp;服务包含在&nbsp;Option&nbsp;Pack&nbsp;中。在较新版本的&nbsp;Windows&nbsp;中，IIS&nbsp;已被集成到操作系统中，并且您可以使用&#8220;控制面板&#8221;中的&#8220;添加或删除程序&#8221;添加&nbsp;IIS。此外，Exchange&nbsp;2000&nbsp;和&nbsp;Microsoft&nbsp;Exchange&nbsp;Server&nbsp;2003&nbsp;都使用&nbsp;IIS&nbsp;中的现有&nbsp;SMTP&nbsp;服务及其他功能。Microsoft&nbsp;Exchange&nbsp;Server&nbsp;版本&nbsp;4.0、5.0&nbsp;和&nbsp;5.5&nbsp;均包含它们自己的&nbsp;SMTP&nbsp;版本，所采用的形式为&nbsp;Internet&nbsp;Mail&nbsp;Connector&nbsp;(IMC)&nbsp;或&nbsp;Internet&nbsp;Mail&nbsp;Service&nbsp;(IMS)。<br><br><strong>注意</strong>：在&nbsp;Exchange&nbsp;5.0&nbsp;及更高版本中，Internet&nbsp;Mail&nbsp;Connector&nbsp;(IMC)&nbsp;被重命名为&nbsp;Internet&nbsp;Mail&nbsp;Service。<br><br>在启动&nbsp;Telnet&nbsp;会话之前，必须具有要将此测试邮件发送到的目标用户的完整&nbsp;SMTP&nbsp;电子邮件地址。该电子邮件地址必须采用以下格式：&nbsp;
<p class=indent><var>User@Site.Domain.com</var></p>
您也可以具有运行&nbsp;SMTP&nbsp;服务的服务器计算机的完全限定域名&nbsp;(FQDN)&nbsp;或&nbsp;IP&nbsp;地址（例如，10.120.159.1）。如果服务器在您的组织中，您可能已经拥有这些信息。如果服务器是外部服务器，查找这些信息最简单的方法是使用&nbsp;Nslookup.exe&nbsp;以找到包含这些信息的&nbsp;DNS&nbsp;记录。&nbsp;有关&nbsp;NSlookup&nbsp;的其他信息，请单击下面的文章编号，以查看&nbsp;Microsoft&nbsp;知识库中相应的文章：&nbsp;
<p class=indent><a class=KBlink href="http://support.microsoft.com/default.aspx?kbid=200525"><font color=#0000ff><u>200525</u></font></a>&nbsp;使用&nbsp;NSlookup.exe</p>
有关如何获取&nbsp;Internet&nbsp;邮件交换器记录的其他信息，请单击下面的文章编号，以查看&nbsp;Microsoft&nbsp;知识库中相应的文章：&nbsp;
<p class=indent><a class=KBlink href="http://support.microsoft.com/default.aspx?kbid=203204"><font color=#0000ff><u>203204</u></font></a>&nbsp;XFOR：如何获取&nbsp;Internet&nbsp;邮件交换器记录</p>
<br>确保运行&nbsp;SMTP&nbsp;服务的服务器上已启动&nbsp;SMTP。要测试&nbsp;SMTP&nbsp;是否已启动，您可以运行本文中列出的基本测试，并验证您是否会收到来自远程服务器的&nbsp;220&nbsp;消息。这还将验证&nbsp;SMTP&nbsp;是否正在运行。<br><br><strong>注意：</strong>&nbsp;
<ul>
    <li>有些&nbsp;Telnet&nbsp;应用程序要求您打开本地回显功能，以查看键入的命令。要在&nbsp;Microsoft&nbsp;Telnet&nbsp;会话中执行此操作，请在命令提示符处键入&nbsp;<kbd><font face=新宋体>set&nbsp;local_echo</font></kbd>。&nbsp;
    <li>在&nbsp;Microsoft&nbsp;Windows&nbsp;XP&nbsp;中，应键入&nbsp;<kbd><font face=新宋体>set&nbsp;localecho</font></kbd>&nbsp;而不是&nbsp;<kbd><font face=新宋体>set&nbsp;local_echo</font></kbd>。&nbsp; </li>
</ul>
<h3>基本测试</h3>
按照下列步骤操作，以确保主机和远程&nbsp;SMTP&nbsp;服务器能够通信。如果在您键入以下任一命令之后，收到以下错误信息，则说明&nbsp;SMTP&nbsp;服务器因为语法错误或命令错误而无法识别您所键入的内容：<br>
<div class=errormsg>500&nbsp;Command&nbsp;not&nbsp;recognized</div>
检查该命令并再次键入它，或者验证您是否正在与&nbsp;Microsoft&nbsp;SMTP&nbsp;服务器直接通信。<br><br><strong>注意</strong>：Microsoft&nbsp;Telnet&nbsp;不允许您使用&nbsp;Backspace&nbsp;键。如果在键入时出错，必须按&nbsp;Enter&nbsp;键，然后开始键入新的命令。<br><br>在以下步骤中，您要从命令行中运行&nbsp;Telnet。要打开命令行，请单击&#8220;开始&#8221;，单击&#8220;运行&#8221;，在&#8220;打开&#8221;框中键入&nbsp;<kbd><font face=新宋体>cmd</font></kbd>，然后单击&#8220;确定&#8221;。&nbsp;
<ol class=dec>
    <li>您可以通过使用以下格式的&nbsp;Telnet&nbsp;命令来启动&nbsp;Telnet&nbsp;会话：<br><br><strong>注意</strong>：在键入每行内容之后按&nbsp;Enter&nbsp;键。&nbsp;
    <p class=indent><kbd><font face=新宋体>telnet&nbsp;<var>服务器名</var><var>端口号</var></font></kbd></p>
    例如，键入：&nbsp;
    <p class=indent><kbd><font face=新宋体>telnet&nbsp;<var>mail.contoso.com</var>&nbsp;<var>25</var></font></kbd></p>
    <font face="宋体, MS Song"><strong>注意</strong>：您可以将<var>服务器名</var>&nbsp;替换为您要连接到的&nbsp;SMTP&nbsp;服务器的&nbsp;IP&nbsp;地址或&nbsp;FQDN。记住在键入每个命令之后按&nbsp;<strong class=uiterm>Enter</strong>&nbsp;键。<br><br>如果该命令起作用，您将会收到来自&nbsp;SMTP&nbsp;服务器的类似以下内容的消息：</font>&nbsp;
    <p class=indent>?/P&gt;</p>
    <pre class=in_text>220&nbsp;site.contoso.com&nbsp;Microsoft&nbsp;Exchange&nbsp;Internet&nbsp;Mail&nbsp;Connector&nbsp;&lt;IMC&nbsp;的版本号&gt;
    </pre>
    <strong>注意</strong>：由于有许多不同版本的&nbsp;Microsoft&nbsp;SMTP&nbsp;或第三方&nbsp;SMTP&nbsp;服务器，因此您可能会收到来自接收服务器的不同的消息。不过，您肯定会收到包含服务器的&nbsp;FQDN&nbsp;和&nbsp;SMTP&nbsp;的版本的&nbsp;220&nbsp;消息。此外，所有版本的&nbsp;Microsoft&nbsp;SMTP&nbsp;在&nbsp;220&nbsp;消息中都包含&#8220;Microsoft&#8221;一词。&nbsp;
    <li>通过键入以下命令开始通信：&nbsp;
    <p class=indent><kbd><font face=新宋体>EHLO&nbsp;<var>test.com</var></font></kbd></p>
    <strong>注意</strong>：您可以使用&nbsp;HELO&nbsp;命令，但是&nbsp;EHLO&nbsp;是扩展&nbsp;SMTP&nbsp;动词集中的一个动词，SMTP&nbsp;的所有当前&nbsp;Microsoft&nbsp;实现都支持该动词集。除非您认为扩展&nbsp;SMTP&nbsp;动词有问题，否则最好使用&nbsp;EHLO。<br><br>如果该命令成功，您会收到以下消息：&nbsp;
    <p class=indent>?/P&gt;</p>
    <pre class=in_text>250&nbsp;OK
    </pre>
    <li>键入以下命令向接收&nbsp;SMTP&nbsp;服务器通知邮件发件人：&nbsp;
    <p class=indent><kbd><font face=新宋体>MAIL&nbsp;FROM:<var>Admin@test.com</var></font></kbd></p>
    <strong>注意</strong>：该地址可以是您想使用的任何&nbsp;SMTP&nbsp;地址，但是最好考虑以下问题：&nbsp;
    <ol class=alpha>
        <li>有些&nbsp;SMTP&nbsp;邮件系统会基于&nbsp;MAIL&nbsp;FROM:地址筛选邮件，并且会禁止某些&nbsp;IP&nbsp;地址连接到&nbsp;SMTP&nbsp;邮件系统，或者如果连接&nbsp;IP&nbsp;地址与&nbsp;SMTP&nbsp;邮件系统所在的域不匹配，它还会禁止该地址向&nbsp;SMTP&nbsp;邮件系统发送电子邮件。在本例中，该域是&nbsp;<var>test.com</var>。&nbsp;
        <li>如果您在发送邮件时没有使用有效的电子邮件地址，您将无法确定在发送邮件时是否有问题，因为未送达报告&nbsp;(NDR)&nbsp;无法到达无效的&nbsp;IP&nbsp;地址。如果您使用有效的电子邮件地址，您将会收到来自&nbsp;SMTP&nbsp;服务器的以下消息：&nbsp;
        <p class=indent>?/P&gt;</p>
        <pre class=in_text>250&nbsp;OK&nbsp;-&nbsp;MAIL&nbsp;FROM&nbsp;Admin@test.com
        </pre>
        </li>
    </ol>
    <li>键入以下命令向接收&nbsp;SMTP&nbsp;服务器通知邮件的收件人。<br><br><strong>注意</strong>：最好始终使用要发送到的域中的有效收件人&nbsp;SMTP&nbsp;地址。例如，如果您要发送到&nbsp;<var>john@domain.com</var>，必须确保域中存在&nbsp;<var>john@domain.com</var>。否则，您会收到&nbsp;NDR。<br><br>使用您要发送到的人员的&nbsp;SMTP&nbsp;地址键入以下命令：&nbsp;
    <p class=indent><kbd><font face=新宋体>RCPT&nbsp;TO:<var>User@Domain.Com</var></font></kbd></p>
    您会收到以下消息：&nbsp;
    <p class=indent>?/P&gt;</p>
    <pre class=in_text>250&nbsp;OK&nbsp;-&nbsp;Recipient&nbsp;User@&nbsp;Domain.Com
    </pre>
    <li>键入以下命令通知&nbsp;SMTP&nbsp;服务器您已准备好发送数据：&nbsp;
    <p class=indent><kbd><font face=新宋体>DATA</font></kbd></p>
    您会收到以下消息：&nbsp;
    <pre>354&nbsp;Send&nbsp;data.&nbsp;End&nbsp;with&nbsp;CRLF.CRLF
    </pre>
    <li>您现在已可以开始键入邮件的&nbsp;822/2822&nbsp;部分。用户将会在他们的收件箱中看到邮件的这一部分。键入以下命令以添加主题行：&nbsp;
    <p class=indent><kbd><font face=新宋体>Subject:<var>test&nbsp;message</var></font></kbd></p>
    按两次&nbsp;Enter&nbsp;键。此命令不会显示任何信息。<br><br><strong>注意</strong>：按两次&nbsp;Enter&nbsp;键为了与&nbsp;Request&nbsp;for&nbsp;Comments&nbsp;(RFC)&nbsp;822&nbsp;和&nbsp;2822&nbsp;保持一致。它规定&nbsp;822&nbsp;命令后面必须跟一个空行。&nbsp;
    <li>键入以下命令以添加邮件正文：&nbsp;
    <p class=indent><kbd><font face=新宋体>This&nbsp;is&nbsp;a&nbsp;test&nbsp;message&nbsp;you&nbsp;will&nbsp;not&nbsp;see&nbsp;a&nbsp;response&nbsp;from&nbsp;this&nbsp;command.</font></kbd></p>
    <li>在下一个空行中键入英文句点&nbsp;(.)，然后按&nbsp;Enter&nbsp;键。您会收到以下消息：&nbsp;
    <p class=indent>?/P&gt;</p>
    <pre class=in_text>250&nbsp;OK
    </pre>
    <li>键入以下命令关闭连接：&nbsp;
    <p class=indent><kbd><font face=新宋体>QUIT</font></kbd></p>
    您会收到以下消息：&nbsp;
    <p class=indent>?/P&gt;</p>
    <pre class=in_text>221&nbsp;closing&nbsp;connection
    </pre>
    <li>验证收件人是否收到您发送的消息。如果在应用程序事件日志中出现任何错误事件消息，或者接收邮件时出现问题，请检查主机的配置或通信。&nbsp; </li>
</ol>
<h3>高级测试</h3>
除本文前面列出的基本测试步骤外，您还可以使用送达回执对邮件进行双向测试。您可以使用此方法验证&nbsp;SMTP&nbsp;服务器是否可以接受入站连接，并且为发件人生成一个送达回执以测试&nbsp;SMTP&nbsp;服务器的出站连接。<br><br>要为测试邮件请求送达回执，请参见本文&#8220;基本测试&#8221;一节的第&nbsp;4&nbsp;步，以确保提供的信息是可以接收送达回执的有效电子邮件地址。然后在本文&#8220;基本测试&#8221;一节的第&nbsp;5&nbsp;步中，在&nbsp;Telnet&nbsp;会话中键入以下命令</div>
<img src ="http://www.blogjava.net/hua/aggbug/113200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-04-24 15:43 <a href="http://www.blogjava.net/hua/archive/2007/04/24/113200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML优化加快网页速度</title><link>http://www.blogjava.net/hua/archive/2007/03/30/107475.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Fri, 30 Mar 2007 06:36:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/03/30/107475.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/107475.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/03/30/107475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/107475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/107475.html</trackback:ping><description><![CDATA[
		<div>web开发人员是否必须掌握复杂的组件技术才能加快html页面的访问速度？答案是：不一定！实际上，有许多关于HTML与DHTML方面的技巧，它们原理简单而且上手容易。无论是技术高超的老手，还是初涉编程的菜鸟，领会这些都十分必要。<br /><br />     <strong>明显HTML，暗渡“公用脚本”</strong><br /><br />     减少web页面下载时间的关键就是设法减小文件大小。当多个页面共用一些成分内容时，就可以考虑将这些公用部分单独分离出来。比如：我们可以将多个HTML页面都用到的脚本程序编写成独立存在的.js文件，然后再在页面中按如下方式调用它：<br /><br />     &lt;script src="myfile.js"&gt;&lt;/script&gt;<br /><br />     这样，公用文件只需要下载一次，然后就进入缓冲区。等下次再次调用包含公用文件的html页面时，下载时间明显减少。<br /><br />     <strong>让样式表内容进入地下工作<br /></strong><br />     CSS是HTML装扮器，一个漂亮的Web页面不可能没有它。HTML页面中有多种引用CSS的方法，不同的方法导致的效率也不一样。通常，我们可以将定义于&lt;style&gt;&lt;/style&gt;间的样式控制代码提取出来，保存到单独的.css文件中，然后在HTML页面中以&lt;LINK&gt;标记或者@import标记的方式进行引用：<br /><br />     &lt;style&gt; <br /><br />     @import url("mysheet1.css"); <br /><br />     &lt;/style&gt; <br /><br /><br />     请注意2点：1、.css文件中无需包括&lt;style&gt;标记；2、@import和LINK标记要定义在HTML页面的HEAD部分。<br /><br />     <strong>宝贵内存节省两法<br /></strong><br />     尽量减少HTML页面占用的内存空间是加快页面下载速度的一个有效方法。在这方面，有2个需要注意的问题：<br /><br />     1、使用同一种脚本语言<br /><br />HTML页面离不开脚本程序的支持，我们经常会在页面中嵌入多种脚本语言，比如JavaScript与VBScript。但是，不知你发觉没有：这样的混合使用减慢了页面的访问速度。原因在于：要解释并运行多种脚本代码，就必须在内存中装载多种脚本引擎。所以，请尽量在页面中使用同一种脚本语言编写代码。<br /><br />     2、巧用IFrame<br /><br />     你使用过&lt;IFRAME&gt;标记吗？它可是一个非常美妙的功能。如果要在一个HTML文档中包含第2个页面的内容，通常的方法是使用&lt;FRAMESET&gt;标记。但是有了&lt;IFRAME&gt;，一切变得简单了。比如，开发一个文档预览页面，可以在左边放置一系列主题，在右边放置一个IFRAME，其中包含要预览的文档；当鼠标掠过左边的每一个主题链接时，就在右边建立一个新的IFRAME以预览文档。这样做，代码效率无疑是高效的，但同时导致了繁重的处理过程，最终是缓慢的速度。<br /><br />     没关系，我们有办法：只使用单一的IFRAME。当鼠标指向一个新主题时，只需要修改IFRAME元素的SRC属性即可。这样，任何时间内只会有一个预览文档保留在内存。<br /><br />     <strong>择优选用动画定位属性</strong><br /><br />     每天上网浏览页面，你一定会看到许多动画效果。比如，一个可爱的小兔子在页面上来回地走动 ... 实现这个效果的核心技术就是CCS定位。通常，我们是使用element.style.left和element.style.top2个属性来达到图形定位的目的。但是，这样做会产生一些问题：left属性返回一个字符串，并且其中包含了度量单位（比如100px)。因此，要设定新的位置坐标，就必须首先对这个字符串返回值进行处理，然后才能赋值，象下面一样：<br /><br />     dim stringLeft, intLeft <br /><br />     stringLeft = element.style.left <br /><br />     intLeft = parseInt(stringLeft) <br /><br />     intLeft = intLeft + 10 <br /><br />     element.style.left = intLeft; <br /><br />     你一定会感觉做这么点事情竟要编写这么复杂的代码，是否有更简洁的方法？当然有！请看这4个属性：posLeft、posTop、posWidth 和 posHeight，它们对应于相应字符串返回值的点数数值。好了，使用这些属性重新编写代码实现上面代码实现的功能：<br /><br />     element.style.posLeft += 10<br /><br />     <strong>代码短小、速度却更快！</strong><br /><br />     <strong>循环控制多个动画<br /></strong><br />     说到制作动画效果，当然离不开定时器的运用。通常的方法就是使用window.setTimeout来不断地定位页面上的元素。但是，如果页面上有多个动画要显示，是不是就要设定多个定时器呢？答案是No！原因很简单：定时器功能将消耗掉大量宝贵的系统资源。可是我们仍能在页面上控制多个动画，技巧就是使用一个循环。在循环中根据不同的变量值控制相应动画的位置，整个循环中只使用一个window.setTimeout()函数调用。<br /><br />     <strong>Visibility快于Display<br /></strong><br />     让图画时隐时现会创造很有趣的效果，有2种方法可以实现这个目的：使用CSS的visibility属性或者display属性。对于绝对位置元素，diaplay和visibility具有同样的效果。两者的区别在于：设置为display:none的元素将不再占用文档流的空间，而设置为visibility:hidden的元素仍然保留原位置。<br /><br />     但是如果要处理绝对位置的元素，使用visibility会更快。<br /><br />     <strong>从小处着手</strong><br /><br />     编写DHTML网页的一个重要提示是：从小处着手。初次编写DHTML页面时，一定不要试图在页面中使用你了解到的全部DHTML功能。每次可以只使用一个单一的新特征，并且仔细地观察由此产生的变化。如果发现性能有所下降，就可以快速地找到为什么。<br /><br />     <strong>脚本的DEFER化<br /></strong><br />     DEFER是脚本程序强大功能中的一个“无名英雄”。你可能从没有使用过它，但是看完这里的介绍后，相信你就离不开它。它告诉浏览器Script段包含了无需立即执行的代码，并且，与SRC属性联合使用，它还可以使这些脚本在后台被下载，前台的内容则正常显示给用户。<br /><br /><br /><br />     最后请注意两点：<br /><br />     1、不要在defer型的脚本程序段中调用document.write命令，因为document.write将产生直接输出效果。<br /><br />     2、而且，不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。<br /><br />     <strong>保持同一URL的大小写一致性</strong><br /><br />     我们都知道UNIX服务器是大小写敏感的，但是你知道吗：Internet Explorer的缓冲区也是区别对待大小写字符串的。因此，作为web开发者，一定要记住保持相同链接的URL字符串在不同位置的大小写的一致性。否则，就会在浏览器的缓冲区中存放同一位置的不同文件备份，也增加了下载同一位置内容的请求次数。这些都无疑降低了web访问效率。所以请谨记：同一位置的URL，在不同页面中请保持URL字符串的大小写一致性。<br /><br />     <strong>让标记有始有终</strong><br /><br />     自己编写或者查看他人的HTML代码时，我们一定都遇到过标记有头无尾的情况。比如：<br /><br />     &lt;P&gt;有头无尾标记举例 <br />     &lt;UL&gt; <br />     &lt;LI&gt;第一个<br />     &lt;LI&gt;第二个<br />     &lt;LI&gt;第三个<br />     &lt;/UL&gt; <br /><br />     很明显，上面的代码中缺少三个&lt;/LI&gt;结束标记。但是这并不妨碍它的正确执行。在HTML中，这样的标记还有一些，例如FRAME、IMG和P。 <br /><br />     可是请不要偷懒，请将结束标记写完整，这样做不仅使HTML代码格式规范，更可以加速页面的显示速度。因为Internet Explorer将不会花费时间判断和计算段落或者列表项目在哪里结束。<br /><br />     &lt;P&gt;有头有尾标记举例&lt;/P&gt; <br />     &lt;UL&gt; <br />     &lt;LI&gt;第一个&lt;/LI&gt; <br />     &lt;LI&gt;第二个&lt;/LI&gt; <br />     &lt;LI&gt;第三个&lt;/LI&gt; <br />     &lt;/UL&gt; <br /><br />     OK，以上列举了有关加速HTML页面的10个处理技巧，描述这些很简单，但是只有真正领会并掌握其中的本质，并且举一反三，才会编写出更快、更好的程序。</div>
<img src ="http://www.blogjava.net/hua/aggbug/107475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-03-30 14:36 <a href="http://www.blogjava.net/hua/archive/2007/03/30/107475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XP常用开始→运行→输入的命令 </title><link>http://www.blogjava.net/hua/archive/2007/03/26/106382.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Mon, 26 Mar 2007 05:45:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/03/26/106382.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/106382.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/03/26/106382.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/106382.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/106382.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span lang="EN-US">
										<font face="Times New Roman">XP</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">常用开始→运行→输入的命令</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">winchat--------XP</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">自带局域网聊天</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?XML:NAMESPACE PREFIX = O /?>
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">mem.exe--------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">显示内存使用情况</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">Msconfig.exe---</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">系统配置实用程序</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span lang="EN-US">
										<font face="Times New Roman">        mmc------------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">打开控制台</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">mobsync--------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">同步命令</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">dxdiag---------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">检查</span>
								<span lang="EN-US">
										<font face="Times New Roman">DirectX</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">信息</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">drwtsn32------ </font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">系统医生</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">devmgmt.msc--- </font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">设备管理器</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">dfrg.msc-------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">磁盘碎片整理程序</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">diskmgmt.msc---</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">磁盘管理实用程序</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">dcomcnfg-------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">打开系统组件服务</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span lang="EN-US">
										<font face="Times New Roman">net stop messenger-----</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">停止信使服务</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">net start messenger----</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">开始信使服务</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span lang="EN-US">
										<font face="Times New Roman">nslookup-------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">网络管理的工具向导</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">ntbackup-------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">系统备份和还原</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span lang="EN-US">
										<font face="Times New Roman">netstat -an----(TC)</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">命令检查接口</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">sysedit--------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">系统配置编辑器</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span lang="EN-US">
										<font face="Times New Roman">       secpol.msc-----</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">本地安全策略</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">syskey---------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">系统加密，一旦加密就不能解开，保护</span>
								<span lang="EN-US">
										<font face="Times New Roman">windows xp</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">系统的双重密码</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">services.msc---</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">本地服务设置</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">Sndvol32-------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">音量控制程序</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">sfc.exe--------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">系统文件检查器</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">sfc /scannow---windows</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">文件保护</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">tsshutdn-------60</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">秒倒计时关机命令</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span lang="EN-US">
										<font face="Times New Roman">taskmgr--------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">任务管理器</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span lang="EN-US">
										<font face="Times New Roman">explorer-------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">打开资源管理器</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">progman--------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">程序管理器</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">regedit.exe----</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">注册表</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">regedt32-------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">注册表编辑器</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">rononce -p ----15</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">秒关机</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">cmd.exe--------CMD</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">命令提示符</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">chkdsk.exe-----Chkdsk</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">磁盘检查</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　</span>
								<span lang="EN-US">
										<font face="Times New Roman">compmgmt.msc---</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">计算机管理</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span lang="EN-US">
										<font face="Times New Roman">lusrmgr.msc----</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">本机用户和组</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">Nslookup-------IP</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">地址侦测器</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">fsmgmt.msc-----</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">共享文件夹管理器</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">utilman--------</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">辅助工具管理器</span>
								<span lang="EN-US">
										<font face="Times New Roman">
										</font>
								</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<font face="Times New Roman" color="#000080" size="3"> </font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<font size="3">
						<font color="#000080">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">　　</span>
								<span lang="EN-US">
										<font face="Times New Roman">gpedit.msc-----</font>
								</span>
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: -Times New Roman-; mso-hansi-font-family: -Times New Roman-">组策略</span>
						</font>
				</font>
		</p>
<img src ="http://www.blogjava.net/hua/aggbug/106382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-03-26 13:45 <a href="http://www.blogjava.net/hua/archive/2007/03/26/106382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>应用HttpClient来对付各种顽固的WEB服务器(1)</title><link>http://www.blogjava.net/hua/archive/2007/03/16/104242.html</link><dc:creator>花</dc:creator><author>花</author><pubDate>Fri, 16 Mar 2007 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/hua/archive/2007/03/16/104242.html</guid><wfw:comment>http://www.blogjava.net/hua/comments/104242.html</wfw:comment><comments>http://www.blogjava.net/hua/archive/2007/03/16/104242.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hua/comments/commentRss/104242.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hua/services/trackbacks/104242.html</trackback:ping><description><![CDATA[一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器，用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面，有的需要用户登录后方可使用，或者需要认证以及是一些通过加密方式传输，例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面，比如从别人的网页中“偷”一些数据；利用某些站点提供的页面来完成某种功能，例如说我们想知道某个手机号码的归属地而我们自己又没有这样的数据，因此只好借助其他公司已有的网站来完成这个功能，这个时候我们需要向网页提交手机号码并从返回的页面中解析出我们想要的数据来。如果对方仅仅是一个很简单的页面，那我们的程序会很简单，本文也就没有必要大张旗鼓的在这里浪费口舌。但是考虑到一些服务授权的问题，很多公司提供的页面往往并不是可以通过一个简单的URL就可以访问的，而必须经过注册然后登录后方可使用提供服务的页面，这个时候就涉及到 COOKIE问题的处理。我们知道目前流行的动态网页技术例如ASP、JSP无不是通过COOKIE来处理会话信息的。为了使我们的程序能使用别人所提供的服务页面，就要求程序首先登录后再访问服务页面，这过程就需要自行处理cookie，想想当你用java.net.HttpURLConnection 来完成这些功能时是多么恐怖的事情啊！况且这仅仅是我们所说的顽固的WEB服务器中的一个很常见的“顽固”！再有如通过HTTP来上传文件呢？不需要头疼，这些问题有了“它”就很容易解决了！   
<p> </p><p> </p><p>我们不可能列举所有可能的顽固，我们会针对几种最常见的问题进行处理。当然了，正如前面说到的，如果我们自己使用 java.net.HttpURLConnection来搞定这些问题是很恐怖的事情，因此在开始之前我们先要介绍一下一个开放源码的项目，这个项目就是 Apache开源组织中的httpclient，它隶属于Jakarta的commons项目，目前的版本是2.0RC2。commons下本来已经有一个net的子项目，但是又把httpclient单独提出来，可见http服务器的访问绝非易事。</p><p>Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决，例如你不再管是HTTP或者HTTPS的通讯方式，告诉它你想使用HTTPS方式，剩下的事情交给httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们，为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容，然后循序渐进解决掉前进中的所有问题。</p><p>1． 读取网页(HTTP/HTTPS)内容</p><p>下面是我们给出的一个简单的例子用来访问某个页面</p><p align="left"><span>/*</span></p><p align="left"><span><span> </span>* Created on 2003-12-14 by Liudong</span></p><p align="left"><span><span> </span>*/</span></p><p align="left"><strong><span>package</span></strong><span> <span>http.demo;</span></span></p><p align="left"><span></span> </p><p align="left"><strong><span>import</span></strong><span> <span>java.io.IOException;</span></span></p><p align="left"><span></span> </p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.*;</span></span></p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.methods.*;</span></span></p><p align="left"><span>/**</span></p><p align="left"><span><span> </span><span>*</span> </span><span>最简单的</span><span>HTTP</span><span>客户端</span><span>,</span><span>用来演示通过</span><span>GET</span><span>或者</span><span>POST</span><span>方式访问某个页面</span></p><p align="left"><span><span> </span><span>*</span> <strong><span>@author</span></strong> <span>Liudong</span></span></p><p align="left"><span><span> </span><span>*/</span></span></p><p align="left"><strong><span>public</span></strong><span> <strong><span>class</span></strong> <span>SimpleClient</span> <span>{</span></span></p><p align="left"><span></span> </p><p align="left"><span><span>    </span><strong><span>public</span></strong> <strong><span>static</span></strong> <strong><span>void</span></strong> <span>main(String[]</span> <span>args)</span> <strong><span>throws</span></strong> <span>IOException</span></span></p><p align="left"><span><span>    </span><span>{</span></span></p><p align="left"><span><span>    </span><span>    </span><span>HttpClient</span> <span>client</span> <span>=</span> <strong><span>new</span></strong> <span>HttpClient();</span><span><span>    </span></span></span></p><p align="left"><span><span>        </span><span>//</span><span>设置代理服务器地址和端口</span><span><span> </span><span>    </span></span></span></p><p align="left"><span><span>        //client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port);</span></span></p><p align="left"><span><span>    </span><span>    </span>//</span><span>使用</span><span>GET</span><span>方法</span><span>，如果服务器需要通过</span><span>HTTPS</span><span>连接，那只需要将下面</span><span>URL</span><span>中的</span><span>http</span><span>换成</span><span>https</span></p><p align="left"><span><span>    </span><span>    </span><span>HttpMethod</span> <span>method</span> <span>=</span> <strong><span>new</span></strong> <span>GetMethod(</span><span>"http://java.sun.com"</span><span>);</span><span> </span></span></p><p align="left"><span><span>    </span><span>    </span><span>//</span><span>使用</span><span>POST</span><span>方法</span></span></p><p align="left"><span><span>    </span><span>    </span><span>//HttpMethod method = new PostMethod("http://java.sun.com");</span><span> </span></span></p><p align="left"><span><span>    </span><span>    </span><span>client.executeMethod(method);</span></span></p><p align="left"><span><span>        </span><span>//</span><span>打印服务器返回的状态</span></span></p><p align="left"><span><span>    </span><span>    </span><span>System.out.println(method.getStatusLine());</span></span></p><p align="left"><span><span>        </span><span>//</span><span>打印返回的信息</span></span></p><p align="left"><span><span>    </span><span>    </span><span>System.out.println(method.getResponseBodyAsString());</span></span></p><p align="left"><span><span>        </span><span>//</span><span>释放连接</span></span></p><p align="left"><span><span>    </span><span>    </span><span>method.releaseConnection();</span></span></p><p align="left"><span><span>    </span><span>}<br /></span><span>}</span></span></p><p align="left"> </p><p align="left"><span>在这个例子中首先创建一个HTTP客户端(HttpClient)的实例，然后选择提交的方法是GET或者POST，最后在HttpClient实例上执行提交的方法，最后从所选择的提交方法中读取服务器反馈回来的结果。这就是使用HttpClient的基本流程。其实用一行代码也就可以搞定整个请求的过程，非常的简单！</span></p><span><p align="left"><br />2． 以GET或者POST方式向网页提交参数<br /><br />其实前面一个最简单的示例中我们已经介绍了如何使用GET或者POST方式来请求一个页面，本小节与之不同的是多了提交时设定页面所需的参数，我们知道如果是GET的请求方式，那么所有参数都直接放到页面的URL后面用问号与页面地址隔开，每个参数用&amp;隔开，例如：<a href="http://java.sun.com/?name=liudong&amp;mobile=123456">http://java.sun.com/?name=liudong&amp;mobile=123456</a>，但是当使用POST方法时就会稍微有一点点麻烦。本小节的例子演示向如何查询手机号码所在的城市，代码如下：</p><p align="left"> </p><p align="left"><span>/*</span></p><p align="left"><span><span> </span>* Created on 2003-12-7 by Liudong</span></p><p align="left"><span><span> </span>*/</span></p><p align="left"><strong><span>package</span></strong><span> <span>http.demo;</span></span></p><p align="left"><span></span> </p><p align="left"><strong><span>import</span></strong><span> <span>java.io.IOException;</span></span></p><p align="left"><span></span> </p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.*;</span></span></p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.methods.*;</span></span></p><p align="left"><span>/**</span></p><p align="left"><span><span> </span><span>*</span> </span><span>提交参数演示</span></p><p align="left"><span><span> </span><span>*</span> </span><span>该程序连接到一个用于查询手机号码所属地的页面</span></p><p align="left"><span><span> </span><span>*</span> </span><span>以便查询号码段</span><span>1330227</span><span>所在的省份以及城市</span></p><p align="left"><span><span> </span><span>*</span> <strong><span>@author</span></strong> <span>Liudong</span></span></p><p align="left"><span><span> </span><span>*/</span></span></p><p align="left"><strong><span>public</span></strong><span> <strong><span>class</span></strong> <span>SimpleHttpClient</span> <span>{</span></span></p><p align="left"><span></span> </p><p align="left"><span><span>    </span><strong><span>public</span></strong> <strong><span>static</span></strong> <strong><span>void</span></strong> <span>main(String[]</span> <span>args)</span> <strong><span>throws</span></strong> <span>IOException</span></span></p><p align="left"><span><span>    </span><span>{</span></span></p><p align="left"><span><span>    </span><span>    </span><span>HttpClient</span> <span>client</span> <span>=</span> <strong><span>new</span></strong> <span>HttpClient();</span></span></p><p align="left"><span><span>    </span><span>    </span><span>client.getHostConfiguration().setHost(</span><span>"www.imobile.com.cn"</span><span>,</span> <span>80,</span> <span>"http"</span><span>);</span></span></p><p align="left"><span></span> </p><p align="left"><span><span>    </span><span>    </span><span>HttpMethod</span> <span>method</span> <span>=</span> <span>getPostMethod();</span><span>//</span><span>使用</span><span>POST</span><span>方式提交数据</span></span></p><p align="left"><span><span>    </span><span>    </span><span>client.executeMethod(method);</span></span></p><p align="left"><span><span>       </span><span>//</span><span>打印服务器返回的状态</span></span></p><p align="left"><span><span>    </span><span>    </span><span>System.out.println(method.getStatusLine());</span></span></p><p align="left"><span><span>    </span><span>    </span><span>//</span><span>打印</span><span>结果页面</span></span></p><p align="left"><span><span>    </span><span>    </span><span>String</span> <span>response</span> <span>=</span></span></p><p align="left"><span><span>       </span><span>    </span><strong><span>new</span></strong> <span>String(method.getResponseBodyAsString().getBytes(</span><span>"8859_1"</span><span>));</span></span></p><p align="left"><span><span>       </span><span>//</span><span>打印返回的信息</span></span></p><p align="left"><span><span>    </span><span>    </span><span>System.out.println(response);</span></span></p><p align="left"><span><span>    </span><span>    </span><span>method.releaseConnection();</span></span></p><p align="left"><span><span>    </span><span>}</span></span></p><p align="left"><span><span>    </span><span>/**</span></span></p><p align="left"><span><span>    </span><span> </span><span>*</span> </span><span>使用</span><span>GET</span><span>方式提交数据</span></p><p align="left"><span><span>    </span><span> </span><span>*</span> <strong><span>@return</span></strong></span></p><p align="left"><span><span>    </span><span> </span><span>*/</span></span></p><p align="left"><span><span>    </span><strong><span>private</span></strong> <strong><span>static</span></strong> <span>HttpMethod</span> <span>getGetMethod(){</span></span></p><p align="left"><span><span>    </span><span>    </span><strong><span>return</span></strong> <strong><span>new</span></strong> <span>GetMethod(</span><span>"/simcard.php?simcard=1330227"</span><span>);</span></span></p><p align="left"><span><span>    </span><span>}</span></span></p><p align="left"><span><span>    </span><span>/**</span></span></p><p align="left"><span><span>    </span><span> </span><span>*</span> </span><span>使用</span><span>POST</span><span>方式提交数据</span></p><p align="left"><span><span>    </span><span> </span><span>*</span> <strong><span>@return</span></strong></span></p><p align="left"><span><span>    </span><span> </span><span>*/</span></span></p><p align="left"><span><span>    </span><strong><span>private</span></strong> <strong><span>static</span></strong> <span>HttpMethod</span> <span>getPostMethod(){</span></span></p><p align="left"><span><span>    </span><span>    </span><span>PostMethod</span> <span>post</span> <span>=</span> <strong><span>new</span></strong> <span>PostMethod(</span><span>"/simcard.php"</span><span>);</span></span></p><p align="left"><span><span>    </span><span>    </span><span>NameValuePair</span> <span>simcard</span> <span>=</span> <strong><span>new</span></strong> <span>NameValuePair(</span><span>"simcard"</span><span>,</span><span>"1330227"</span><span>);</span></span></p><p align="left"><span><span>    </span><span>    </span><span>post.setRequestBody(</span><strong><span>new</span></strong> <span>NameValuePair[]</span> <span>{</span> <span>simcard});</span></span></p><p align="left"><span><span>    </span><span>    </span><strong><span>return</span></strong> <span>post;</span></span></p><p align="left"><span><span>    </span><span>}</span></span></p><p align="left"><span>}</span></p><p><span>在上面的例子中页面<a href="http://www.imobile.com.cn/simcard.php">http://www.imobile.com.cn/simcard.php</a>需要一个参数是simcard，这个参数值为手机号码段，即手机号码的前七位，服务器会返回提交的手机号码对应的省份、城市以及其他详细信息。GET的提交方法只需要在URL后加入参数信息，而POST则需要通过NameValuePair类来设置参数名称和它所对应的值</span></p><p><span>3． 处理页面重定向</span></p><p><span>在JSP/Servlet 编程中response.sendRedirect方法就是使用HTTP协议中的重定向机制。它与JSP中的&lt;jsp:forward …&gt;的区别在于后者是在服务器中实现页面的跳转，也就是说应用容器加载了所要跳转的页面的内容并返回给客户端；而前者是返回一个状态码，这些状态码的可能值见下表，然后客户端读取需要跳转到的页面的URL并重新加载新的页面。就是这样一个过程，所以我们编程的时候就要通过 HttpMethod.getStatusCode()方法判断返回值是否为下表中的某个值来判断是否需要跳转。如果已经确认需要进行页面跳转了，那么可以通过读取HTTP头中的location属性来获取新的地址。</span></p><span><p></p><table cellspacing="0" cellpadding="0" border="1"><tbody><tr><td valign="top" width="67"><p><span>状态码</span></p></td><td valign="top" width="216"><p><span>对应</span><span><font face="Times New Roman">HttpServletResponse</font></span><span>的常量</span></p></td><td valign="top" width="261"><p><span>详细描述</span></p></td></tr><tr><td valign="top" width="67"><p><span><font face="Times New Roman">301</font></span></p></td><td valign="top" width="216"><p><span><font face="Times New Roman">SC_MOVED_PERMANENTLY</font></span></p></td><td valign="top" width="261"><p><span>页面已经永久移到另外一个新地址</span></p></td></tr><tr><td valign="top" width="67"><p><span><font face="Times New Roman">302</font></span></p></td><td valign="top" width="216"><p><span><font face="Times New Roman">SC_MOVED_TEMPORARILY</font></span></p></td><td valign="top" width="261"><p><span>页面暂时移动到另外一个新的地址</span></p></td></tr><tr><td valign="top" width="67"><p><span><font face="Times New Roman">303</font></span></p></td><td valign="top" width="216"><p><span><font face="Times New Roman">SC_SEE_OTHER</font></span></p></td><td valign="top" width="261"><p><span>客户端请求的地址必须通过另外的</span><span><font face="Times New Roman">URL</font></span><span>来访问</span></p></td></tr><tr><td valign="top" width="67"><p><span><font face="Times New Roman">307</font></span></p></td><td valign="top" width="216"><p><span><font face="Times New Roman">SC_TEMPORARY_REDIRECT</font></span></p></td><td valign="top" width="261"><p><span>同</span><span><font face="Times New Roman">SC_MOVED_TEMPORARILY</font></span></p></td></tr></tbody></table><p>下面的代码片段演示如何处理页面的重定向</p><p align="left"><span>client.executeMethod(post);</span></p><p align="left"><span><span>        </span><span>System.out.println(post.getStatusLine().toString());</span> </span></p><p align="left"><span><span>        </span><span>post.releaseConnection();</span></span></p><p align="left"><span><span>        </span></span></p><p align="left"><span><span>        </span><span>//</span><span>检查是否重定向</span></span></p><p align="left"><span><span>        </span><strong><span>int</span></strong> <span>statuscode</span> <span>=</span> <span>post.getStatusCode();</span></span></p><p align="left"><span><span>        </span><strong><span>if</span></strong> <span>((statuscode</span> <span>==</span> <span>HttpStatus.SC_MOVED_TEMPORARILY)</span> <span>||</span></span></p><p align="left"><span><span>            </span><span>(statuscode</span> <span>==</span> <span>HttpStatus.SC_MOVED_PERMANENTLY)</span> <span>||</span></span></p><p align="left"><span><span>            </span><span>(statuscode</span> <span>==</span> <span>HttpStatus.SC_SEE_OTHER)</span> <span>||</span></span></p><p align="left"><span>(statuscode</span><span> <span>==</span> <span>HttpStatus.SC_TEMPORARY_REDIRECT))</span> <span>{</span></span></p><p align="left"><span>//</span><span>读取新的</span><span>URL</span><span>地址</span></p><p align="left"><span><span>            </span><span>Header</span> <span>header</span> <span>=</span> <span>post.getResponseHeader(</span><span>"location"</span><span>);</span></span></p><p align="left"><span><span>            </span><strong><span>if</span></strong> <span>(header</span> <span>!=</span> <strong><span>null</span></strong><span>)</span> <span>{</span></span></p><p align="left"><span><span>        </span><span>        </span><span>String</span> <span>newuri</span> <span>=</span> <span>header.getValue();</span></span></p><p align="left"><span><span>                </span><strong><span>if</span></strong> <span>((newuri</span> <span>==</span> <strong><span>null</span></strong><span>)</span> <span>||</span> <span>(newuri.equals(</span><span>""</span><span>)))</span></span></p><p align="left"><span><span>                    </span><span>newuri</span> <span>=</span> <span>"/"</span><span>;</span> </span></p><p align="left"><span><span>                </span><span>GetMethod</span> <span>redirect</span> <span>=</span> <strong><span>new</span></strong> <span>GetMethod(newuri);</span></span></p><p align="left"><span><span>                </span><span>client.executeMethod(redirect);</span></span></p><p align="left"><span><span>         </span><span>       </span><span>System.out.println(</span><span>"Redirect:"</span><span>+</span> <span>redirect.getStatusLine().toString());</span> </span></p><p align="left"><span><span>                </span><span>redirect.releaseConnection();</span></span></p><p align="left"><span><span>            </span><span>}</span> <strong><span>else</span></strong> </span></p><p align="left"><span><span>                </span><span>System.out.println(</span><span>"Invalid redirect"</span><span>);</span></span></p><p><span><span>        </span><span>}</span></span></p><p>我们可以自行编写两个JSP页面，其中一个页面用response.sendRedirect方法重定向到另外一个页面用来测试上面的例子。<br /><span><span><br /><br /><br /></span></span></p><p>4． 模拟输入用户名和口令进行登录</p><p>本小节应该说是HTTP客户端编程中最常碰见的问题，很多网站的内容都只是对注册用户可见的，这种情况下就必须要求使用正确的用户名和口令登录成功后，方可浏览到想要的页面。因为HTTP协议是无状态的，也就是连接的有效期只限于当前请求，请求内容结束后连接就关闭了。在这种情况下为了保存用户的登录信息必须使用到Cookie机制。以JSP/Servlet为例，当浏览器请求一个JSP或者是Servlet的页面时，应用服务器会返回一个参数，名为jsessionid（因不同应用服务器而异），值是一个较长的唯一字符串的Cookie，这个字符串值也就是当前访问该站点的会话标识。浏览器在每访问该站点的其他页面时候都要带上jsessionid这样的Cookie信息，应用服务器根据读取这个会话标识来获取对应的会话信息。</p><p>对于需要用户登录的网站，一般在用户登录成功后会将用户资料保存在服务器的会话中，这样当访问到其他的页面时候，应用服务器根据浏览器送上的 Cookie中读取当前请求对应的会话标识以获得对应的会话信息，然后就可以判断用户资料是否存在于会话信息中，如果存在则允许访问页面，否则跳转到登录页面中要求用户输入帐号和口令进行登录。这就是一般使用JSP开发网站在处理用户登录的比较通用的方法。</p><p>这样一来，对于HTTP的客户端来讲，如果要访问一个受保护的页面时就必须模拟浏览器所做的工作，首先就是请求登录页面，然后读取Cookie值；再次请求登录页面并加入登录页所需的每个参数；最后就是请求最终所需的页面。当然在除第一次请求外其他的请求都需要附带上Cookie信息以便服务器能判断当前请求是否已经通过验证。说了这么多，可是如果你使用httpclient的话，你甚至连一行代码都无需增加，你只需要先传递登录信息执行登录过程，然后直接访问想要的页面，跟访问一个普通的页面没有任何区别，因为类HttpClient已经帮你做了所有该做的事情了，太棒了！下面的例子实现了这样一个访问的过程。<br /></p><p align="left"><span>/*</span></p><p align="left"><span><span> </span>* Created on 2003-12-7 by Liudong</span></p><p align="left"><span><span> </span>*/</span></p><p align="left"><strong><span>package</span></strong><span> <span>http.demo;</span></span></p><p align="left"><span></span> </p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.*;</span></span></p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.cookie.*;</span></span></p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.methods.*;</span></span></p><p align="left"><span></span> </p><p align="left"><span>/**</span></p><p align="left"><span><span> </span><span>*</span> </span><span>用来演示登录表单的示例</span></p><p align="left"><span><span> </span><span>*</span> <strong><span>@author</span></strong> <span>Liudong</span></span></p><p align="left"><span><span> </span><span>*/</span></span></p><p align="left"><strong><span>public</span></strong><span> <strong><span>class</span></strong> <span>FormLoginDemo</span> <span>{</span></span></p><p align="left"><span></span> </p><p align="left"><span><span>    </span><strong><span>static</span></strong> <strong><span>final</span></strong> <span>String</span> <span>LOGON_SITE</span> <span>=</span> <span>"localhost"</span><span>;</span></span></p><p align="left"><span><span>    </span><strong><span>static</span></strong> <strong><span>final</span></strong> <strong><span>int</span></strong><span>    </span><span>LOGON_PORT</span> <span>=</span> <span>8080;</span></span></p><p align="left"><span><span>    </span></span></p><p align="left"><span><span>    </span><strong><span>public</span></strong> <strong><span>static</span></strong> <strong><span>void</span></strong> <span>main(String[]</span> <span>args)</span> <strong><span>throws</span></strong> <span>Exception{</span></span></p><p align="left"><span><span>    </span><span>    </span><span>HttpClient</span> <span>client</span> <span>=</span> <strong><span>new</span></strong> <span>HttpClient();</span></span></p><p align="left"><span><span>    </span><span>    </span><span>client.getHostConfiguration().setHost(LOGON_SITE,</span> <span>LOGON_PORT);</span></span></p><p align="left"><span><span>       </span></span></p><p align="left"><span><span>       </span><span>//</span><span>模拟登录页面</span><span>login.jsp-&gt;main.jsp</span></span></p><p align="left"><span><span>    </span><span>    </span><span>PostMethod</span> <span>post</span> <span>=</span> <strong><span>new</span></strong> <span>PostMethod(</span><span>"/main.jsp"</span><span>);</span></span></p><p align="left"><span><span>    </span><span>    </span><span>NameValuePair</span> <span>name</span> <span>=</span> <strong><span>new</span></strong> <span>NameValuePair(</span><span>"name"</span><span>,</span> <span>"ld"</span><span>);</span><span>     </span></span></p><p align="left"><span><span>    </span><span>    </span><span>NameValuePair</span> <span>pass</span> <span>=</span> <strong><span>new</span></strong> <span>NameValuePair(</span><span>"password"</span><span>,</span> <span>"ld"</span><span>);</span><span>     </span></span></p><p align="left"><span><span>    </span><span>    </span><span>post.setRequestBody(</span><strong><span>new</span></strong> <span>NameValuePair[]{name,pass});</span></span></p><p align="left"><span><span>       </span><strong><span>int</span></strong> <span>status</span> <span>=</span> <span>client.executeMethod(post);</span></span></p><p align="left"><span><span>    </span><span>    </span><span>System.out.println(post.getResponseBodyAsString());</span></span></p><p align="left"><span><span>    </span><span>    </span><span>post.releaseConnection();</span><span>  </span></span></p><p align="left"><span><span>       </span></span></p><p align="left"><span><span>       </span><span>//</span><span>查看</span><span>cookie</span><span>信息</span></span></p><p align="left"><span><span>    </span><span>    </span><span>CookieSpec</span> <span>cookiespec</span> <span>=</span> <span>CookiePolicy.getDefaultSpec();</span></span></p><p align="left"><span><span>    </span><span>    </span><span>Cookie[]</span> <span>cookies</span> <span>=</span> <span>cookiespec.match(LOGON_SITE,</span> <span>LOGON_PORT,</span> <span>"/"</span><span>,</span> <strong><span>false</span></strong><span>,</span> <span>client.getState().getCookies());</span></span></p><p align="left"><span><span>       </span><strong><span>if</span></strong> <span>(cookies.length</span> <span>==</span> <span>0)</span> <span>{</span></span></p><p align="left"><span><span>       </span><span>    </span><span>System.out.println(</span><span>"None"</span><span>);</span><span>    </span></span></p><p align="left"><span><span>       </span><span>}</span> <strong><span>else</span></strong> <span>{</span></span></p><p align="left"><span><span>       </span><span>    </span><strong><span>for</span></strong> <span>(</span><strong><span>int</span></strong> <span>i</span> <span>=</span> <span>0;</span> <span>i</span> <span>&lt;</span> <span>cookies.length;</span> <span>i++)</span> <span>{</span></span></p><p align="left"><span><span>           </span><span>    </span><span>System.out.println(cookies[i].toString());</span><span>    </span></span></p><p align="left"><span><span>           </span><span>}</span></span></p><p align="left"><span><span>       </span><span>}</span></span></p><p align="left"><span><span>       </span><span>//</span><span>访问所需的页面</span><span>main2.jsp</span></span></p><p align="left"><span><span>    </span><span>    </span><span>GetMethod</span> <span>get</span> <span>=</span> <strong><span>new</span></strong> <span>GetMethod(</span><span>"/main2.jsp"</span><span>);</span></span></p><p align="left"><span><span>    </span><span>    </span><span>client.executeMethod(get);</span></span></p><p align="left"><span><span>    </span><span>    </span><span>System.out.println(get.getResponseBodyAsString());</span></span></p><p align="left"><span><span>    </span><span>    </span><span>get.releaseConnection();</span></span></p><p align="left"><span><span>    </span><span>}</span></span></p><p><span>}</span></p><p><span>5． 提交XML格式参数</span></p><p><span>提交XML格式的参数很简单，仅仅是一个提交时候的ContentType问题，下面的例子演示从文件文件中读取XML信息并提交给服务器的过程，该过程可以用来测试Web服务。</span></p><span><p align="left"><strong><span>import</span></strong><span> <span>java.io.File;</span></span></p><p align="left"><strong><span>import</span></strong><span> <span>java.io.FileInputStream;</span></span></p><p align="left"><span></span> </p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.HttpClient;</span></span></p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.methods.EntityEnclosingMethod;</span></span></p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.methods.PostMethod;</span></span></p><p align="left"><span></span> </p><p align="left"><span>/**</span></p><p align="left"><span><span> </span><span>*</span> </span><span>用来演示提交</span><span>XML</span><span>格式数据的例子</span></p><p align="left"><span><span> </span><span>*/</span></span></p><p align="left"><strong><span>public</span></strong><span> <strong><span>class</span></strong> <span>PostXMLClient</span> <span>{</span></span></p><p align="left"><span></span> </p><p align="left"><span><span>    </span><strong><span>public</span></strong> <strong><span>static</span></strong> <strong><span>void</span></strong> <span>main(String[]</span> <span>args)</span> <strong><span>throws</span></strong> <span>Exception</span> <span>{</span></span></p><p align="left"><span><span>        </span><span>File</span> <span>input</span> <span>=</span> <strong><span>new</span></strong> <span>File(“test.xml”);</span></span></p><p align="left"><span><span>        </span><span>PostMethod</span> <span>post</span> <span>=</span> <strong><span>new</span></strong> <span>PostMethod(“http://localhost:8080/httpclient/xml.jsp”);</span></span></p><p align="left"><span><span>        </span><span>// </span><span>设置请求的内容直接从文件中读取</span></span></p><p align="left"><span><span>        </span><span>post.setRequestBody(</span><strong><span>new</span></strong> <span>FileInputStream(input));</span></span></p><p align="left"><span><span>        </span></span></p><p align="left"><span><span>        </span><strong><span>if</span></strong> <span>(input.length()</span> <span>&lt;</span> <span>Integer.MAX_VALUE)</span> </span></p><p align="left"><span><span>            </span><span>post.setRequestContentLength(input.length());</span></span></p><p align="left"><span><span>        </span><strong><span>else</span></strong><span>            </span><span>post.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED);</span></span></p><p align="left"><span><span>        </span></span></p><p align="left"><span><span>        </span><span>// </span><span>指定请求内容的类型</span></span></p><p align="left"><span><span>        </span><strong><span>post.setRequestHeader(</span><span>"Content-type"</span><span>,</span> <span>"text/xml; charset=GBK"</span><span>);</span></strong></span><strong></strong></p><p align="left"><span><span>        </span></span></p><p align="left"><span><span>       </span><span> </span><span>HttpClient</span> <span>httpclient</span> <span>=</span> <strong><span>new</span></strong> <span>HttpClient();</span> </span></p><p align="left"><span><span>        </span><strong><span>int</span></strong> <span>result</span> <span>=</span> <span>httpclient.executeMethod(post);</span> </span></p><p align="left"><span><span>        </span><span>System.out.println(</span><span>"Response status code: "</span> <span>+</span> <span>result);</span></span></p><p align="left"><span><span>        </span><span>System.out.println(</span><span>"Response body: "</span><span>);</span></span></p><p align="left"><span><span>        </span><span>System.out.println(post.getResponseBodyAsString());</span></span></p><p align="left"><span><span>        </span><span>post.releaseConnection();</span></span></p><p align="left"><span><span>    </span><span>}</span></span></p><p><span>}</span></p><p><span>6． 通过HTTP上传文件</span></p><p><span>httpclient使用了单独的一个HttpMethod子类来处理文件的上传，这个类就是MultipartPostMethod，该类已经封装了文件上传的细节，我们要做的仅仅是告诉它我们要上传文件的全路径即可，下面的代码片段演示如何使用这个类。</span></p><span><p align="left"><span>MultipartPostMethod</span><span> <span>filePost</span> <span>=</span> <strong><span>new</span></strong> <span>MultipartPostMethod(targetURL);</span></span></p><p align="left"><span>filePost.addParameter(</span><span>"fileName"</span><span>,</span><span> <span>targetFilePath);</span></span></p><p align="left"><span>HttpClient</span><span> <span>client</span> <span>=</span> <strong><span>new</span></strong> <span>HttpClient();</span></span></p><p align="left"><span>//</span><span>由于要上传的文件可能比较大</span><span>,</span><span>因此在此设置最大的连接超时时间</span></p><p align="left"><span>client.getHttpConnectionManager().</span><span><span>getParams().setConnectionTimeout(5000);</span></span></p><p><strong><span>int</span></strong><span> <span>status</span> <span>=</span> <span>client.executeMethod(filePost);</span><br /></span></p><p> </p><p>上面代码中，targetFilePath即为要上传的文件所在的路径。</p><p>7． 访问启用认证的页面</p><p>我们经常会碰到这样的页面，当访问它的时候会弹出一个浏览器的对话框要求输入用户名和密码后方可，这种用户认证的方式不同于我们在前面介绍的基于表单的用户身份验证。这是HTTP的认证策略，httpclient支持三种认证方式包括：基本、摘要以及NTLM认证。其中基本认证最简单、通用但也最不安全；摘要认证是在HTTP 1.1中加入的认证方式，而NTLM则是微软公司定义的而不是通用的规范，最新版本的NTLM是比摘要认证还要安全的一种方式。</p><p>下面例子是从httpclient的CVS服务器中下载的，它简单演示如何访问一个认证保护的页面：<br /></p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.HttpClient;</span></span></p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.UsernamePasswordCredentials;</span></span></p><p align="left"><strong><span>import</span></strong><span> <span>org.apache.commons.httpclient.methods.GetMethod;</span></span></p><p align="left"><span></span> </p><p align="left"><strong><span>public</span></strong><span> <strong><span>class</span></strong> <span>BasicAuthenticationExample</span> <span>{</span></span></p><p align="left"><span><span>    </span><strong><span>public</span></strong> <span>BasicAuthenticationExample()</span> <span>{</span></span></p><p align="left"><span><span>    </span><span>}</span></span></p><p align="left"><span><span>   </span><span> </span><strong><span>public</span></strong> <strong><span>static</span></strong> <strong><span>void</span></strong> <span>main(String[]</span> <span>args)</span> <strong><span>throws</span></strong> <span>Exception</span> <span>{</span></span></p><p align="left"><span><span>        </span><span>HttpClient</span> <span>client</span> <span>=</span> <strong><span>new</span></strong> <span>HttpClient();</span></span></p><p align="left"><span><span>        </span><span>client.getState().setCredentials(</span></span></p><p align="left"><span><span>            </span><span>"www.verisign.com"</span><span>,</span></span></p><p align="left"><span><span>            </span><span>"realm"</span><span>,</span></span></p><p align="left"><span><span>            </span><strong><span>new</span></strong> <span>UsernamePasswordCredentials(</span><span>"username"</span><span>,</span> <span>"password"</span><span>)</span></span></p><p align="left"><span><span>        </span><span>);</span></span></p><p align="left"><span><span>        </span><span>GetMethod</span> <span>get</span> <span>=</span> <strong><span>new</span></strong> <span>GetMethod(</span><span>"https://www.verisign.com/products/index.html"</span><span>);</span></span></p><p align="left"><span><span>        </span><span>get.setDoAuthentication(</span> <strong><span>true</span></strong> <span>);</span></span></p><p align="left"><span><span>        </span><strong><span>int</span></strong> <span>status</span> <span>=</span> <span>client.executeMethod(</span> <span>get</span> <span>);</span></span></p><p align="left"><span><span>        </span><span>System.out.println(status+</span><span>"\n"</span><span>+</span> <span>get.getResponseBodyAsString());</span></span></p><p align="left"><span><span>        </span><span>get.releaseConnection();</span></span></p><p align="left"><span><span>    </span><span>}</span></span></p><p><span>}</span></p><p><span>8． 多线程模式下使用httpclient</span></p><p><span>多线程同时访问httpclient，例如同时从一个站点上下载多个文件。对于同一个HttpConnection同一个时间只能有一个线程访问，为了保证多线程工作环境下不产生冲突，httpclient使用了一个多线程连接管理器的类： MultiThreadedHttpConnectionManager，要使用这个类很简单，只需要在构造HttpClient实例的时候传入即可，代码如下：</span></p><span><p align="left"><span>MultiThreadedHttpConnectionManager</span><span> <span>connectionManager</span> <span>=</span> </span></p><p align="left"><span><span>   </span><strong><span>new</span></strong> <span>MultiThreadedHttpConnectionManager();</span></span></p><p><span><span>HttpClient</span> <span>client</span> <span>=</span> <strong><span>new</span></strong> <span>HttpClient(connectionManager);</span></span></p><p><span><span>以后尽管访问client实例即可。</span></span></p><p><span><span>参考资料：</span></span></p><p><span><span>httpclient首页：    <a href="http://jakarta.apache.org/commons/httpclient/">http://jakarta.apache.org/commons/httpclient/</a><br />关于NTLM是如何工作：  <a href="http://davenport.sourceforge.net/ntlm.html">http://davenport.sourceforge.net/ntlm.html</a> </span></span></p></span></span></span></span></span><img src ="http://www.blogjava.net/hua/aggbug/104242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hua/" target="_blank">花</a> 2007-03-16 13:57 <a href="http://www.blogjava.net/hua/archive/2007/03/16/104242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>