﻿<?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/yukui/category/27217.html</link><description>Eclipse、Java、C#、PS、Web、Asp、.NET、SQL、</description><language>zh-cn</language><lastBuildDate>Sun, 06 Apr 2008 12:42:48 GMT</lastBuildDate><pubDate>Sun, 06 Apr 2008 12:42:48 GMT</pubDate><ttl>60</ttl><item><title>我的www.kuizi.com，终于又开通了，欢迎来访</title><link>http://www.blogjava.net/yukui/archive/2008/04/04/190833.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 04 Apr 2008 14:02:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2008/04/04/190833.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/190833.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2008/04/04/190833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/190833.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/190833.html</trackback:ping><description><![CDATA[我的<a href="http://www.kuizi.com/">www.kuizi.com</a>，终于又开通了，欢迎来访
<img src ="http://www.blogjava.net/yukui/aggbug/190833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2008-04-04 22:02 <a href="http://www.blogjava.net/yukui/archive/2008/04/04/190833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Fedora8下面的常用软件列表</title><link>http://www.blogjava.net/yukui/archive/2008/01/21/176671.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Mon, 21 Jan 2008 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2008/01/21/176671.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/176671.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2008/01/21/176671.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/176671.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/176671.html</trackback:ping><description><![CDATA[一.软件列表：<br />
Firefox（系统自带）<br />
Pidgin（系统自带）<br />
prozilla<br />
Java Runtime Environment<br />
Adobe Flash Player<br />
<br />
Adobe Reader<br />
文泉驿正黑字体<br />
ISO Master<br />
rar/unrar<br />
星际译王<br />
chmsee<br />
gFTP<br />
Thunderbird<br />
QTerm<br />
eva QQ<br />
KuickShow（系统自带）<br />
GIMP（系统自带）<br />
Audacious<br />
MPlayer<br />
RealPlayer<br />
qsopcast<br />
Deluge<br />
aMule<br />
Nero<br />
<br />
二.准备工作：<br />
加入常用源：<br />
freshrpms-release-1.1-1.fc.noarch.rpm<br />
livna-release-8.rpm<br />
(fedora-cn的源至今没有release)<br />
yum加速：<br />
yum-fastestmirror-1.1.8-1.fc8.noarch.rpm<br />
<br />
三.安装软件：<br />
1.浏览器：Firefox<br />
略。<br />
注：请参考《Firefox常用插件和扩展》<br />
<br />
2.通讯工具：Pidgin<br />
略。<br />
<br />
3.下载工具：prozilla<br />
prozilla-2.0.4.tar.bz2<br />
requires: prozilla1.patch<br />
<br />
4.Java Runtime Environment<br />
jre-6u3-linux-i586.bin<br />
<br />
5.Adobe Flash Player<br />
install_flash_player_9_linux.tar.gz<br />
<br />
6.阅读器：Adobe Reader<br />
AdobeReader_chs-8.1.1-1.i486.tar.bz2<br />
<br />
7.文泉驿正黑字体<br />
wqy-zenhei-fonts-0.2.16-0.2.20071031cvs.fc8.noarch.rpm<br />
<br />
8.ISO Master<br />
isomaster-1.1-2.fc8.i386.rpm<br />
<br />
9.压缩／解压：rar/unrar<br />
rar-3.7.0-0.1.beta1.fc6.i386.rpm<br />
unrar-3.7.8-1.lvn8.i386.rpm<br />
<br />
10.星际译王<br />
stardict-3.0.1-1.fc8.i386.rpm<br />
plugins: stardict-oxford-gb-2.4.2.tar.bz2 （牛津现代英汉双解词典）<br />
stardict-langdao-ec-gb-2.4.2.tar.bz2（朗道英汉字典）<br />
stardict-langdao-ce-gb-2.4.2.tar.bz2（朗道汉英字典）<br />
stardict-kdic-computer-gb-2.4.2.tar.bz2（计算机词汇）<br />
<br />
11.chmsee<br />
chmsee-1.0.0-1.25.fc8.i386.rpm<br />
requires: chmlib-0.39-5.fc8.i386.rpm<br />
<br />
12.FTP客户端：gFTP<br />
gftp-2.0.18-7.fc8.i386.rpm<br />
<br />
13.Thunderbird<br />
thunderbird-2.0.0.9-1.fc8.i386.rpm<br />
<br />
14.BBS工具：QTerm<br />
qterm-0.4.0.tar.bz2<br />
<br />
15.聊天工具：eva QQ<br />
eva-20070723.tar.bz2<br />
<br />
16.图片浏览：KuickShow<br />
略<br />
<br />
17.图像处理：GIMP<br />
略<br />
<br />
18.音乐播放：Audacious<br />
audacious-1.3.2-3.fc8.i386.rpm<br />
requires: audacious-libs-1.3.2-3.fc8.i386.rpm<br />
audacious-devel-1.3.2-3.fc8.i386.rpm<br />
plugins: audacious-plugins-1.3.5-3.fc8.i386.rpm<br />
audacious-plugins-nonfree-aac-1.3.5-1.lvn8.i386.rpm<br />
audacious-plugins-nonfree-alac-1.3.5-1.lvn8.i386.rpm<br />
audacious-plugins-nonfree-lame-1.3.5-1.lvn8.i386.rpm<br />
audacious-plugins-nonfree-mp3-1.3.5-1.lvn8.i386.rpm<br />
audacious-plugins-nonfree-wma-1.3.5-1.lvn8.i386.rpm<br />
audacious-mac-0.2.0.tar.gz<br />
requires: mac-3.99-u4-b5.tar.gz<br />
<br />
19.媒体播放：MPlayer<br />
MPlayer-1.0rc2.tar.bz2<br />
plugins: lame-3.97.tar.gz<br />
xvidcore-1.1.3.tar.gz<br />
live.2007.11.01.tar.gz<br />
essential-20071007.tar.bz2<br />
Blue-1.7.tar.bz2<br />
注：MPlayer的安装请参考《编译安装MPlayer》<br />
<br />
20.网络电视：qsopcast<br />
qsopcast-0.3.5-2mgc.i686.rpm<br />
requires: sp-sc-1.0.2-1mgc.i686.rpm<br />
<br />
21.BT客户端：Deluge<br />
deluge-0.5.6.2-1.fc8.i386.rpm<br />
<br />
22.aMule<br />
amule-2.1.3-3.fc7.i386.rpm<br />
<br />
23.刻录软件<br />
nerolinux-3.0.2.1-x86.rpm<br />
<br />
四.参考：<br />
<a href="http://www.mjmwired.net/resources/mjm-fedora-f8.html" target="_blank"><font color="#22229c">Personal Fedora 8 Installation Guide</font></a>
<img src ="http://www.blogjava.net/yukui/aggbug/176671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2008-01-21 09:49 <a href="http://www.blogjava.net/yukui/archive/2008/01/21/176671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>提升安全性Win XP必禁的十大服务</title><link>http://www.blogjava.net/yukui/archive/2008/01/19/176444.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 19 Jan 2008 03:22:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2008/01/19/176444.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/176444.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2008/01/19/176444.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/176444.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/176444.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Windows提供了很多非常有价值的服务，但很多服务都是双刃剑，用不好就会带来诸多安全隐患。以下十项服务是对安全威胁较大的服务，建议普通用户一定要禁用它。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2008/01/19/176444.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/176444.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2008-01-19 11:22 <a href="http://www.blogjava.net/yukui/archive/2008/01/19/176444.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>装sql server2000时提示command line option syntax error!type command /? for help怎么办？？</title><link>http://www.blogjava.net/yukui/archive/2008/01/19/176442.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 19 Jan 2008 03:16:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2008/01/19/176442.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/176442.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2008/01/19/176442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/176442.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/176442.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2008/01/19/176442.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/176442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2008-01-19 11:16 <a href="http://www.blogjava.net/yukui/archive/2008/01/19/176442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Maxthon2假死与崩溃的原因及分析</title><link>http://www.blogjava.net/yukui/archive/2008/01/19/176436.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 19 Jan 2008 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2008/01/19/176436.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/176436.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2008/01/19/176436.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/176436.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/176436.html</trackback:ping><description><![CDATA[<h2>&nbsp;</h2>
<div class="t_msgfont" id="postmessage_35339"><font color="red">1、安全工具篇：</font> <br />
1）卡巴6.0.411 和N多软件有兼容性问题，解决方法只能换其他版本，并尽量把mx加入信任列表(有其他防火墙如果碰到假死也可以采用此方法能有效地降低假死崩溃的几率)。 <br />
2）360监控开启可能会导致<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%E4%B8%8B%E8%BD%BD">下载</span>东西调用<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%E4%B8%8B%E8%BD%BD">下载</span>软件的时候崩溃。（仅在XP下，而且并非每个人都会这样，我个人就不会）。 <br />
<font color="red">2、输入法篇：</font> <br />
输入法是最有可能导致假死的原因之一，原因是很多输入法都不支持傲游2的ui多线程功能，幸好，随着今年几大输入法的升级，这些问题都解决了。当然，你硬是不升级或不换输入法的话，也可以关闭多线程来解决这个问题。 <br />
1）（所有老输入法）新标签中要重新打开输入法——这是由于该输入法不支持多线程，请升级到输入法的最新版本，并确认其是否兼容mt2的标签多线程。 <br />
2）安装紫光5导致对话框无法在前端显示问题——请升级到紫光6。 <br />
3）紫光6使用透明效果会导致多线程假死，请关闭透明效果。 <br />
4）极点5造成崩溃问题——可以升级到极点6，更新声明已解决与mt的兼容问题。 <br />
5）搜狗3更新细胞词库造成崩溃问题——此问题可在下一版中得到解决。 <br />
<font color="red">3、其他问题：</font> <br />
1）web迅雷有可能导致假死。（原因可能也和上面所说的360监控有关）可使用ayu版的去广告迅雷代替使用。 <br />
2）（个人经验）部分大型图片网站假死，请清除一次缓存（在网页工具栏上的清除历史记录中有），如再次出现可以重复，最好装上增强功能中广告过滤里面的插件，并在安装完后点击更新。 <br />
3）Flash9，有个版本的flash.ocx有问题，导致<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%E6%B5%8F%E8%A7%88%E5%99%A8">浏览器</span>崩溃，解决方法是换flash9的新版。 <br />
<br />
4）是否也启用了SiteListUpdaterNoURL.xml这个过滤包 ，这个超占资源,请停掉它,启用SiteListUpdater.xml就够了 <br />
5：新版MT2有安全监控功能，请到设置-安全和隐私中，把安全监控功能关闭了。 <br />
================================================ <br />
<font color="blue">网页浏览不正常解决大全：</font> <br />
1、部分网页浏览异常（例如Qzone），有时候是和杀毒软件的监控有关，请注意调整杀毒软件的监控选项。 <br />
2、清除烦恼插件会造成部分问题，请勿在新版出来之前使用，其中的功能请用其他插件或过滤包实现。 <br />
3、不慎打开代理会导致你的网页打开出现问题，经常打不开或显示不出图片，这时请你关闭代理。 <br />
4、IDM下载软件，会导致傲游过滤系统失效。 <br />
================================================ <br />
<font color="darkgreen">推荐mt安装方式： <br />
</font>全新安装： <br />
1、安装mt2 <br />
2、设定完后，在增强功能中选择你常用的插件，这些插件是经过验证的。个人推荐广告过滤中的那款插件和viewpage，当然，还有一款叫做AdHunter Whitelister的插件也很不错，可以将标签加入到白名单。记住，清除烦恼有问题，请勿使用。 <br />
3、下载置顶贴中的过滤包合集（假如你有需要的话），没需要则只使用插件中的那个AdHunterEnhancer来更新狐狸的规则就可以了。 <br />
4/另外取消右下角的过滤/嗅探提示窗可以大大减低页面加载的时间及 <span class="t_tag" onclick="tagshow(event)" href="tag.php?name=CPU">CPU</span> 占用： <br />
- 工具 &gt; 傲游设置中心 &gt; 广告猎手 &gt; 取消 "显示内容过滤的提示窗口" <br />
- 工具 &gt; 网页嗅探器 &gt; 取消 "Show Notify Window" <br />
<br />
5、一般来说，这样你的mt2就会很稳定，很舒适地运行了。 <br />
6、取消右下角的过滤/嗅探提示窗可以大大减低页面加载的时间及 CPU 占用： <br />
- 工具 &gt; 傲游设置中心 &gt; 广告猎手 &gt; 取消 "显示内容过滤的提示窗口" <br />
- 工具 &gt; 网页嗅探器 &gt; 取消 "Show Notify Window"</div>
<img src ="http://www.blogjava.net/yukui/aggbug/176436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2008-01-19 11:00 <a href="http://www.blogjava.net/yukui/archive/2008/01/19/176436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网民出招应对运营商封堵ADSL“一拖N”</title><link>http://www.blogjava.net/yukui/archive/2008/01/15/175413.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Tue, 15 Jan 2008 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2008/01/15/175413.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/175413.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2008/01/15/175413.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/175413.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/175413.html</trackback:ping><description><![CDATA[<div class="left_1">
<h1 align="center">网民出招应对运营商封堵ADSL&#8220;一拖N&#8221;</h1>
<script language="javascript" src="http://www.51cto.com/php/ajax_art_2.js"></script>作者: 汪小星 方南 出处:南方都市报　<font color="#cc0000">&nbsp;(&nbsp;<span id="count0_3">3</span>&nbsp;)&nbsp;砖&nbsp;&nbsp;(&nbsp;<span id="count0_1">4</span>&nbsp;)&nbsp;好&nbsp;&nbsp;<a title="查看所有评论" style="color: #cc0000" href="http://network.51cto.com/php/feedbackt.php?id=63884" target="_blank">评论&nbsp;(&nbsp;<span id="feedback">1 </span>) 条</a> </font>　<a title="技术论坛" href="http://bbs.51cto.com/" target="_blank">进入论坛</a> </div>
<div class="left_2"><span class="font_3">更新时间：</span><a title="滚动新闻" href="http://network.51cto.com/oldnews" target="_blank">2008-01-09 09:39</a><br />
<span class="font_3">关 键 词：</span><a href="http://network.51cto.com/php/search.php?keyword=%BF%ED%B4%F8" target="_blank">宽带</a>&nbsp;&nbsp;<a href="http://network.51cto.com/php/search.php?keyword=%B7%E2%B6%C2" target="_blank">封堵</a>&nbsp;&nbsp;<a href="http://network.51cto.com/php/search.php?keyword=%D2%BB%CD%CFN" target="_blank">一拖N</a>&nbsp;&nbsp;<a href="http://network.51cto.com/php/search.php?keyword=%D3%A6%B6%D4" target="_blank">应对</a>&nbsp;&nbsp;<a href="http://network.51cto.com/php/search.php?keyword=%B5%E7%D0%C5" target="_blank">电信</a><br />
<span class="font_3">阅读提示：</span><span class="shortmsg">&#8220;一拖N&#8221;将遭技术屏蔽，可以预见，未来更为&#8220;繁复&#8221;的限制手段和&#8220;高深&#8221;的破解方法还将层出不穷，直到宽带资费降到了大多数人可以接受一台机用一个账号，或包月资费不再是运营商宽带收入主体的时候。</span>
<div><script src="/js/article/keywords_ad.js"></script><iframe src="http://other.51cto.com/js/article/keywords_ad.php" frameborder="0" width="350" scrolling="no" height="28"></iframe></div>
</div>
<div class="left_3">
<p>
<p>日前，多名用户表示，因为共享上网电脑过多而被电信断网。广东电信相关人士解释称，在电信和用户在签署宽带服务协议中已经明确告知，未经广州电信书面同意，宽带线路在同一时间仅允许该用户家庭内2台电脑同时上网使用，&#8220;我们主要是为了防止黑网吧、小企业等经营性行为而采取的对应措施&#8221;。针对此事，网民纷纷出招应对运营商封堵ADSL&#8220;一拖N&#8221; 。</p>
<p><strong>回合一：</strong><strong>决战MAC地址</strong> </p>
<p><strong>「电信之盾」：</strong><strong>扫描MAC地址</strong> </p>
<p>通常情况下我们使用路由器共享ADSL上网是采用NAT（地址翻译）方式，通过ADSLMODEM或路由器NAT功能在原有内网电脑所发出的数据包，封装一个合法的公网IP地址，以此IP地址来访问互联网，而原有的MAC地址与IP地址作为原地址，NAT通过它转发给指定的内网电脑，同时让公网无法知晓内网的情况。电信运营商通过不断扫描，可检查出同一个IP地址数据包中是否含有多个MAC地址，以此来判断用户是否共享上网。 </p>
<p><strong>「网友之矛」：</strong><strong>修改MAC地址</strong> </p>
<p>对于这种限制，坊间流传的破解方法是把每台的MAC地址改为一样，俗称复制MAC地址。首先要获取本机的MAC地址，方法是右键点击&#8220;网上邻居&#8221;选择&#8220;属性&#8221;，然后右键点击&#8220;本地连接&#8221;，选择&#8220;状态&#8221;，点击&#8220;支持&#8221;标签，在&#8220;详细信息&#8221;标签中显示的&#8220;实际地址&#8221;就是本机的MAC地址。具体的修改方法有3种。 </p>
<p><strong>1、修改注册表</strong> </p>
<p>热心网友称，通过修改注册表可避开电信用户共享限制。 </p>
<p>其举例说，在Winodws98下运行Windows的注册表编辑器，展开&#8220;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net&#8221;，会看到类似&#8220;0000、0001、0002&#8221;的子键。从&#8220;0000&#8221;子键开始点击，依次查找子键下的&#8220;DriverDesc&#8221;键的内容，直到找到与查找的目标完全相同的网卡注册表信息为止。当找到正确的网卡后，点击下拉式菜单&#8220;编辑/新建/字符串&#8221;，串的名称为&#8220;Networkad-dress&#8221;，在新建的&#8220;Networkaddress&#8221;串名称上双击鼠标就可以输入数值了。输入你想指定的新的MAC地址值。在&#8220;NetworkAddress&#8221;下继续添加一个名为&#8220;ParamDesc&#8221;的字串值，它将作为&#8220;NetworkAddress&#8221;项的描述，数值可以取为&#8220;MACAddress&#8221;。再把它的内容修改为你想设定的内容，重新启动计算机即可。 </p>
<p><strong>2、修改网卡属性</strong> </p>
<p>大部分的网卡都可以通过在控制面板中修改网卡属性来更改其MAC地址，在&#8220;设备管理器中&#8221;右键点击需要修改MAC地址的网卡图标，并选择&#8220;属性/高级&#8221;选项卡。在&#8220;属性&#8221;区，就可以看到一个称作&#8220;NetworkAddress&#8221;的项目，打开后在右侧&#8220;值&#8221;的下方，输入要指定的MAC地址值，重启后就会生效。 </p>
<p><strong>3、使用第三方软件</strong> </p>
<p>如果是Windows2000/XP的用户，可以使用MAC地址修改软件SMAC.运行SMAC后，窗口中的列表框列出计算机上正处于工作状态的网卡。选定要修改的网卡后，在列表框下方的六个输入框中输入新的MAC地址后，点击右侧的&#8220;UpdateMAC&#8221;即可完成。修改完成后，要使设置生效，同样需要重新启动系统。 </p>
<p><strong>回合二：</strong><strong>决战SNMP（简单网络管理协议）</strong> </p>
<p><strong>「电信之盾」：</strong><strong>查看SNMP</strong> </p>
<p>部分电信运营商使用更先进的检测方法，查看SNMP（简单网络管理协议）。有些路由器和ADSLMODEM内置SNMP服务，有的使用&#8220;161&#8221;商品作为服务端口，运营商可通过软件查看、判断通过该ADSL线路共享上网的电脑数量。 </p>
<p><strong>「网友之矛」</strong> ：<strong>禁用SNMP</strong> </p>
<p>如果ADSLMODEM的WEB管理界面中有SNMP选项，将其关闭即可，如果无法在ADSLMODEM上关闭，还能通过关闭路由器上的SNMP服务实现同样的效果。通常SNMP选项在路由器&#8220;管理&#8221;、&#8220;服务&#8221;界面中，选择禁用即可。 </p>
<p><strong>回合三</strong> ：<strong>决战拨号软件</strong> </p>
<p><strong>「电信之盾」</strong> ：<strong>星空极速</strong> </p>
<p>&#8220;星空极速&#8221;由广东电信组织研究和开发的新一代宽、窄带用户桌面客户端软件。其主要功能是在现有的Windows操作系统环境下提供宽带和窄带拨号功能，同时在该客户端中提供丰富的增值服务内容，包括通过和各类SP的积极合作，将内容丰富、趣味多样的应用程序以插件的形式集成到客户端中，并且将上网用户常用的浏览器以定制的形式无缝整合到&#8220;星空极速&#8221;客户端上。 </p>
<p>不过据使用者反映，这个乍看之下和其它基于PPPOE协议的拨号软件并无区别的东西一经安装，用户便无法在使用路由器共享上网。有分析该软件的技术人员告诉记者，其内部设置了一个密码协议转换器，安装该软件并拨号后系统会自动捆绑宽带电话号码与账户，连接中国电信中心机房，将用户的密码进行加密换算。这个参数更改然后再连接电信的局端设置，通过双重密码实现共享限制。 </p>
<p><strong>「网友之矛」</strong> ：<strong>换算密码再拨号</strong> </p>
<p>据悉，&#8220;星空极速&#8221;的密码转换器使用的是MD5来进行换算，即对用户名换算出一串MD5码，把它加在用户原有密码的尾部，从而形成真正的拨号密码，这样在路由器上输入普通密码就无法通过验证了。 </p>
<p>目前互联网上普遍流传的破解方法是自己先行使用MD5码转换器生成MD5，再把它添加到真实密码之后，放于路由器上进行拨号，已实现拨号。 </p>
</div>
<img src ="http://www.blogjava.net/yukui/aggbug/175413.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2008-01-15 11:28 <a href="http://www.blogjava.net/yukui/archive/2008/01/15/175413.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows最可怕的一点就是把这些复杂的概念隐藏在易用性的背后</title><link>http://www.blogjava.net/yukui/archive/2008/01/05/172914.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 05 Jan 2008 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2008/01/05/172914.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/172914.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2008/01/05/172914.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/172914.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/172914.html</trackback:ping><description><![CDATA[Windows最可怕的一点就是把这些复杂的概念隐藏在易用性的背后——你哪怕对这些一无所知，也不影响你使用这个系统。因此很多人对安全性毫无概念，却自以为对Windows已经很熟悉了，这才是Windows安全性问题的来源
<img src ="http://www.blogjava.net/yukui/aggbug/172914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2008-01-05 10:57 <a href="http://www.blogjava.net/yukui/archive/2008/01/05/172914.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RSS谈</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166155.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:32:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166155.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166155.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166155.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166155.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166155.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: “忽如一夜春风来，千树万树梨花开”，近来RSS的概念已然流行开来，那么，什么才是RSS呢？怎样才能实现RSS的功能呢？以下是手艺人对RSS的理解。&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166155.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166155.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:32 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166155.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RSS2.0版本的数据格式</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166152.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:31:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166152.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166152.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166152.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166152.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166152.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: RSS2.0版本的数据格式2.0的RSS格式如下：<br>? rss:每个RSS Feed，都有而且只能有一个rss标签，作为顶层元素<br>? channel:在rss标签下，必须有且只能有一个channel标签<br>? title:这个blog的标题<br>? link:blog的URL访问地址<br>? description:简要描述<br>? managingEditor:blog的作者<br>? item:可以出现多个item，每个item，描述一条日志信息<br>? title:日志的标题<br>? link:日志的URL访问地址<br>? author:日志的作者 <br>pubDate:日志的发布日期<br>? description:日志的内容&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166152.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166152.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:31 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166152.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xml，Atom是什么</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166151.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:30:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166151.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166151.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166151.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Atom 是一种格式还是一种协议？两者都是！将其用于联合和发布&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166151.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:30 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse快捷键</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166149.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:29:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166149.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166149.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166149.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166149.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166149.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Insert        文本编辑器 改写切换        Delete        删除<br>F2        显示工具提示描述        F3        全局 打开类或变量的声明<br>F4        全局 打开类型层次结构        F5        全局 单步跳入<br>F6        全局 单步跳过        F7        全局 单步返回&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166149.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166149.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:29 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166149.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp连接Sql Server7.0/2000数据库 </title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166150.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:29:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166150.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166150.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166150.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166150.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jsp连接sql server7.0/2000数据库  <br><br>testsqlserver.jsp如下：  <br><br><%@ page contenttype='text/html;charset=gb2312'%>  <br><br><%@ page import='java.sql.*'%>  &nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166150.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:29 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse插件大全</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166148.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:28:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166148.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166148.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166148.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166148.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166148.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 0.Eclipse下载<br>EMF,GEF - Graphical Editor Framework,UML2,VE - Visual Editor都在这里下载<br>http://www.eclipse.org/downloads/index.php&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166148.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:28 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse 1.0及其以上版本删空configuration文件夹后启动报错解决办法</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166147.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:27:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166147.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166147.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166147.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166147.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166147.html</trackback:ping><description><![CDATA[<div class="item-content">
<p align="left"><span style="font-size: 12pt">Eclipse 1.0及其以上版本删空configuration文件夹后启动报错<span>:</span></span><span style="font-size: 12pt"> </span></p>
<p>&nbsp;</p>
<p align="left"><span style="font-size: 12pt">查看<span>log</span>记录如下</span></p>
<p align="left"><span style="font-size: 12pt">!SESSION 2006-04-01 08:36:49.624 -----------------------------------------------<br />
eclipse.buildId=unknown<br />
java.version=1.4.2_03<br />
java.vendor=Sun Microsystems Inc.<br />
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN<br />
Command-line arguments: -os win32 -ws win32 -arch x86</span></p>
<p align="left"><span style="font-size: 12pt">!ENTRY org.eclipse.osgi 4 0 2006-04-01 08:36:50.795<br />
!MESSAGE Application error<br />
!STACK 1<br />
java.lang.IllegalStateException: Unable to acquire application service.<br />
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:65)<br />
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:374)<br />
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:169)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />
at java.lang.reflect.Method.invoke(Method.java:324)<br />
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)<br />
at org.eclipse.core.launcher.Main.basicRun(Main.java:282)<br />
at org.eclipse.core.launcher.Main.run(Main.java:977)<br />
at org.eclipse.core.launcher.Main.main(Main.java:952)</span></p>
<p align="left"><span style="font-size: 12pt">解决方法<span>:</span></span></p>
<p align="left"><span style="font-size: 12pt"><span>Eclipse1.2M2及其以上版本，</span>下载解压后<span>configuration</span>比以前版本多了一个<span>config.ini</span>文件<span>.</span>将<span>Eclipse</span>安装目录下的<span>configuration</span>下的<span>config.ini</span>文件还原到<span>configuration</span>目录下即可<span>.</span></span></p>
<p align="left">即：<font color="#ff0000"><strong><span> </span><span>Eclipse1.2及其以上版本</span><span>,</span><span>使用时不能将</span><span>configuration</span><span>清空</span><span>,</span><span>需保留</span></strong><span><strong>config.ini</strong>。</span></font></p>
<div class="clear"></div>
</div>
<img src ="http://www.blogjava.net/yukui/aggbug/166147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:27 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166147.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse插件系列——SQLExplorer插件的安装和使用</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166146.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:26:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166146.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166146.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166146.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166146.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166146.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:  SQLExplorer是Eclipse集成开发环境的一种插件，它可以被用来从Eclipse连接到一个数据库。SQLExplorer插件提供了一个使用SQL语句访问数据库的图形用户接口（GUI）。通过使用SQLExplorer，能够显示表格、表格结构和表格中的数据，以及提取、添加、更新或删除表格数据。SQLExplorer同样能够生成SQL脚本来创建和查询表格。所以，与命令行客户端相比，使用SQLExplorer可能是更优越的选择。&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166146.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:26 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA打包成exe文件</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166142.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:23:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166142.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166142.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166142.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166142.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1、用专业的应用程序打包工具InstallAnywhere，这个软件几乎能在所有平台上运行，当然你要下载到你需要的那个平台的啦！而且它也<br><br>能打包成各个平台的安装程序（不止.exe啦，那么好用的东西当然是要收费的啦，但是如果你不是商业用途的话，拿来娱乐和学习还<br><br>是可以上百度搜到注册码的）。现在应该已经更新到7.1版了，电驴上能下到7.0版的和注册码，7.1版也能在其他网站下到，不过我忘了<br><br>网址了，大家自己搜啦。这个软件的用法我在这里就不详说，给个6.1版本的介绍的网址，http://blog.sina.com.cn/u/482c6a98010006qu（其实是因为我自己也没怎么用过这个，没有这个需求啊！）&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166142.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:23 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166142.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC连接MYSQL</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166144.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:23:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166144.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166144.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166144.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Step1:可在http://www.mysql.com/products/connector-j/index.html下载MySQL JDBC驱动程序mysql-connector-java-*.jar,并加入到ClassPath下面.<br><br>Step2:注册JDBC驱动程序&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166144.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:23 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>asp常用13条代码</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166141.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:22:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166141.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166141.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166141.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ASP与Access数据库连接：<br><br><%@ language=VBscript%><br><%<br>dim conn,mdbfile<br>mdbfile=server.mappath("数据库名称.mdb")<br>set conn=server.createobject("adodb.connection")<br>conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile<br><br>%>&nbsp;&nbsp;<a href='http://www.blogjava.net/yukui/archive/2007/12/07/166141.html'>阅读全文</a><img src ="http://www.blogjava.net/yukui/aggbug/166141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:22 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DOM解析XML </title><link>http://www.blogjava.net/yukui/archive/2007/12/07/166136.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 13:16:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/166136.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/166136.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/166136.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/166136.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/166136.html</trackback:ping><description><![CDATA[<div class="item-body">
<div class="item-content">
<div>
<div>一、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前言<br />
<br />
<br />
<br />
用Java解析XML文档，最常用的有两种方法：使用基于事件的XML简单API（Simple&nbsp;API&nbsp;for&nbsp;XML）称为SAX和基于树和节点的文档对象模型（Document&nbsp;Object&nbsp;Module）称为DOM。Sun公司提供了Java&nbsp;API&nbsp;for&nbsp;XML&nbsp;Parsing（JAXP）接口来使用SAX和DOM，通过JAXP，我们可以使用任何与JAXP兼容的XML解析器。<br />
<br />
JAXP接口包含了三个包：<br />
<br />
（1）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.w3c.dom&nbsp;&nbsp;W3C推荐的用于XML标准规划文档对象模型的接口。<br />
<br />
（2）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.xml.sax&nbsp;&nbsp;&nbsp;用于对XML进行语法分析的事件驱动的XML简单API（SAX）<br />
<br />
（3）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;javax.xml.parsers解析器工厂工具，程序员获得并配置特殊的特殊语法分析器。<br />
<br />
二、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前提<br />
<br />
<br />
<br />
DOM编程不要其它的依赖包，因为JDK里自带的JDK里含有的上面提到的org.w3c.dom、org.xml.sax&nbsp;和javax.xml.parsers包就可以满意条件了。<br />
<br />
三、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用DOM解析XML文档<br />
<br />
<br />
<br />
我们现在来看看DOM是如何解析XML的吧！同样的，我将从一个简单的不能再简单的例子来说明DOM是如何解析XML文档的，先让我们看看XML是什么内容吧：<br />
<br />
&lt;?xml&nbsp;version="1.0"&nbsp;encoding="gb2312"?&gt;<br />
<br />
<br />
<br />
&lt;books&gt;<br />
<br />
<br />
<br />
&nbsp;&nbsp;&lt;book&nbsp;email="zhoujunhui"&gt;<br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;rjzjh&lt;/name&gt;<br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;price&gt;jjjjjj&lt;/price&gt;<br />
<br />
<br />
<br />
&nbsp;&nbsp;&lt;/book&gt;<br />
<br />
<br />
<br />
&lt;/books&gt;<br />
<br />
<br />
<br />
简单的不能再简单了。但是该有的都有了，根元素、属性、子节点。好了，能反应问题就行了，下面来看看解析这个XML文件的Java代码吧！<br />
<br />
1&nbsp;public&nbsp;class&nbsp;DomParse&nbsp;{<br />
<br />
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;DomParse(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocumentBuilderFactory&nbsp;domfac=DocumentBuilderFactory.newInstance();<br />
<br />
4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{<br />
<br />
5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocumentBuilder&nbsp;dombuilder=domfac.newDocumentBuilder();<br />
<br />
6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is=new&nbsp;FileInputStream("bin/library.xml");<br />
<br />
7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;doc=dombuilder.parse(is);<br />
<br />
8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;root=doc.getDocumentElement();<br />
<br />
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NodeList&nbsp;books=root.getChildNodes();<br />
<br />
11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(books!=null){<br />
<br />
12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;books.getLength();i++){<br />
<br />
13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;book=books.item(i);<br />
<br />
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(book.getNodeType()==Node.ELEMENT_NODE){<br />
<br />
15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;email=book.getAttributes().getNamedItem("email").getNodeValue();<br />
<br />
16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(email);<br />
<br />
17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(Node&nbsp;node=book.getFirstChild();node!=null;node=node.getNextSibling()){<br />
<br />
18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(node.getNodeType()==Node.ELEMENT_NODE){<br />
<br />
19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(node.getNodeName().equals("name")){<br />
<br />
20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name=node.getNodeValue();<br />
<br />
21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name1=node.getFirstChild().getNodeValue();<br />
<br />
22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name);<br />
<br />
23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name1);<br />
<br />
24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(node.getNodeName().equals("price")){<br />
<br />
26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;price=node.getFirstChild().getNodeValue();<br />
<br />
27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(price);<br />
<br />
28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(ParserConfigurationException&nbsp;e)&nbsp;{<br />
<br />
35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<br />
36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(FileNotFoundException&nbsp;e)&nbsp;{<br />
<br />
37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<br />
38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(SAXException&nbsp;e)&nbsp;{<br />
<br />
39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<br />
40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(IOException&nbsp;e)&nbsp;{<br />
<br />
41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<br />
42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
43&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
44&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
<br />
45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;DomParse();<br />
<br />
46&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
47&nbsp;}<br />
<br />
四、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;代码解释<br />
<br />
<br />
<br />
先看看这个程序引用类：<br />
<br />
import&nbsp;java.io.FileInputStream;<br />
<br />
import&nbsp;java.io.FileNotFoundException;<br />
<br />
import&nbsp;java.io.IOException;<br />
<br />
import&nbsp;java.io.InputStream;<br />
<br />
import&nbsp;javax.xml.parsers.DocumentBuilder;<br />
<br />
import&nbsp;javax.xml.parsers.DocumentBuilderFactory;<br />
<br />
import&nbsp;javax.xml.parsers.ParserConfigurationException;<br />
<br />
//下面主要是org.xml.sax包的类<br />
<br />
import&nbsp;org.w3c.dom.Document;<br />
<br />
import&nbsp;org.w3c.dom.Element;<br />
<br />
import&nbsp;org.w3c.dom.Node;<br />
<br />
import&nbsp;org.w3c.dom.NodeList;<br />
<br />
import&nbsp;org.xml.sax.SAXException;<br />
<br />
上面那么简单的代码一看就明白了，但是为了介绍个DOM编程的大概还是来看看这个程序吧：<br />
<br />
（1）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;得到DOM解析器的工厂实例<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocumentBuilderFactory&nbsp;domfac=DocumentBuilderFactory.newInstance();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;得到javax.xml.parsers.DocumentBuilderFactory;类的实例就是我们要的解析器工厂<br />
<br />
（2）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;从DOM工厂获得DOM解析器<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocumentBuilder&nbsp;dombuilder=domfac.newDocumentBuilder();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通过javax.xml.parsers.DocumentBuilderFactory实例的静态方法newDocumentBuilder()得到DOM解析器<br />
<br />
（3）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把要解析的XML文档转化为输入流，以便DOM解析器解析它<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is=new&nbsp;FileInputStream("bin/library.xml");<br />
<br />
InputStream是一个接口。<br />
<br />
（4）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解析XML文档的输入流，得到一个Document<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;doc=dombuilder.parse(is);<br />
<br />
由XML文档的输入流得到一个org.w3c.dom.Document对象，以后的处理都是对Document对象进行的<br />
<br />
（5）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;得到XML文档的根节点<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;root=doc.getDocumentElement();<br />
<br />
在DOM中只有根节点是一个org.w3c.dom.Element对象。<br />
<br />
（6）得到节点的子节点<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NodeList&nbsp;&nbsp;books=root.getChildNodes();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;books.getLength();i++){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;book=books.item(i);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
这是用一个org.w3c.dom.NodeList接口来存放它所有子节点的，还有一种轮循子节点的方法，后面有介绍<br />
<br />
（7）&nbsp;取得节点的属性值<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;email=book.getAttributes().getNamedItem("email").getNodeValue();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(email);<br />
<br />
注意，节点的属性也是它的子节点。它的节点类型也是Node.ELEMENT_NODE<br />
<br />
（8）轮循子节点<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(Node&nbsp;node=book.getFirstChild();node!=null;node=node.getNextSibling()){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(node.getNodeType()==Node.ELEMENT_NODE){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(node.getNodeName().equals("name")){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name=node.getNodeValue();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name1=node.getFirstChild().getNodeValue();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name1);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(node.getNodeName().equals("price")){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;price=node.getFirstChild().getNodeValue();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(price);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
这段代码的打印输出为：<br />
<br />
null<br />
<br />
<br />
<br />
alterrjzjh<br />
<br />
<br />
<br />
jjjjjj<br />
<br />
从上面可以看出<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name=node.getNodeValue();&nbsp;&nbsp;&nbsp;是一个空值。而<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name1=node.getFirstChild().getNodeValue();&nbsp;&nbsp;才是真正的值，这是因为DOM把&lt;name&gt;rjzjh&lt;/name&gt;也当作是两层结构的节点，其父节点为&lt;name&gt;节点本身，且它只有一个子节点（如果有属性的话就不止一个了！），子节点是它的值&#8220;rjzjh&#8221;，所以我们看到上面的结果。<br />
<br />
还有，子节点的节点类型也是Node.ELEMENT_NODE型的，node.getNextSibling()方法是取下一个相邻的节点。<br />
<br />
五、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DOM结点<br />
<br />
<br />
<br />
DOM是一些节点的集合，由于文档中可能包含有不同类型的信息，所以定义了几种不同类型的节点。DOM中最常见的节点类型有：<br />
<br />
（1）元素：<br />
<br />
元素是XML的基本构件。元素的子节点可以是其它元素、文本节点或两者都有。元素节点还可以只含有属性这一唯一类型的节点。<br />
<br />
（2）属性：<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;属性节点包含关于元素节点的信息，但它不是元素的子节点<br />
<br />
（3）文本：<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;文本节点文本信息，或干脆是空白的文本。<br />
<br />
（4）文档：<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;文档节点是整个文档中所有其它节点的父节点<br />
<br />
元素是一种很重要的类型节点，元素节点可以是其他节点的容器。<br />
<br />
六、DOM解析XML文档的步骤：<br />
<br />
<br />
<br />
主要几步见第四点的（1），（2），（3），（4）步骤<br />
<!-- google_ad_section_end --></div>
</div>
</div>
</div>
<img src ="http://www.blogjava.net/yukui/aggbug/166136.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 21:16 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/166136.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>优化MYSQL</title><link>http://www.blogjava.net/yukui/archive/2007/12/07/165956.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 07 Dec 2007 01:59:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/12/07/165956.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/165956.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/12/07/165956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/165956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/165956.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、选取最适用的字段属性<br />
　　MySQL 可以很好的支持大数据量的存取，但是一般说来，数据库中的表越小，在它上面执行的查询也就会越快。因此，在创建表的时候，为了获得更好的性能，我们可以将表中字段的宽度设得尽可能小。例如，在定义邮政编码这个字段时，如果将其设置为 CHAR(255),显然给数据库增加了不必要的空间，甚至使用 VARCHAR 这种类型也是多余的，因为 CHAR(6) 就可以很好的完成任务了。同样的，如果可以的话，我们应该使用 MEDIUMINT 而不是 BIGIN 来定义整型字段。<br />
　　另外一个提高效率的方法是在可能的情况下，应该尽量把字段设置为 NOT NULL，这样在将来执行查询的时候，数据库不用去比较 NULL 值。<br />
　　对于某些文本字段，例如&#8220;省份&#8221;或者&#8220;性别&#8221;，我们可以将它们定义为 ENUM 类型。因为在 MySQL 中，ENUM 类型被当作数值型数据来处理，而数值型数据被处理起来的速度要比文本类型快得多。这样，我们又可以提高数据库的性能。<br />
　　2、使用连接（JOIN）来代替子查询(Sub-Queries)<br />
　　MySQL 从 4.1 开始支持 SQL 的子查询。这个技术可以使用 Select 语句来创建一个单列的查询结果，然后把这个结果作为过滤条件用在另一个查询中。例如，我们要将客户基本信息表中没有任何订单的客户删除掉，就可以利用子查询先从销售信息表中将所有发出订单的客户 ID 取出来，然后将结果传递给主查询，如下所示：<br />
　　Delete FROM customerinfo Where CustomerID NOT in (Select CustomerID FROM salesinfo )<br />
　　使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作，同时也可以避免事务或者表锁死，并且写起来也很容易。但是，有些情况下，子查询可以被更有效率的连接（JOIN）.. 替代。例如，假设我们要将所有没有订单记录的用户取出来，可以用下面这个查询完成：<br />
　　Select * FROM customerinfo Where CustomerID NOT in (Select CustomerID FROM salesinfo )<br />
　　如果使用连接（JOIN）.. 来完成这个查询工作，速度将会快很多。尤其是当 salesinfo 表中对CustomerID 建有索引的话，性能将会更好，查询如下：<br />
　　Select * FROM customerinfo LEFT JOIN salesinfoON customerinfo.CustomerID=salesinfo. CustomerID Where salesinfo.CustomerID IS NULL<br />
　　连接（JOIN）.. 之所以更有效率一些，是因为 MySQL 不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作。<br />
　　3、使用联合(UNION)来代替手动创建的临时表<br />
　　MySQL 从 4.0 的版本开始支持 UNION 查询，它可以把需要使用临时表的两条或更多的 Select 查询合并的一个查询中。在客户端的查询会话结束的时候，临时表会被自动删除，从而保证数据库整齐、高效。使用 UNION 来创建查询的时候，我们只需要用 UNION 作为关键字把多个 Select 语句连接起来就可以了，要注意的是所有 Select 语句中的字段数目要想同。下面的例子就演示了一个使用 UNION 的查询。<br />
　　Select Name, Phone FROM client UNION Select Name, BirthDate FROM author UNION Select Name, Supplier FROM product<br />
　　4、事务<br />
　　尽管我们可以使用子查询（Sub-Queries）、连接（JOIN）和联合（UNION）来创建各种各样的查询，但不是所有的数据库操作都可以只用一条或少数几条 SQL 语句就可以完成的。更多的时候是需要用到一系列的语句来完成某种工作。<br />
　　但是在这种情况下，当这个语句块中的某一条语句运行出错的时候，整个语句块的操作就会变得不确定起来。设想一下，要把某个数据同时插入两个相关联的表中，可能会出现这样的情况：第一个表中成功更新后，数据库突然出现意外状况，造成第二个表中的操作没有完成，这样，就会造成数据的不完整，甚至会破坏数据库中的数据。<br />
　　要避免这种情况，就应该使用事务，它的作用是：要么语句块中每条语句都操作成功，要么都失败。换句话说，就是可以保持数据库中数据的一致性和完整性。事物以 BEGIN 关键字开始，COMMIT 关键字结束。在这之间的一条 SQL 操作失败，那么，ROLLBACK 命令就可以把数据库恢复到 BEGIN 开始之前的状态。<br />
　　BEGIN;<br />
　　Insert INTO salesinfo SET CustomerID=14;<br />
　　Update inventory SET Quantity=11　Where item='book';<br />
　　COMMIT;<br />
　　事务的另一个重要作用是当多个用户同时使用相同的数据源时，它可以利用锁定数据库的方法来为用户提供一种安全的访问方式，这样可以保证用户的操作不被其它的用户所干扰。<br />
　　5、锁定表<br />
　　尽管事务是维护数据库完整性的一个非常好的方法，但却因为它的独占性，有时会影响数据库的性能，尤其是在很大的应用系统中。由于在事务执行的过程中，数据库将会被锁定，因此其它的用户请求只能暂时等待直到该事务结束。如果一个数据库系统只有少数几个用户来使用，事务造成的影响不会成为一个太大的问题；但假设有成千上万的用户同时访问一个数据库系统，例如访问一个电子商务网站，就会产生比较严重的响应延迟。<br />
　　其实，有些情况下我们可以通过锁定表的方法来获得更好的性能。下面的例子就用锁定表的方法来完成前面一个例子中事务的功能。<br />
　　LOCK TABLE inventory WRITE Select Quantity FROM inventory WhereItem='book';<br />
　　 ...<br />
　　Update inventory SET Quantity=11 WhereItem='book';<br />
　　UNLOCK TABLES<br />
　　这里，我们用一个 Select 语句取出初始数据，通过一些计算，用 Update 语句将新值更新到表中。包含有 WRITE 关键字的 LOCK TABLE 语句可以保证在 UNLOCK TABLES 命令被执行之前，不会有其它的访问来对 inventory 进行插入、更新或者删除的操作。<br />
　　6、使用外键<br />
　　锁定表的方法可以维护数据的完整性，但是它却不能保证数据的关联性。这个时候我们就可以使用外键。例如，外键可以保证每一条销售记录都指向某一个存在的客户。在这里，外键可以把 customerinfo 表中的CustomerID 映射到 salesinfo 表中 CustomerID，任何一条没有合法 CustomerID 的记录都不会被更新或插入到 salesinfo 中。<br />
　　Create TABLE customerinfo( CustomerID INT NOT NULL , PRIMARY KEY ( CustomerID ) ) TYPE = INNODB;<br />
　　Create TABLE salesinfo ( SalesID INT NOT NULL, CustomerID INT NOT NULL, PRIMARY KEY(CustomerID, SalesID), FOREIGN KEY (CustomerID) REFERENCES customerinfo (CustomerID) ON DeleteCASCADE ) TYPE = INNODB;<br />
　　注意例子中的参数&#8220;ON Delete CASCADE&#8221;。该参数保证当 customerinfo 表中的一条客户记录被删除的时候，salesinfo 表中所有与该客户相关的记录也会被自动删除。如果要在 MySQL 中使用外键，一定要记住在创建表的时候将表的类型定义为事务安全表 InnoDB类型。该类型不是 MySQL 表的默认类型。定义的方法是在 Create TABLE 语句中加上 TYPE=INNODB。如例中所示。<br />
　　7、使用索引<br />
　　索引是提高数据库性能的常用方法，它可以令数据库服务器以比没有索引快得多的速度检索特定的行，尤其是在查询语句当中包含有MAX(), MIN()和ORDERBY这些命令的时候，性能提高更为明显。那该对哪些字段建立索引呢？一般说来，索引应建立在那些将用于JOIN, Where判断和ORDER BY排序的字段上。尽量不要对数据库中某个含有大量重复的值的字段建立索引。对于一个ENUM类型的字段来说，出现大量重复值是很有可能的情况，例如 customerinfo中的&#8220;province&#8221;.. 字段，在这样的字段上建立索引将不会有什么帮助；相反，还有可能降低数据库的性能。我们在创建表的时候可以同时创建合适的索引，也可以使用Alter TABLE或Create INDEX在以后创建索引。此外，MySQL<br />
从版本3.23.23开始支持全文索引和搜索。全文索引在MySQL 中是一个FULLTEXT类型索引，但仅能用于MyISAM 类型的表。对于一个大的数据库，将数据装载到一个没有FULLTEXT索引的表中，然后再使用Alter TABLE或Create INDEX创建索引，将是非常快的。但如果将数据装载到一个已经有FULLTEXT索引的表中，执行过程将会非常慢。<br />
　　8、优化的查询语句<br />
　　绝大多数情况下，使用索引可以提高查询的速度，但如果 SQL 语句使用不恰当的话，索引将无法发挥它应有的作用。下面是应该注意的几个方面。首先，最好是在相同类型的字段间进行比较的操作。在 MySQL 3.23 版之前，这甚至是一个必须的条件。例如不能将一个建有索引的 INT 字段和 BIGINT 字段进行比较；但是作为特殊的情况，在 CHAR 类型的字段和 VARCHAR 类型字段的字段大小相同的时候，可以将它们进行比较。其次，在建有索引的字段上尽量不要使用函数进行操作。<br />
　　例如，在一个 DATE 类型的字段上使用 YEAE() 函数时，将会使索引不能发挥应有的作用。所以，下面的两个查询虽然返回的结果一样，但后者要比前者快得多。<br />
　　Select * FROM order Where YEAR(OrderDate)&lt;2001;<br />
　　Select * FROM order Where orderDate<br />
　　同样的情形也会发生在对数值型字段进行计算的时候：<br />
　　Select * FROM inventory Where Amount/7&lt;24;<br />
　　Select * FROM inventory Where Amount<br />
　　上面的两个查询也是返回相同的结果，但后面的查询将比前面的一个快很多。第三，在搜索字符型字段时，我们有时会使用 LIKE 关键字和通配符，这种做法虽然简单，但却也是以牺牲系统性能为代价的。例如下面的查询将会比较表中的每一条记录。<br />
　　Select * FROM books Where name like "MySQL%"<br />
　　但是如果换用下面的查询，返回的结果一样，但速度就要快上很多：..<br />
　　Select * FROM books Where name&gt;="MySQL"and name<br />
　　最后，应该注意避免在查询中让 MySQL 进行自动类型转换，因为转换过程也会使索引变得不起作用。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<img src ="http://www.blogjava.net/yukui/aggbug/165956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-12-07 09:59 <a href="http://www.blogjava.net/yukui/archive/2007/12/07/165956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java应用程序打包成.exe方法</title><link>http://www.blogjava.net/yukui/archive/2007/11/30/164213.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Fri, 30 Nov 2007 03:29:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/30/164213.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/164213.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/30/164213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/164213.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/164213.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于windows用户来说，将java应用程序打包成.exe最好不过了，现在我介绍两个方法。<br />
1、用专业的应用程序打包工具InstallAnywhere，这个软件几乎能在所有平台上运行，当然你要下载到你需要的那个平台的啦！而且它也<br />
能打包成各个平台的安装程序（不止.exe啦，那么好用的东西当然是要收费的啦，但是如果你不是商业用途的话，拿来娱乐和学习还<br />
是可以上百度搜到注册码的）。现在应该已经更新到7.1版了，电驴上能下到7.0版的和注册码，7.1版也能在其他网站下到，不过我忘了<br />
网址了，大家自己搜啦。这个软件的用法我在这里就不详说，给个6.1版本的介绍的网址，http://blog.sina.com.cn/u/482c6a98010006qu（其实是因为我自己也没怎么用过这个，没有这个需求啊！）<br />
2、用MINI的免费的工具javalunch，JavaLauncher的下载网址是：<br />
http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm<br />
下载下来的文件是一个名JavaLauncher.zip的压缩包，解压后的目录结构：<br />
l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; source目录包含了JavaLauncher的源程序，是用C语言写的<br />
l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; changes.txt是新版的修改说明<br />
l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; launch.exe是主程序<br />
l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; launcher.cfg是配置文件<br />
l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readme.txt是一些说明和示例<br />
我们只需要launch.exe、launcher.cfg两个文件，将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三行内容的文本文件，将它修改如下：<br />
.<br />
.\java1.4.2\jre\bin\javaw.exe <br />
-jar myswt.jar<br />
l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第一行设置指向JAR包myswt.jar的目录，由于launch.exe和myswt.jar同在一个目录，所以用"."即当前目录。<br />
l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第二行设置指向jre\bin\javaw.exe的路径。<br />
配置好launcher.cfg后，双击launch.exe即可运行java应用程序。<br />
如果仔佃研究eclipse的启动方式，发现eclipse和JavaLauncher的原理一样：eclipse.exe相当于launch.exe，startup.jar相当于myswt.jar。只不过eclipse.exe不象launch.exe要具有通用性，所以它没有*.cfg这样的配置文件，而是将启动信息固化在eclipse.exe中。<br />
另：美化图标<br />
launch.exe文件的图标太单调了，让我们给它换个好看点的。换程序的图标需要用到一个免费的软件：Resource Hacker，它有中文版，下载网址是：<br />
http://www.users.on.net/johnson/resourcehacker/<br />
由于这个软件有中文版的，在这里我就不多说了，挺简单的
<img src ="http://www.blogjava.net/yukui/aggbug/164213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-30 11:29 <a href="http://www.blogjava.net/yukui/archive/2007/11/30/164213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DVD-RAM简介</title><link>http://www.blogjava.net/yukui/archive/2007/11/18/161318.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 17 Nov 2007 16:19:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/18/161318.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/161318.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/18/161318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/161318.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/161318.html</trackback:ping><description><![CDATA[<div class="content">DVD-RAM是以日本的日立（HITACHI）、松下、东芝（TOSHIBA）为首的集团开发的一种可重写DVD标准，和DVD-R/RW一样，DVD-RAM也是得到DVD联盟正式认可的标准之一，其商品印刷包装上具有&#8220;DVD&#8221;这个熟悉的LOGO，发展至今，DVD-RAM也具有了和DVD-R一样分为单面单层4.7G（4.37G）规格和双面单层9.4G（8.74G）规格。为适应各种使用环境的需求，以及在DVD-ROM光驱的读取兼容性，DVD-RAM光盘片以盒式包装，可分为可取出的裸片及不可取出的盒片两种。<br />
<br />
原始DVD-RAM规格设计适用于计算机数据之储存，但随着DVD-Video播放机市场的快速蓬勃，Panasonic及Hitachi等公司已将DVD-RAM之应用往消费性电子产品方面发展，将DVD-RAM的记录功能与DVD-Video播放机结合，并在市场上推出DVD-RAM规格的数码摄像机DVDCAM。<br />
<br />
12CM的DVD-RAM光盘，因为尺寸限制的关系，像数字相机、数字摄影机、PDA等不方便使用。在4.7GB&nbsp;DVD-RAM所定规格的DVD-RAM2.1版中，制定了8CM尺寸的DVD-RAM，8CM的DVD-RAM可以说是最适合以上的设备的。它与12CM的DVD-RAM&nbsp;都是可以放入DVD光驱内读取数据的。<br />
<br />
相信大家都有所了解，当前DVD-ROM有五种可录写格式:&nbsp;DVD-R、DVD+R、DVD-RAM、DVD-RW和DVD+RW，其中DVD-R和DVD+R是一次性写入格式，而另外三种则为可擦写格式，我们来看看DVD-RAM。其实DVD-RAM格式的盘片和支持它的驱动器早在1998年就已经面世，比DVD+/-RW要领先一年多推出，与普通可擦写刻录格式相比，DVD-RAM拥有几大优点：一是高达10万次复写次数，保存年限更长(长达100年)；二是格式化时间很短，格式化好的光盘不需特殊的软件就可进行写入和擦写，也就是说它具有强大的本地直接裁剪与编辑的功能，用户可以像操作软盘一样轻松使用它；三是具有强大的缺陷管理与纠错能力（写入时），可确保写入数据的万无一失；四是具有独一无二的读写可同时进行的能力；五是它支持版权保护技术。<br />
&nbsp;<br />
<br />
<br />
DVD-RAM拥有这么多优点，并且比DVD+/-W都要早推出，但为什么却迟迟未能普及呢？DVD-RAM采用了不同的物理技术，导致反射率、格式不同，所以与普通的驱动器和播放器不相兼容，使用DVD-RAM格式需要专门的驱动器，市场上大多数标准DVD-ROM光驱都不能读取DVD-RAM盘。只有符合MultiRead2标准的DVD-ROM和DVD播放器才可读取DVD-RAM盘。刻录机方面仅适用于声明支持DVD-RAM的刻录机。另一方面，生产DVD-RAM盘片的厂商非常少，并且价格比起一般可擦写的DVD+/-RW要高许多。<br />
&nbsp;<br />
<br />
容量高达9.4GB的DVD-RAM盘片<br />
<br />
兼容性差、盘片价格昂贵一直成为DVD-RAM的致命弱点，但是近两年来，随着技术成熟和生产成本的降低，支持DVD-RAM格式的刻录机逐渐普及起来，像先锋、LG、建兴、浦科特等知名光存储厂商都先后推出了DVD-RAM刻录机，价格还比较容易接受(目前价格一般在500元人民币左右)，而DVD-RAM盘片的价格也开始下降。<br />
<br />
回顾一下DVD-RAM盘片，1998年最早期推出的DVD-RAM&nbsp;1.0标准支持的单面容量是2.6GB，双面最高可支持到5.2GB，1999年末又出现了支持单面4.7GB的DVD-RAM&nbsp;2.0标准，而当前最高双面9.4GB容量的DVD-RAM盘片直到2000年才推出市场，目前一般4.7GB容量的DVD-RAM盘片的零售价格都要卖到30元以上，而支持双面9.4GB的盘片更是高达上百元，针对国内的消费水平，一般消费者实在较难接受。</div>
<img src ="http://www.blogjava.net/yukui/aggbug/161318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-18 00:19 <a href="http://www.blogjava.net/yukui/archive/2007/11/18/161318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安全10大漏洞</title><link>http://www.blogjava.net/yukui/archive/2007/11/18/161317.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 17 Nov 2007 16:18:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/18/161317.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/161317.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/18/161317.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/161317.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/161317.html</trackback:ping><description><![CDATA[<div class="content">这里介绍的10大漏洞是当今互联网上发现的最普遍而且风险最高的漏洞。这个10大漏洞清单主要来源于ISS&nbsp;X-Force安全小组的分析、用户的安全报告、ISS的专业服务队伍和安全合作伙伴。10大漏洞表由ISS&nbsp;X-Force小组维护并以ISS安全警告汇编的形式每季度发布。&nbsp;<br />
10大漏洞&nbsp;<br />
1.&nbsp;拒绝服务攻击&nbsp;<br />
-&nbsp;TFN&nbsp;<br />
-&nbsp;TFN2k&nbsp;<br />
-&nbsp;Trin00&nbsp;<br />
-&nbsp;Stacheldraht&nbsp;<br />
-&nbsp;FunTime&nbsp;Apocalypse&nbsp;<br />
2.&nbsp;脆弱的账号&nbsp;<br />
-&nbsp;缺省账户（路由器、防火墙）&nbsp;<br />
-&nbsp;管理员账户admin/root的空口令或弱口令&nbsp;<br />
-&nbsp;SNMP&nbsp;Community&nbsp;Name的缺省设置&nbsp;<br />
3.&nbsp;IIS&nbsp;(微软的Web服务器Microsoft&nbsp;Internet&nbsp;Information&nbsp;Server)&nbsp;<br />
-&nbsp;RDS&nbsp;<br />
-&nbsp;HTR&nbsp;<br />
-&nbsp;畸形header&nbsp;<br />
-&nbsp;PWS文件访问&nbsp;<br />
-&nbsp;CGI圈套&nbsp;<br />
-&nbsp;PHP3元字符&nbsp;<br />
-&nbsp;PHP&nbsp;mlog.html读文件&nbsp;<br />
4.&nbsp;数据库&nbsp;<br />
-&nbsp;Oracle缺省账户/口令&nbsp;<br />
-&nbsp;Oracle&nbsp;setuid&nbsp;root&nbsp;&nbsp;oratclsh&nbsp;<br />
-&nbsp;SQL&nbsp;Server&nbsp;Xp_sprintf&nbsp;缓存溢出&nbsp;<br />
-&nbsp;SQL&nbsp;Server&nbsp;Xp_cmdshell&nbsp;扩展&nbsp;<br />
5.&nbsp;电子商务主页应用&nbsp;<br />
-&nbsp;NetscapeGetBo&nbsp;<br />
-&nbsp;HttpIndexserverPath&nbsp;<br />
-&nbsp;Frontpage&nbsp;Extensions&nbsp;<br />
-&nbsp;FrontpagePwdAdministrators&nbsp;<br />
6.&nbsp;电子邮件系统&nbsp;<br />
-&nbsp;Sendmail管道攻击&nbsp;<br />
-&nbsp;SendmailMIMEbo&nbsp;<br />
7.&nbsp;文件共享&nbsp;<br />
-&nbsp;NetBIOS&nbsp;<br />
-&nbsp;NFS&nbsp;<br />
8.&nbsp;RPC&nbsp;<br />
-&nbsp;rpc.cmsd&nbsp;<br />
-&nbsp;rpc-statd&nbsp;<br />
-&nbsp;Sadmin&nbsp;<br />
-&nbsp;Amd&nbsp;<br />
-&nbsp;Mountd&nbsp;<br />
<br />
9.&nbsp;BIND&nbsp;<br />
-&nbsp;BIND&nbsp;nxt&nbsp;<br />
-&nbsp;BIND&nbsp;qinv&nbsp;<br />
10.&nbsp;Linux缓存溢出&nbsp;<br />
-&nbsp;IMAP&nbsp;BO&nbsp;<br />
-&nbsp;Qpopper&nbsp;BO&nbsp;<br />
-&nbsp;改写堆栈覆盖&nbsp;<br />
-&nbsp;WU-FTP&nbsp;缓存溢出&nbsp;<br />
建议的修改步骤&nbsp;<br />
在业务层次，通过组织来实施和管理安全部件，并且通过持续的保持警惕和对威胁的监控来降低新的风险。&nbsp;<br />
ISS建议建立下面一些安全层次：&nbsp;<br />
-&nbsp;安全策略&nbsp;<br />
-&nbsp;安全管理层（比如内联网）&nbsp;<br />
-&nbsp;安全软件（基于主机的评估和入侵检测）&nbsp;<br />
-&nbsp;安全网络部件OS/net/db/web&nbsp;<br />
漏洞描述&nbsp;<br />
1.&nbsp;拒绝服务攻击&nbsp;<br />
漏洞名称：TFN&nbsp;<br />
影响平台：Linux,&nbsp;Solaris,&nbsp;Unix&nbsp;<br />
风险级别：高风险&nbsp;<br />
攻击类别：基于网络，基于主机&nbsp;<br />
Tribe&nbsp;Flood&nbsp;Network（TFN）是一个分布式拒绝服务攻击工具，黑客可以通过此工具利用多台主机同时攻击并淹没被攻击目标。它有4种不同的淹没方式&nbsp;--&nbsp;ICMP&nbsp;Echo&nbsp;flood,&nbsp;UDP&nbsp;Flood,&nbsp;SYN&nbsp;Flood和Smurf&nbsp;attack。TFN客户端和服务器端通过ICMP&nbsp;echo响应包来互相通信。&nbsp;<br />
<br />
参考：&nbsp;<br />
CERT建议CA-99-17:&nbsp;"Distributed&nbsp;Denial-of-Service&nbsp;Tools"&nbsp;at:&nbsp;<a href="http://www.cert.org/incident_notes/IN-99-07.html" target="_blank">http://www.cert.org/incident_notes/IN-99-07.html</a>&nbsp;<br />
<br />
漏洞名称：TFN2k&nbsp;<br />
影响平台：Linux,&nbsp;Solaris,&nbsp;Unix&nbsp;<br />
风险级别：高风险&nbsp;<br />
攻击类别：基于网络、基于主机&nbsp;<br />
<br />
Tribe&nbsp;Flood&nbsp;Network&nbsp;2000&nbsp;(TFN2k)&nbsp;是一个分布式拒绝服务攻击工具，它可以实现多种淹没方式来攻击一台主机。它由客户端和服务端daemon组成，客户端可以控制一个或多个daemon，实际攻击由daemon执行。客户端可以通过UDP、TCP或者ICMP来和daemon通信，而且可以伪装流出数据包的IP地址。客户端和daemon的通信是加密的。&nbsp;<br />
<br />
参考：&nbsp;<br />
CERT建议CA-99-17:&nbsp;"Denial-of-Service&nbsp;Tools"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-99-17-denial-of-service-tools.html" target="_blank">http://www.cert.org/advisories/CA-99-17-denial-of-service-tools.html</a>&nbsp;<br />
<br />
<br />
漏洞名称：Trin00&nbsp;<br />
影响平台：Linux,&nbsp;Solaris,&nbsp;Unix&nbsp;<br />
风险级别：高风险&nbsp;<br />
攻击类别：Network&nbsp;Based,&nbsp;Host&nbsp;Based&nbsp;<br />
<br />
Trin00是一个分布式拒绝服务攻击工具，攻击者可以控制多台主机来发送UDP风暴攻击其他主机。Trin00主控机可以向Trin00&nbsp;daemon发出多种请求：&nbsp;<br />
-&nbsp;启动攻击一个主机的UDP风暴&nbsp;<br />
-&nbsp;停止一个攻击&nbsp;<br />
-&nbsp;改变UDP风暴的daemon配置&nbsp;<br />
<br />
参考：&nbsp;<br />
CERT建议CA-99-17:&nbsp;"Denial-of-Service&nbsp;Tools"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-99-17-denial-of-service-tools.html" target="_blank">http://www.cert.org/advisories/CA-99-17-denial-of-service-tools.html</a>&nbsp;<br />
<br />
<br />
漏洞名称：Stacheldraht&nbsp;<br />
影响平台：任何&nbsp;<br />
风险级别：高风险&nbsp;<br />
攻击类别：基于主机&nbsp;<br />
<br />
Stacheldraht是一个分布式拒绝服务攻击工具，这个工具是基于Tribe&nbsp;Flood&nbsp;Network&nbsp;(TFN)和Trin00工具的源码。除了提供这两个工具的功能之外，Stacheldraht还将客户端、主控端、代理（僵尸）之间的通信加密，而且可以通过rpc命令远程更新代理系统。Stacheldraht的代理起初是构建并安装在Linux和Solaris系统中，&nbsp;但是经过源码修改它可以安装在任何系统中。&nbsp;<br />
<br />
参考：&nbsp;<br />
CERT建议CA-2000-01:&nbsp;"Denial&nbsp;of&nbsp;Service&nbsp;Developments"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-2000-01.html" target="_blank">http://www.cert.org/advisories/CA-2000-01.html</a>&nbsp;<br />
<br />
漏洞名称：FunTime&nbsp;Apocalypse&nbsp;<br />
影响平台：Windows&nbsp;9x,&nbsp;NT,&nbsp;2000&nbsp;<br />
风险级别：高风险&nbsp;<br />
攻击类别：基于&nbsp;<br />
<br />
Funtime&nbsp;Apocalypse是Windows9x和WindowsNT上的一个分布式拒绝服务攻击工具。攻击者可以发起一个&#8220;timer&nbsp;fused&#8221;风暴攻击一个目标计算机。Funtime&nbsp;Apocalypse包括一些文件：&nbsp;<br />
-&nbsp;一个风暴程序(bmb2.exe)&nbsp;<br />
-&nbsp;一个主程序(funtime.txt)&nbsp;<br />
-&nbsp;一些批处理文件(funtime.bat,&nbsp;timer98.bat,&nbsp;和timerNT.bat)&nbsp;<br />
-&nbsp;两个Windows&nbsp;HTML应用文件(funtime98.hta&nbsp;and&nbsp;funtimeNT.hta)&nbsp;<br />
Funtime要求攻击者对批处理文件和Windows&nbsp;HTML应用文件做出较大的修改，否则它将不工作。&nbsp;<br />
<br />
2.&nbsp;脆弱的账户&nbsp;<br />
<br />
漏洞名称：缺省账户（防火墙/路由器）&nbsp;<br />
影响平台：任何&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
缺省账户经常是不安全的，一定要修改。&nbsp;<br />
<br />
漏洞名称：管理员admin/root账户的空口令或弱口令&nbsp;<br />
影响平台：任何&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
管理员admin/root账户如果没有口令，会允许任何人拥有超级用户权限。这样的账户必须有口令，而且还要采用不容易被破解的口令。&nbsp;<br />
<br />
漏洞名称：SNMP&nbsp;Community&nbsp;Name的缺省设置&nbsp;<br />
影响平台：任何&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
攻击者可以通过SNMP来获得一个计算机的有用信息。这些信息可以为将来的攻击提供帮助。&nbsp;<br />
<br />
参考：&nbsp;<br />
微软知识库文档Q99880:&nbsp;"SNMP&nbsp;Agent&nbsp;Responds&nbsp;to&nbsp;Any&nbsp;Community&nbsp;Name"&nbsp;at:&nbsp;<a href="http://support.microsoft.com/support/kb/articles/q99/8/80.asp" target="_blank">http://support.microsoft.com/support/kb/articles/q99/8/80.asp</a>&nbsp;<br />
<br />
<br />
3.&nbsp;IIS&nbsp;(微软主页服务器)&nbsp;<br />
<br />
漏洞名称：IIS&nbsp;RDS&nbsp;<br />
影响平台：Microsoft&nbsp;IIS&nbsp;服务器&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
如果IIS的Implicit&nbsp;remoting被选中，RDS远程数据库服务可能导致非法用户通过IIS访问ODBC数据库。&nbsp;<br />
<br />
参考：&nbsp;<br />
微软安全公告："Re-Release:&nbsp;Unauthorized&nbsp;Access&nbsp;to&nbsp;IIS&nbsp;Servers&nbsp;through&nbsp;ODBC&nbsp;Data&nbsp;Access&nbsp;with&nbsp;RDS"&nbsp;at:&nbsp;<a href="http://www.microsoft.com/security/bulletins/ms99-025.asp" target="_blank">http://www.microsoft.com/security/bulletins/ms99-025.asp</a>&nbsp;<br />
<br />
<br />
漏洞名称：IIS&nbsp;HTR&nbsp;<br />
影响平台：Microsoft&nbsp;IIS服务器&nbsp;<br />
风险级别：中风险&nbsp;<br />
<br />
一个攻击者可以通过IIS服务器运行任何程序。&nbsp;<br />
<br />
参考：&nbsp;<br />
微软安全公告："Workaround&nbsp;Available&nbsp;for&nbsp;'Malformed&nbsp;HTR&nbsp;Request'&nbsp;Vulnerability"&nbsp;at:&nbsp;<a href="http://www.microsoft.com/security/bulletins/ms99-019.asp" target="_blank">http://www.microsoft.com/security/bulletins/ms99-019.asp</a>&nbsp;<br />
<br />
<br />
漏洞名称：IIS畸形头&nbsp;<br />
影响平台：Microsoft&nbsp;IIS服务器&nbsp;<br />
风险级别：中风险&nbsp;<br />
<br />
在微软的IIS&nbsp;4.0和SiteServer&nbsp;3.0存在一个漏洞，如果攻击者发出特殊畸形HTTP请求头数据包组成的风暴，可能导致Web服务器消耗系统的所有内存。服务器只能停机或者重新启动才能恢复到正常状态。&nbsp;<br />
<br />
参考：&nbsp;<br />
微软安全公告MS99-029:&nbsp;"Patch&nbsp;Available&nbsp;for&nbsp;'Malformed&nbsp;HTTP&nbsp;Request&nbsp;Header'&nbsp;Vulnerability"&nbsp;at:&nbsp;<a href="http://www.microsoft.com/security/bulletins/ms99-029.asp" target="_blank">http://www.microsoft.com/security/bulletins/ms99-029.asp</a>&nbsp;<br />
<br />
<br />
漏洞名称：PWS文件访问&nbsp;<br />
影响平台：微软Microsoft&nbsp;Personal&nbsp;Web&nbsp;Server&nbsp;4.0&nbsp;<br />
风险级别：中风险&nbsp;<br />
<br />
在Microsoft&nbsp;Personal&nbsp;Web&nbsp;Server&nbsp;(PWS)和FrontPage&nbsp;PWS文件访问协议中有一个漏洞可能导致任何文件远程可读。攻击者只要预先知道文件的名称就可以利用此漏洞。攻击者无法获得比读更高的权限。&nbsp;<br />
<br />
参考：&nbsp;<br />
微软安全公告MS99-010:&nbsp;"Patch&nbsp;Available&nbsp;for&nbsp;File&nbsp;Access&nbsp;Vulnerability&nbsp;in&nbsp;Personal&nbsp;Web&nbsp;Server"&nbsp;at:&nbsp;<a href="http://www.microsoft.com/security/bulletins/ms99-010.asp" target="_blank">http://www.microsoft.com/security/bulletins/ms99-010.asp</a>&nbsp;<br />
<br />
<br />
漏洞名称：IIS&nbsp;CGI&nbsp;Lasso&nbsp;<br />
影响平台：CGI&nbsp;<br />
风险级别：中风险&nbsp;<br />
<br />
Lasso&nbsp;CGI程序安装在很多Web服务器中，特别是WebSTAR服务器。其中由一个漏洞可以允许攻击者读取系统中的任何文件。虽然不会导致进一步的非法访问，但是可能导致重要文件失密。&nbsp;<br />
<br />
参考：&nbsp;<br />
BugTraq邮件列表："Lasso&nbsp;CGI&nbsp;security&nbsp;hole&nbsp;(fwd)"&nbsp;at:&nbsp;<a href="http://www.netspace.org/cgi-bin/wa?A2=ind9708D" target="_blank">http://www.netspace.org/cgi-bin/wa?A2=ind9708D</a>&amp;L=bugtraq&amp;P=R1093&nbsp;<br />
<br />
<br />
漏洞名称：PHP3&nbsp;元字符&nbsp;<br />
影响平台：PHP3&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
PHP3是一个scripting语言，可以用于web主机设置。如果主机设置中允许安全模式，一个远程攻击者可能发送元字符，导致攻击者执行服务器的任何命令。&nbsp;<br />
<br />
参考：&nbsp;<br />
微软安全公告MS99-010:&nbsp;"Patch&nbsp;Available&nbsp;for&nbsp;File&nbsp;Access&nbsp;Vulnerability&nbsp;in&nbsp;Personal&nbsp;Web&nbsp;Server"&nbsp;at:&nbsp;<a href="http://www.microsoft.com/security/bulletins/ms99-010.asp" target="_blank">http://www.microsoft.com/security/bulletins/ms99-010.asp</a>&nbsp;<br />
<br />
<br />
漏洞名称：PHP&nbsp;mlog.html读文件&nbsp;<br />
影响平台：PHP,&nbsp;CGI&nbsp;<br />
风险级别：中风险&nbsp;<br />
<br />
mlog.html示范script程序随PHP/FI包一起交付，允许远程攻击者读取系统中任何文件。攻击者只能看到启动httpd服务进程的用户可以访问的文件，一般这个用户是"nobody"。&nbsp;这个漏洞在随PHP/FI包一起交付的mylog.html中也存在。这个漏洞已经广为所知。&nbsp;<br />
<br />
参考：&nbsp;<br />
BugTraq邮件列表:&nbsp;"Vulnerability&nbsp;in&nbsp;PHP&nbsp;Example&nbsp;Logging&nbsp;Scripts"&nbsp;at:&nbsp;<a href="http://www.securityfocus.com/templates/archive.pike?list=1" target="_blank">http://www.securityfocus.com/templates/archive.pike?list=1</a>&amp;msg=3.0.3.32.19971019203840.0075b7b0@mail.underworld.net&nbsp;<br />
<br />
4.数据库&nbsp;<br />
<br />
漏洞名称：Oracle缺省账户/口令&nbsp;<br />
影响平台：&nbsp;Unix&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
Oracle数据库由几个广为人知的缺省用户名/口令对:&nbsp;<br />
SCOTT/TIGER,&nbsp;<br />
DBSNMP/DBSNMP&nbsp;<br />
SYSTEM/MANAGER,&nbsp;<br />
SYS/CHANGE_ON_INSTALL,&nbsp;<br />
TRACESVR/TRACE,&nbsp;<br />
CTXSYS/CTXSYS,&nbsp;<br />
MDSYS/MDSYS,&nbsp;<br />
DEMO/DEMO,&nbsp;<br />
CTXDEMO/CTXDEMO,&nbsp;<br />
APPLSYS/FND,&nbsp;<br />
PO8/PO8,&nbsp;<br />
NAMES/NAMES,&nbsp;<br />
SYSADM/SYSADM,&nbsp;<br />
ORDPLUGINS/ORDPLUGINS,&nbsp;<br />
OUTLN/OUTLN,&nbsp;<br />
ADAMS/WOOD,&nbsp;<br />
BLAKE/PAPER,&nbsp;<br />
JONES/STEEL,&nbsp;<br />
CLARK/CLOTH,&nbsp;<br />
AURORA$ORB$UNAUTHENTICATED/INVALID,&nbsp;<br />
APPS/APPS.&nbsp;<br />
这些缺省的组合使攻击者可以未授权地访问服务器。&nbsp;<br />
<br />
<br />
漏洞名称：Oracle&nbsp;setuid&nbsp;root&nbsp;&nbsp;oratclsh&nbsp;<br />
影响平台：&nbsp;Unix&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
Oracle&nbsp;8.x&nbsp;Unix版Intelligent&nbsp;Agent安装了一个程序'oratclsh'，这个程序具有suid&nbsp;root权限。它可以使用户对tcl解释器具有完全访问权限，并且任何本地用户可通过它执行任何程序。&nbsp;<br />
<br />
参考：&nbsp;<br />
BugTraq&nbsp;Mailing&nbsp;List:&nbsp;"Huge&nbsp;security&nbsp;hole&nbsp;in&nbsp;Oracle&nbsp;8.0.5&nbsp;with&nbsp;Intellegent?agent&nbsp;installed"&nbsp;at:&nbsp;<a href="http://www.netspace.org/cgi-bin/wa?A2=ind9904E" target="_blank">http://www.netspace.org/cgi-bin/wa?A2=ind9904E</a>&amp;L=bugtraq&amp;P=R1249&nbsp;<br />
<br />
<br />
漏洞名称：SQL&nbsp;Server&nbsp;Xp_sprintf&nbsp;缓存溢出&nbsp;<br />
影响平台：&nbsp;Any&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
SQL&nbsp;Serve&nbsp;6.5以前的版本中，Xp_sprintf中有一个缓存溢出漏洞。攻击者可以利用该漏洞让服务器崩溃，并获得管理者权限。&nbsp;<br />
<br />
漏洞名称：SQL&nbsp;Server&nbsp;Xp_cmdshell&nbsp;extended&nbsp;<br />
影响平台：Windows&nbsp;<br />
风险级别：Medium&nbsp;<br />
<br />
Microsoft&nbsp;SQL&nbsp;Server扩展存储过程xp_cmdshell,&nbsp;可以被攻击者利用来获得Windows&nbsp;NT的管理员权限。&nbsp;<br />
<br />
5.&nbsp;电子商务主页应用&nbsp;<br />
<br />
漏洞名称：Netscape&nbsp;Get&nbsp;缓存溢出&nbsp;<br />
影响平台：Netscape&nbsp;FastTrack,&nbsp;Netscape&nbsp;Enterprise&nbsp;Server&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
<br />
攻击者可利用该漏洞给Web服务器发送一个超长的HTTP&nbsp;GET请求，使Netscape的httpd服务的缓存溢出，并改写该进程的堆栈。有经验的攻击者利用这个漏洞，强制被攻击主机执行任意的代码，因此获得对主机的控制权。&nbsp;<br />
参考：&nbsp;<br />
Microsoft&nbsp;Knowledge&nbsp;Base&nbsp;Article:&nbsp;"Buffer&nbsp;Overflow&nbsp;in&nbsp;Netscape&nbsp;Enterprise&nbsp;and&nbsp;FastTrack&nbsp;Web&nbsp;Servers"&nbsp;at:&nbsp;<a href="http://xforce.iss.net/alerts/advise37.php3" target="_blank">http://xforce.iss.net/alerts/advise37.php3</a>&nbsp;<br />
<br />
<br />
漏洞名称：Netscape&nbsp;HTTP&nbsp;Index&nbsp;Server路径暴露&nbsp;<br />
影响平台：&nbsp;IIS4,&nbsp;Microsoft&nbsp;Index&nbsp;Server&nbsp;<br />
风险级别：Medium&nbsp;<br />
<br />
Microsoft&nbsp;Index&nbsp;Server在错误信息提示中会显示敏感的路径信息。Microsoft&nbsp;Index&nbsp;Server是Windows&nbsp;NT&nbsp;4.0&nbsp;Option&nbsp;Pack中提供的一个Web搜索引擎。当用户请求一个不存在的Internet&nbsp;Data&nbsp;Query&nbsp;(IDQ)文件时，该程序返回一个错误信息，信息中提供了包含该请求的Web目录的绝对路径。攻击者就可以利用这个路径获得Web服务器的文件结构的有关信息。&nbsp;<br />
<br />
参考：&nbsp;<br />
Microsoft&nbsp;Security&nbsp;Bulletin&nbsp;MS00-006:&nbsp;"Patch&nbsp;Available&nbsp;for&nbsp;"Malformed&nbsp;Hit-Highlighting&nbsp;Argument"&nbsp;Vulnerability"&nbsp;at:&nbsp;<a href="http://www.microsoft.com/technet/security/bulletin/ms00-006.asp" target="_blank">http://www.microsoft.com/technet/security/bulletin/ms00-006.asp</a>&nbsp;<br />
<br />
<br />
漏洞名称：Frontpage&nbsp;扩展模块&nbsp;<br />
影响平台：&nbsp;Microsoft&nbsp;Frontpage&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
Unix系统中的Microsoft&nbsp;FrontPage&nbsp;扩展模块有时会生成人人可读权限的'service.pwd'&nbsp;文件（有时甚至是人人可写权限的）。该文件包含加密的用户口令，攻击者得到它可以下线去破解。&nbsp;<br />
<br />
参考：&nbsp;<br />
BuqTraq&nbsp;Mailing&nbsp;List:&nbsp;"Some&nbsp;Past&nbsp;Frontpage&nbsp;Exploits"&nbsp;at:&nbsp;<a href="http://www.netspace.org/cgi-bin/wa?A2=ind9804D" target="_blank">http://www.netspace.org/cgi-bin/wa?A2=ind9804D</a>&amp;L=bugtraq&amp;P=R2547&nbsp;<br />
<br />
<br />
漏洞名称：Frontpage&nbsp;口令管理&nbsp;<br />
影响平台：&nbsp;Microsoft&nbsp;Frontpage&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
<br />
Microsoft&nbsp;FrontPage扩展模块在HTTP服务器的文档目录下_vti_pvt&nbsp;目录生成管理员口令文件。该文件包含了加密的口令字，攻击者可以远程获取并下线破解。如果口令文件中的口令非常弱，或者攻击者花足够的时间破解，攻击者将可能获得明文的口令，用来访问HTTP服务器上的任意资源。&nbsp;<br />
<br />
参考：&nbsp;<br />
BuqTraq&nbsp;Mailing&nbsp;List:&nbsp;"Some&nbsp;Past&nbsp;Frontpage&nbsp;Exploits"&nbsp;at:&nbsp;<a href="http://www.netspace.org/cgi-bin/wa?A2=ind9804D" target="_blank">http://www.netspace.org/cgi-bin/wa?A2=ind9804D</a>&amp;L=bugtraq&amp;P=R2547&nbsp;<br />
<br />
<br />
6.电子邮件&nbsp;<br />
<br />
漏洞名称：Sendmail&nbsp;管道攻击&nbsp;<br />
影响平台：&nbsp;Sendmail&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
通过把一个管道字符插入到一个e-mail的特定字段，sendmail可以被迫执行命令。这种行为可以导致远程攻击者用root权限执行命令。&nbsp;<br />
<br />
参考：&nbsp;<br />
Sendmail&nbsp;Consortium:&nbsp;"Sendmail&nbsp;FAQ"&nbsp;at:&nbsp;<a href="http://www.sendmail.org/faq" target="_blank">http://www.sendmail.org/faq</a>&nbsp;<br />
<br />
<br />
漏洞名称：Sendmail&nbsp;MIME&nbsp;缓存溢出&nbsp;<br />
影响平台：&nbsp;Sendmail&nbsp;versions&nbsp;8.8.3&nbsp;and&nbsp;8.8.4&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
这个漏洞存在于Sendmail&nbsp;8.8.3和8.8.4&nbsp;的MIME处理代码中。远程的攻击者利用这个漏洞给服务器发送一个特殊的报头导致sendmail以root权限执行任意命令。.&nbsp;<br />
<br />
参考：&nbsp;<br />
CERT建议CA-97.05:&nbsp;"MIME&nbsp;Conversion&nbsp;Buffer&nbsp;Overflow&nbsp;in&nbsp;Sendmail&nbsp;Versions&nbsp;8.8.3&nbsp;and&nbsp;8.8.4"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-97.05.sendmail.html" target="_blank">http://www.cert.org/advisories/CA-97.05.sendmail.html</a>&nbsp;<br />
<br />
<br />
7.文件共享&nbsp;<br />
<br />
<br />
漏洞名称：NetBIOS&nbsp;<br />
影响平台：&nbsp;NetBIOS&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
NetBIOS&nbsp;文件共享使攻击者能够访问文件并进行强力口令攻击。&nbsp;<br />
<br />
漏洞名称：NFS&nbsp;<br />
影响平台：&nbsp;NFS&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
NFS&nbsp;系统允许攻击者通过网络访问文件。&nbsp;<br />
<br />
8.&nbsp;RPC&nbsp;<br />
<br />
漏洞名称：rpc.cmsd&nbsp;<br />
影响平台：&nbsp;Solaris:&nbsp;2.3,&nbsp;2.4,&nbsp;2.5,&nbsp;2.5.1,&nbsp;and&nbsp;2.6,&nbsp;Common&nbsp;<br />
Desktop&nbsp;Environments&nbsp;(CDE)&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
Sun&nbsp;在数据库管理器rpc.cmsd上发现了一个漏洞，该数据库管理器被用作资源日程，比如象Openwindows&nbsp;中的日历管理器和CDE中的日历。该漏洞如果被攻破，攻击者可以改写任意文件并获得root访问权。&nbsp;<br />
<br />
参考：&nbsp;<br />
Sun&nbsp;Microsystems,&nbsp;Inc.&nbsp;Security&nbsp;Bulletin&nbsp;#00166:&nbsp;"rpc.cmsd"&nbsp;at:&nbsp;<a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=secbull/166" target="_blank">http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=secbull/166</a>&nbsp;<br />
<br />
<br />
漏洞名称：Sun&nbsp;RPC&nbsp;Statd&nbsp;<br />
影响平台：&nbsp;Solaris:&nbsp;2.3,&nbsp;2.4,&nbsp;2.5,&nbsp;2.5.1,&nbsp;and&nbsp;2.6&nbsp;<br />
风险级别：高风险&nbsp;<br />
<br />
对NFS上的文件锁定，RPC&nbsp;service&nbsp;statd与lockd协同工作，提供文件的恢复功能。在Solaris和SUN&nbsp;OS下，一个远程攻击者可以用statd间接调用其他的RPC服务来绕过访问控制。这个漏洞可能被用来攻破SUN服务器上的其他安全弱点。&nbsp;<br />
<br />
参考：&nbsp;<br />
Sun&nbsp;Microsystems,&nbsp;Inc.&nbsp;Security&nbsp;Bulletin&nbsp;#00186:&nbsp;"rpc.statd"&nbsp;at:&nbsp;<a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=secbull/186" target="_blank">http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=secbull/186</a>&nbsp;<br />
<br />
<br />
漏洞名称：Sadmin&nbsp;<br />
影响平台：Solaris:&nbsp;2.3,&nbsp;2.4,&nbsp;2.5,&nbsp;2.5.1,&nbsp;2.6,&nbsp;and&nbsp;7&nbsp;<br />
风险级别：高风险&nbsp;<br />
sadmind&nbsp;daemon是Solaris&nbsp;操作系统中的Solstice&nbsp;AdminSuite&nbsp;分布式系统的一部分。这个程序在调用NETMGT_PROC_SERVICE时有缓冲溢出漏洞，&nbsp;这将允许攻击者以root权限执行任意代码。.&nbsp;<br />
参考：&nbsp;<br />
Sun&nbsp;Microsystems,&nbsp;Inc.&nbsp;Security&nbsp;Bulletin&nbsp;#00191:&nbsp;"Sadmin"&nbsp;at:&nbsp;<a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=secbull/191" target="_blank">http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=secbull/191</a>&nbsp;<br />
漏洞名称：Amd&nbsp;<br />
影响平台：Linux&nbsp;<br />
风险级别：高风险&nbsp;<br />
The&nbsp;Automounter&nbsp;daemon&nbsp;(amd)&nbsp;在mount代码中有一个缓存溢出的漏洞，会影响Linux和一些BSD&nbsp;平台.&nbsp;当有访问其它文件系统的请求时，Amd&nbsp;会自动mount文件系统。向AMQPROC_MOUNT进程发送长字符串时，能使远程攻击者获得root&nbsp;信任。&nbsp;<br />
参考：&nbsp;<br />
CERT建议CA-99-12:&nbsp;"Buffer&nbsp;Overflow&nbsp;in&nbsp;amd"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-99-12-amd.html" target="_blank">http://www.cert.org/advisories/CA-99-12-amd.html</a>&nbsp;<br />
漏洞名称：Mountd&nbsp;<br />
影响平台：Linux&nbsp;<br />
风险级别：高风险&nbsp;<br />
攻击者能利用这个漏洞获得NFS文件服务器的管理员权限。这个漏洞能被用于远程利用并且不需要目标机的账户。&nbsp;<br />
参考：&nbsp;<br />
CERT建议CA-98.12:&nbsp;"Remotely&nbsp;Exploitable&nbsp;Buffer&nbsp;Overflow&nbsp;Vulnerability&nbsp;in&nbsp;mountd"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-98.12.mountd.html" target="_blank">http://www.cert.org/advisories/CA-98.12.mountd.html</a>&nbsp;<br />
9.&nbsp;BIND&nbsp;<br />
漏洞名称：BIND&nbsp;nxt&nbsp;<br />
影响平台：Bind:&nbsp;8.2,&nbsp;8.2&nbsp;P1,&nbsp;and&nbsp;8.2.1&nbsp;<br />
风险级别：高风险&nbsp;<br />
在BIND的8.2和8.2.1版本中在处理NXT的记录的代码中，存在一个漏洞。BIND是一个可自由使用的DNS服务器，它是由Internet&nbsp;Software&nbsp;Consortium提供的。该缓存溢出有可能使一个远程攻击者用root权限执行任意的代码。&nbsp;<br />
参考：&nbsp;<br />
Sun&nbsp;Microsystems,&nbsp;Inc.&nbsp;Security&nbsp;Bulletin&nbsp;#00166:&nbsp;"rpc.cmsd"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-99-14-bind.html" target="_blank">http://www.cert.org/advisories/CA-99-14-bind.html</a>&nbsp;<br />
漏洞名称：BIND&nbsp;Qinv&nbsp;<br />
影响平台：Bind&nbsp;<br />
风险级别：高风险&nbsp;<br />
BIND4.9.7版本以前和BIND8.1.2以前存在一个缓存溢出漏洞。一个怀有恶意的远程用户可能会发送一个特殊格式的反向查询TCP流，它可能会引起这台BIND服务器崩溃，并使得这个攻击者获得root权限。&nbsp;<br />
参考：&nbsp;<br />
CERT建议CA-98.05:&nbsp;"Multiple&nbsp;Vulnerabilities&nbsp;in&nbsp;BIND"&nbsp;at:&nbsp;<a href="http://www.cert.org/ftp/cert_advisories/CA-98.05.bind_problems" target="_blank">http://www.cert.org/ftp/cert_advisories/CA-98.05.bind_problems</a>&nbsp;<br />
10.&nbsp;Linux&nbsp;缓存溢出&nbsp;<br />
漏洞名称：IMAP&nbsp;Buffer&nbsp;Overflow&nbsp;<br />
影响平台：IMAP&nbsp;<br />
风险级别：高风险&nbsp;<br />
IMAP4rev1服务器（10.234版及以前的版本）有一个缓存溢出漏洞。通常imapd服务以root权限运行，此漏洞允许远程攻击者在受害主机上执行任意的命令。该漏洞不同于CERT&nbsp;CA-97.09中描述的与IMAPLOGIN命令有关的缓存溢出漏洞。要特别注意修正后的IMAP仍旧是以10.234版本号发布的，版本号并不表示是一个安全的或有漏洞的版本。&nbsp;<br />
参考：&nbsp;<br />
CERT建议CA-98.09:&nbsp;"Buffer&nbsp;Overflow&nbsp;in&nbsp;Some&nbsp;Implementations&nbsp;of&nbsp;IMAP&nbsp;Servers"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-98.09.imapd.html" target="_blank">http://www.cert.org/advisories/CA-98.09.imapd.html</a>&nbsp;<br />
漏洞名称：QPopper&nbsp;Buffer&nbsp;Overflow&nbsp;<br />
影响平台：&nbsp;Qpopper,&nbsp;SCO&nbsp;Open&nbsp;Server,&nbsp;SCO&nbsp;Internet&nbsp;FastStart&nbsp;<br />
风险级别：高风险&nbsp;<br />
2.5版本以前Qualcomm&nbsp;Opopper服务器包含一个缓存溢出漏洞。远程攻击者可以发出一条超长度PASS命令给服务器，引起内部缓存溢出，使攻击者能以root权限在服务器上执行任何代码。&nbsp;<br />
参考：&nbsp;<br />
CERT建议CA-98.08:&nbsp;"Buffer&nbsp;overflows&nbsp;in&nbsp;some&nbsp;POP&nbsp;servers"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-98.08.qpopper_vul.html" target="_blank">http://www.cert.org/advisories/CA-98.08.qpopper_vul.html</a>&nbsp;<br />
漏洞名称：改写堆栈&nbsp;<br />
影响平台：&nbsp;wu-ftpd&nbsp;<br />
风险级别：高风险&nbsp;<br />
在Wu-ftpd消息文件中的宏变量允许本地或远程攻击者改写FTP&nbsp;Daemon的堆栈以及执行任意代码，这是由于宏变量在展开时不正确的边界检查引起的。&nbsp;<br />
参考：&nbsp;<br />
CERT建议CA-99.013:&nbsp;"Multiple&nbsp;Vulnerabilities&nbsp;in&nbsp;WU-FTPD"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-99-13-wuftpd.html" target="_blank">http://www.cert.org/advisories/CA-99-13-wuftpd.html</a>&nbsp;<br />
漏洞名称：WU-FTP&nbsp;Directory&nbsp;Buffer&nbsp;Overflow&nbsp;<br />
影响平台：&nbsp;wu-ftpd:&nbsp;2.5,&nbsp;BeroFTPD,&nbsp;<br />
风险级别：高风险&nbsp;<br />
wu-ftpd中存在一个漏洞，该漏洞允许本地或远程攻击者以root权限执行代码。当服务器被用MAPPING__CHDIR特性进行编译时，在用户提供的目录名边界检查时发生缓存溢出。任何有权创建目录的攻击者能够覆盖静态存储空间并以root权限执行任意代码。&nbsp;<br />
参考：&nbsp;<br />
CERT建议CA-99.013:&nbsp;"Multiple&nbsp;Vulnerabilities&nbsp;in&nbsp;WU-FTPD"&nbsp;at:&nbsp;<a href="http://www.cert.org/advisories/CA-99-13-wuftpd.html" target="_blank">http://www.cert.org/advisories/CA-99-13-wuftpd.html</a><br />
</div>
<img src ="http://www.blogjava.net/yukui/aggbug/161317.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-18 00:18 <a href="http://www.blogjava.net/yukui/archive/2007/11/18/161317.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网页制作一些不错的代码</title><link>http://www.blogjava.net/yukui/archive/2007/11/18/161316.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 17 Nov 2007 16:16:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/18/161316.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/161316.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/18/161316.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/161316.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/161316.html</trackback:ping><description><![CDATA[<div class="content">1.&nbsp;oncontextmenu="window.event.returnvalue=false"&nbsp;将彻底屏蔽鼠标右键<br />
&lt;table&nbsp;border&nbsp;oncontextmenu=return(false)&gt;&lt;td&gt;no&lt;/table&gt;&nbsp;可用于Table&nbsp;<br />
<br />
2.&nbsp;&lt;body&nbsp;onselectstart="return&nbsp;false"&gt;&nbsp;取消选取、防止复制<br />
<br />
3.&nbsp;onpaste="return&nbsp;false"&nbsp;不准粘贴<br />
<br />
4.&nbsp;oncopy="return&nbsp;false;"&nbsp;oncut="return&nbsp;false;"&nbsp;防止复制<br />
<br />
5.&nbsp;&lt;link&nbsp;rel="Shortcut&nbsp;Icon"&nbsp;href="favicon.ico"&gt;&nbsp;IE地址栏前换成自己的图标<br />
<br />
6.&nbsp;&lt;link&nbsp;rel="Bookmark"&nbsp;href="favicon.ico"&gt;&nbsp;可以在收藏夹中显示出你的图标<br />
<br />
7.&nbsp;&lt;input&nbsp;style="ime-mode:disabled"&gt;&nbsp;关闭输入法<br />
<br />
8.&nbsp;永远都会带着框架<br />
&lt;script&nbsp;language="javascript"&gt;&lt;!--<br />
if&nbsp;(window&nbsp;==&nbsp;top)top.location.href&nbsp;=&nbsp;"frames.htm";&nbsp;//frames.htm为框架网页<br />
//&nbsp;--&gt;&lt;/script&gt;<br />
<br />
9.&nbsp;防止被人frame<br />
&lt;SCRIPT&nbsp;LANGUAGE=javascript&gt;&lt;!--&nbsp;<br />
if&nbsp;(top.location&nbsp;!=&nbsp;self.location)top.location=self.location;<br />
//&nbsp;--&gt;&lt;/SCRIPT&gt;<br />
<br />
10.&nbsp;&lt;noscript&gt;&lt;iframe&nbsp;src=*.html&gt;&lt;/iframe&gt;&lt;/noscript&gt;&nbsp;网页将不能被另存为<br />
<br />
11.&nbsp;&lt;input&nbsp;type=button&nbsp;value=查看网页源代码&nbsp;<br />
onclick="window.location&nbsp;=&nbsp;'view-source:'+&nbsp;'<a href="http://www.csdn.net/" target="_blank">http://www.csdn.net/</a>&#39;"&gt;<br />
<br />
12.&nbsp;怎样通过asp的手段来检查来访者是否用了代理<br />
&lt;%&nbsp;if&nbsp;Request.ServerVariables("HTTP_X_FORWARDED_FOR")&lt;&gt;""&nbsp;then<br />
response.write&nbsp;"&lt;font&nbsp;color=#FF0000&gt;您通过了代理服务器，"&amp;&nbsp;_<br />
"真实的IP为"&amp;Request.ServerVariables("HTTP_X_FORWARDED_FOR")<br />
end&nbsp;if<br />
%&gt;<br />
<br />
13.&nbsp;取得控件的绝对位置<br />
<br />
//javascript<br />
&lt;script&nbsp;language="javascript"&gt;<br />
function&nbsp;getIE(e){<br />
var&nbsp;t=e.offsetTop;<br />
var&nbsp;l=e.offsetLeft;<br />
while(e=e.offsetParent){<br />
t+=e.offsetTop;<br />
l+=e.offsetLeft;<br />
}<br />
alert("top="+t+"\nleft="+l);<br />
}<br />
&lt;/script&gt;<br />
<br />
//VBScript<br />
&lt;script&nbsp;language="VBScript"&gt;&lt;!--<br />
function&nbsp;getIE()<br />
dim&nbsp;t,l,a,b<br />
set&nbsp;a=document.all.img1<br />
t=document.all.img1.offsetTop<br />
l=document.all.img1.offsetLeft<br />
while&nbsp;a.tagName&lt;&gt;"BODY"<br />
set&nbsp;a&nbsp;=&nbsp;a.offsetParent<br />
t=t+a.offsetTop<br />
l=l+a.offsetLeft<br />
wend<br />
msgbox&nbsp;"top="&amp;t&amp;chr(13)&amp;"left="&amp;l,64,"得到控件的位置"<br />
end&nbsp;function<br />
--&gt;&lt;/script&gt;<br />
<br />
14.&nbsp;光标是停在文本框文字的最后<br />
&lt;script&nbsp;language="javascript"&gt;<br />
function&nbsp;cc()<br />
{<br />
var&nbsp;e&nbsp;=&nbsp;event.srcElement;<br />
var&nbsp;r&nbsp;=e.createTextRange();<br />
r.moveStart('character',e.value.length);<br />
r.collapse(true);<br />
r.select();<br />
}<br />
&lt;/script&gt;<br />
&lt;input&nbsp;type=text&nbsp;name=text1&nbsp;value="123"&nbsp;onfocus="cc()"&gt;<br />
<br />
15.&nbsp;判断上一页的来源<br />
asp:<br />
request.servervariables("HTTP_REFERER")<br />
<br />
javascript&nbsp;:<br />
document.referrer<br />
<br />
16.&nbsp;最小化、最大化、关闭窗口<br />
&lt;object&nbsp;id=hh1&nbsp;classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"&gt;&nbsp;<br />
&lt;param&nbsp;name="Command"&nbsp;value="Minimize"&gt;&lt;/object&gt;<br />
&lt;object&nbsp;id=hh2&nbsp;classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"&gt;&nbsp;<br />
&lt;param&nbsp;name="Command"&nbsp;value="Maximize"&gt;&lt;/object&gt;<br />
&lt;OBJECT&nbsp;id=hh3&nbsp;classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"&gt;<br />
&lt;PARAM&nbsp;NAME="Command"&nbsp;value="Close"&gt;&lt;/OBJECT&gt;<br />
<br />
&lt;input&nbsp;type=button&nbsp;value=最小化&nbsp;onclick=hh1.Click()&gt;<br />
&lt;input&nbsp;type=button&nbsp;value=最大化&nbsp;onclick=hh2.Click()&gt;<br />
&lt;input&nbsp;type=button&nbsp;value=关闭&nbsp;onclick=hh3.Click()&gt;<br />
本例适用于IE<br />
<br />
17.&nbsp;<br />
&lt;%<br />
'定义数据库连接的一些常量<br />
Const&nbsp;adOpenForwardOnly&nbsp;=&nbsp;0&nbsp;'游标只向前浏览记录，不支持分页、Recordset、BookMark<br />
Const&nbsp;adOpenKeyset&nbsp;=&nbsp;1&nbsp;'键集游标，其他用户对记录说做的修改将反映到记录集中，但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark<br />
Const&nbsp;adOpenDynamic&nbsp;=&nbsp;2&nbsp;'动态游标功能最强，但耗资源也最多。用户对记录说做的修改，增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。<br />
Const&nbsp;adOpenStatic&nbsp;=&nbsp;3&nbsp;'静态游标，只是数据的一个快照，用户对记录说做的修改，增加或删除记录都不会反映到记录集中。支持向前或向后移动<br />
<br />
Const&nbsp;adLockReadOnly&nbsp;=&nbsp;1&nbsp;'锁定类型，默认的，只读，不能作任何修改<br />
Const&nbsp;adLockPessimistic&nbsp;=&nbsp;2&nbsp;'当编辑时立即锁定记录，最安全的方式<br />
Const&nbsp;adLockOptimistic&nbsp;=&nbsp;3&nbsp;'只有在调用Update方法时才锁定记录集，而在此前的其他操作仍可对当前记录进行更改、插入和删除等<br />
Const&nbsp;adLockBatchOptimistic&nbsp;=&nbsp;4&nbsp;'当编辑时记录不会被锁定，而更改、插入和删除是在批处理方式下完成的<br />
<br />
Const&nbsp;adCmdText&nbsp;=&nbsp;&amp;H0001<br />
Const&nbsp;adCmdTable&nbsp;=&nbsp;&amp;H0002<br />
%&gt;<br />
<br />
18.&nbsp;网页不会被缓存<br />
HTM网页<br />
&lt;META&nbsp;HTTP-EQUIV="pragma"&nbsp;CONTENT="no-cache"&gt;<br />
&lt;META&nbsp;HTTP-EQUIV="Cache-Control"&nbsp;CONTENT="no-cache,&nbsp;must-revalidate"&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 />
或者&lt;META&nbsp;HTTP-EQUIV="expires"&nbsp;CONTENT="0"&gt;<br />
ASP网页<br />
Response.Expires&nbsp;=&nbsp;-1<br />
Response.ExpiresAbsolute&nbsp;=&nbsp;Now()&nbsp;-&nbsp;1<br />
Response.cachecontrol&nbsp;=&nbsp;"no-cache"<br />
PHP网页<br />
header("Expires:&nbsp;Mon,&nbsp;26&nbsp;Jul&nbsp;1997&nbsp;05:00:00&nbsp;GMT");<br />
header("Cache-Control:&nbsp;no-cache,&nbsp;must-revalidate");<br />
header("Pragma:&nbsp;no-cache");<br />
<br />
19.&nbsp;检查一段字符串是否全由数字组成<br />
&lt;script&nbsp;language="javascript"&gt;&lt;!--<br />
function&nbsp;checkNum(str){return&nbsp;str.match(/\D/)==null}<br />
alert(checkNum("1232142141"))<br />
alert(checkNum("123214214a1"))<br />
//&nbsp;--&gt;&lt;/script&gt;<br />
<br />
20.&nbsp;获得一个窗口的大小<br />
document.body.clientWidth,document.body.clientHeight<br />
<br />
21.&nbsp;怎么判断是否是字符<br />
if&nbsp;(/[^\x00-\xff]/g.test(s))&nbsp;alert("含有汉字");<br />
else&nbsp;alert("全是字符");<br />
<br />
22.TEXTAREA自适应文字行数的多少<br />
&lt;textarea&nbsp;rows=1&nbsp;name=s1&nbsp;cols=27&nbsp;onpropertychange="this.style.posHeight=this.scrollHeight"&gt;<br />
&lt;/textarea&gt;<br />
<br />
23.&nbsp;日期减去天数等于第二个日期<br />
&lt;script&nbsp;language=javascript&gt;<br />
function&nbsp;cc(dd,dadd)<br />
{<br />
//可以加上错误处理<br />
var&nbsp;a&nbsp;=&nbsp;new&nbsp;Date(dd)<br />
a&nbsp;=&nbsp;a.valueOf()<br />
a&nbsp;=&nbsp;a&nbsp;-&nbsp;dadd&nbsp;*&nbsp;24&nbsp;*&nbsp;60&nbsp;*&nbsp;60&nbsp;*&nbsp;1000<br />
a&nbsp;=&nbsp;new&nbsp;Date(a)<br />
alert(a.getFullYear()&nbsp;+&nbsp;"年"&nbsp;+&nbsp;(a.getMonth()&nbsp;+&nbsp;1)&nbsp;+&nbsp;"月"&nbsp;+&nbsp;a.getDate()&nbsp;+&nbsp;"日")<br />
}<br />
cc("12/23/2002",2)<br />
&lt;/script&gt;<br />
<br />
24.&nbsp;选择了哪一个Radio<br />
&lt;HTML&gt;&lt;script&nbsp;language="vbscript"&gt;<br />
function&nbsp;checkme()<br />
for&nbsp;each&nbsp;ob&nbsp;in&nbsp;radio1<br />
if&nbsp;ob.checked&nbsp;then&nbsp;window.alert&nbsp;ob.value<br />
next<br />
end&nbsp;function<br />
&lt;/script&gt;&lt;BODY&gt;<br />
&lt;INPUT&nbsp;name="radio1"&nbsp;type="radio"&nbsp;value="style"&nbsp;checked&gt;Style<br />
&lt;INPUT&nbsp;name="radio1"&nbsp;type="radio"&nbsp;value="barcode"&gt;Barcode<br />
&lt;INPUT&nbsp;type="button"&nbsp;value="check"&nbsp;onclick="checkme()"&gt;<br />
&lt;/BODY&gt;&lt;/HTML&gt;<br />
<br />
25.获得本页url的request.servervariables("")集合<br />
Response.Write&nbsp;"&lt;TABLE&nbsp;border=1&gt;&lt;!--&nbsp;Table&nbsp;Header&nbsp;--&gt;&lt;TR&gt;&lt;TD&gt;&lt;B&gt;Variables&lt;/B&gt;&lt;/TD&gt;&lt;TD&gt;&lt;B&gt;value&lt;/B&gt;&lt;/TD&gt;&lt;/TR&gt;"<br />
for&nbsp;each&nbsp;ob&nbsp;in&nbsp;Request.ServerVariables<br />
Response.Write&nbsp;"&lt;TR&gt;&lt;TD&gt;"&amp;ob&amp;"&lt;/TD&gt;&lt;TD&gt;"&amp;Request.ServerVariables(ob)&amp;"&lt;/TD&gt;&lt;/TR&gt;"<br />
next<br />
Response.Write&nbsp;"&lt;/TABLE&gt;"<br />
<br />
26.<br />
本机ip&lt;%=request.servervariables("remote_addr")%&gt;<br />
服务器名&lt;%=Request.ServerVariables("SERVER_NAME")%&gt;<br />
服务器IP&lt;%=Request.ServerVariables("LOCAL_ADDR")%&gt;<br />
服务器端口&lt;%=Request.ServerVariables("SERVER_PORT")%&gt;<br />
服务器时间&lt;%=now%&gt;<br />
IIS版本&lt;%=Request.ServerVariables"SERVER_SOFTWARE")%&gt;<br />
脚本超时时间&lt;%=Server.ScriptTimeout%&gt;<br />
本文件路径&lt;%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%&gt;<br />
服务器CPU数量&lt;%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%&gt;<br />
服务器解译引擎&lt;%=ScriptEngine&nbsp;&amp;&nbsp;"/"&amp;&nbsp;ScriptEngineMajorVersion&nbsp;&amp;"."&amp;ScriptEngineMinorVersion&amp;"."&amp;&nbsp;ScriptEngineBuildVersion&nbsp;%&gt;<br />
服务器操作系统&lt;%=Request.ServerVariables("OS")%&gt;<br />
<br />
27.ENTER键可以让光标移到下一个输入框<br />
&lt;input&nbsp;onkeydown="if(event.keyCode==13)event.keyCode=9"&gt;<br />
<br />
28.&nbsp;检测某个网站的链接速度：<br />
把如下代码加入&lt;body&gt;区域中:<br />
&lt;script&nbsp;language=javascript&gt;<br />
tim=1<br />
setInterval("tim++",100)<br />
b=1<br />
<br />
var&nbsp;autourl=new&nbsp;Array()<br />
autourl[1]="www.njcatv.net"<br />
autourl[2]="javacool.3322.net"<br />
autourl[3]="www.sina.com.cn"<br />
autourl[4]="www.nuaa.edu.cn"<br />
autourl[5]="www.cctv.com"<br />
<br />
function&nbsp;butt(){<br />
document.write("&lt;form&nbsp;name=autof&gt;")<br />
for(var&nbsp;i=1;i&lt;autourl.length;i++)<br />
document.write("&lt;input&nbsp;type=text&nbsp;name=txt"+i+"&nbsp;size=10&nbsp;value=测试中&#8230;&#8230;&gt;&nbsp;=》&lt;input&nbsp;type=text&nbsp;name=url"+i+"&nbsp;size=40&gt;&nbsp;=》&lt;input&nbsp;type=button&nbsp;value=GO&nbsp;onclick=window.open(this.form.url"+i+".value)&gt;&lt;br/&gt;")<br />
document.write("&lt;input&nbsp;type=submit&nbsp;value=刷新&gt;&lt;/form&gt;")<br />
}<br />
butt()<br />
function&nbsp;auto(url){<br />
document.forms[0]["url"+b].value=url<br />
if(tim&gt;200)<br />
{document.forms[0]["txt"+b].value="链接超时"}<br />
else<br />
{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}<br />
b++<br />
}<br />
function&nbsp;run(){for(var&nbsp;i=1;i&lt;autourl.length;i++)document.write("&lt;img&nbsp;src=http://"+autourl[I+"/"+Math.random()+"&nbsp;width=1&nbsp;height=1&nbsp;onerror=auto('<a href="http:///" target="_blank">http://</a>";;;+autourl[I+"')&gt;")}<br />
run()&lt;/script&gt;<br />
<br />
29.&nbsp;各种样式的光标<br />
auto&nbsp;：标准光标<br />
default&nbsp;：标准箭头<br />
hand&nbsp;：手形光标<br />
wait&nbsp;：等待光标<br />
text&nbsp;：I形光标<br />
vertical-text&nbsp;：水平I形光标<br />
no-drop&nbsp;：不可拖动光标<br />
not-allowed&nbsp;：无效光标<br />
help&nbsp;：?帮助光标<br />
all-scroll&nbsp;：三角方向标<br />
move&nbsp;：移动标<br />
crosshair&nbsp;：十字标<br />
e-resize<br />
n-resize<br />
nw-resize<br />
w-resize<br />
s-resize<br />
se-resize<br />
sw-resize<br />
</div>
<img src ="http://www.blogjava.net/yukui/aggbug/161316.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-18 00:16 <a href="http://www.blogjava.net/yukui/archive/2007/11/18/161316.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网页弹出窗口</title><link>http://www.blogjava.net/yukui/archive/2007/11/18/161315.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 17 Nov 2007 16:14:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/18/161315.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/161315.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/18/161315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/161315.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/161315.html</trackback:ping><description><![CDATA[<div class="content">1.弹启一个全屏窗口&nbsp;<br />
＜html＞&nbsp;<br />
＜body&nbsp;onload="window.open('&nbsp;<a href="http://www.kuizi.com/" target="_blank">http://www.kuizi.com</a>','example01','fullscreen');"＞&nbsp;<br />
＜b＞www.kuizi.com＜/b＞&nbsp;<br />
＜/body＞&nbsp;<br />
＜/html＞&nbsp;<br />
<br />
<br />
2.弹启一个被F11化后的窗口&nbsp;<br />
＜html＞&nbsp;<br />
＜body&nbsp;onload="window.open('&nbsp;<a href="http://www.kuizi.com/" target="_blank">http://www.kuizi.com</a>','example02','channelmode');"＞&nbsp;<br />
＜b＞www.kuizi.com＜/b＞&nbsp;<br />
＜/body＞&nbsp;<br />
＜/html＞&nbsp;<br />
<br />
<br />
3.弹启一个带有收藏链接工具栏的窗口&nbsp;<br />
＜html＞&nbsp;<br />
＜body&nbsp;onload="window.open('<a href="http://www.kuizi.com/" target="_blank">http://www.kuizi.com</a>','example03','width=400,height=300,directories');"＞&nbsp;<br />
＜b＞www.kuizi.com＜/b＞&nbsp;<br />
＜/body＞&nbsp;<br />
＜/html＞&nbsp;<br />
<br />
<br />
4.网页对话框&nbsp;<br />
＜html＞&nbsp;<br />
＜SCRIPT&nbsp;LANGUAGE="javascript"＞&nbsp;<br />
＜!--&nbsp;<br />
showModalDialog('<a href="http://www.kuizi.com/" target="_blank">http://www.kuizi.com</a>','example04','dialogWidth:400px;dialogHeight:300px;dialogLeft:200px;dialogTop:150px;center:&nbsp;<br />
<br />
yes;help:yes;resizable:yes;status:yes')&nbsp;<br />
//--＞&nbsp;<br />
＜/SCRIPT＞&nbsp;<br />
＜b＞www.kuizi.com＜/b＞&nbsp;<br />
＜/body＞&nbsp;<br />
＜/html＞&nbsp;<br />
<br />
＜html＞&nbsp;<br />
＜SCRIPT&nbsp;LANGUAGE="javascript"＞&nbsp;<br />
＜!--&nbsp;<br />
showModelessDialog('<a href="http://www.kuizi.com/" target="_blank">http://www.kuizi.com</a>','example05','dialogWidth:400px;dialogHeight:300px;dialogLeft:200px;dialogTop:150px;center:yes;&nbsp;<br />
<br />
help:yes;resizable:yes;status:yes')&nbsp;<br />
//--＞&nbsp;<br />
＜/SCRIPT＞&nbsp;<br />
＜b＞www.kuizi.com＜/b＞&nbsp;<br />
＜/body＞&nbsp;<br />
＜/html＞&nbsp;<br />
<br />
<br />
showModalDialog()或是showModelessDialog()&nbsp;来调用网页对话框，至于showModalDialog()与showModelessDialog()的区别，在于showModalDialog()打开的窗口（简称模式窗口），置在父窗口上，必须关闭才能访问父窗口(建议尽量少用，以免招人反感)；showModelessDialog()（简称无模式窗口），打开后不必关闭也可访问父窗口打开的窗口。&nbsp;<br />
dialogHeight:&nbsp;iHeight&nbsp;设置对话框窗口的高度。&nbsp;<br />
dialogWidth:&nbsp;iWidth&nbsp;设置对话框窗口的宽度。&nbsp;　　&nbsp;<br />
dialogLeft:&nbsp;iXPos&nbsp;设置对话框窗口相对于桌面左上角的left位置。&nbsp;<br />
dialogTop:&nbsp;iYPos&nbsp;设置对话框窗口相对于桌面左上角的top位置。&nbsp;<br />
center:&nbsp;{yes&nbsp;　&nbsp;no&nbsp;　&nbsp;1&nbsp;　&nbsp;0&nbsp;}&nbsp;指定是否将对话框在桌面上居中，默认值是&#8220;yes&#8221;。&nbsp;<br />
help:&nbsp;{yes&nbsp;　&nbsp;no&nbsp;　&nbsp;1&nbsp;　&nbsp;0&nbsp;}&nbsp;指定对话框窗口中是否显示上下文敏感的帮助图标。默认值是&#8220;yes&#8221;。&nbsp;　　&nbsp;<br />
resizable:&nbsp;{yes&nbsp;　&nbsp;no&nbsp;　&nbsp;1&nbsp;　&nbsp;0&nbsp;}&nbsp;指定是否对话框窗口大小可变。默认值是&#8220;no&#8221;。&nbsp;<br />
status:&nbsp;{yes&nbsp;　&nbsp;no&nbsp;　&nbsp;1&nbsp;　&nbsp;0&nbsp;}&nbsp;指定对话框窗口是否显示状态栏。对于非模式对话框窗口，默认值是&#8220;yes&#8221;；对于模式对话框窗口，默认值是&nbsp;&#8220;no&#8221;。&nbsp;<br />
<br />
5.HTA窗口&nbsp;<br />
<br />
HTA的全名为HTML&nbsp;Application，翻译过来就是HTML应用程序，你只要简单的用.hta为扩展名保存HTML页面就算创建了一个HTA文件，下面我们就用HTA来编个窗口，将以下这段代码保存为.hta文件，然后再用浏览器打开。&nbsp;<br />
<br />
＜HTML＞&nbsp;<br />
＜HEAD＞&nbsp;<br />
＜TITLE＞www.kuizi.com＜/TITLE＞&nbsp;<br />
＜HTA:APPLICATION&nbsp;ID="oHTA"&nbsp;<br />
APPLICATIONNAME="myApp"&nbsp;<br />
　　BORDER="thin"&nbsp;<br />
　　BORDERSTYLE="normal"&nbsp;<br />
　　CAPTION="yes"&nbsp;<br />
　　ICON="filename.ico"&nbsp;<br />
　　MAXIMIZEBUTTON="yes"&nbsp;<br />
　　MINIMIZEBUTTON="yes"&nbsp;<br />
　　SHOWINTASKBAR="no"&nbsp;<br />
　　INGLEINSTANCE="no"&nbsp;<br />
　　SYSMENU="yes"&nbsp;<br />
　　VERSION="1.0"&nbsp;<br />
　　WINDOWSTATE="normal"&nbsp;/＞&nbsp;<br />
＜/HEAD＞&nbsp;<br />
＜BODY＞&nbsp;<br />
＜b＞www.kuizi.com＜/b＞&nbsp;<br />
＜/BODY＞&nbsp;<br />
＜/HTML＞&nbsp;<br />
<br />
有人会发现上面这些代码与平时的html有点不同，多了HTA:APPLICATION标签，这就是关键之处，hta通过它来提供一系列面向应用程序的功能，接下来再讲一讲它的属性&nbsp;<br />
<br />
APPLICATIONNAME属性(applicationName)&nbsp;<br />
　　此属性为设置HTA的名称。&nbsp;<br />
　　BORDER属性(border)&nbsp;<br />
　　此属性为设置为HTA的窗口边框类型，默认值为&nbsp;thick。&nbsp;<br />
　　它可以设为　thick&nbsp;指定窗口为粗边框&nbsp;<br />
　　　　　　　　dialog&nbsp;window&nbsp;指定窗口为对话框&nbsp;<br />
　　　　　　　　none&nbsp;指定窗口无边框&nbsp;<br />
　　　　　　　　thin&nbsp;指定窗口为窄边框&nbsp;<br />
BORDERSTYLE属性(borderStyle)&nbsp;<br />
　　此属性为设置HTA窗口的边框格式，默认值为&nbsp;normal。&nbsp;<br />
　　它可以设为&nbsp;<br />
　　&nbsp;normal&nbsp;普通边框格式&nbsp;<br />
　　&nbsp;complex&nbsp;凹凸格式组合边框&nbsp;<br />
　　&nbsp;raised&nbsp;凸出的3D边框&nbsp;<br />
　　&nbsp;static&nbsp;3D边框格式&nbsp;<br />
　　&nbsp;sunken&nbsp;凹进的3D边框&nbsp;<br />
CAPTION属性(caption)&nbsp;<br />
　　此属性为设置HTA窗口是否显示标题栏或标题，默认值为&nbsp;yes。&nbsp;<br />
ICON属性(icon)&nbsp;<br />
　　此属性为设置应用程序的图标。&nbsp;<br />
MAXIMIZEBUTTON属性(maximizeButton)&nbsp;<br />
　　此属性为设置是否在HTA窗口中显示最大化按钮，默认值为&nbsp;yes。&nbsp;<br />
MINIMIZEBUTTON属性(minimizeButton)&nbsp;<br />
　　此属性为设置是否在HTA窗口中显示最小化按钮，默认值为&nbsp;yes。&nbsp;<br />
SHOWINTASKBAR属性(showInTaskBar)&nbsp;<br />
　　此属性为设置是否在任务栏中显示此应用程序，默认值为&nbsp;yes。&nbsp;<br />
SINGLEINSTANCE属性(singleInstance)&nbsp;<br />
　　此属性为设置是否此应用程序同时只能运行一次。次属性以APPLICATIONNAME属性作为标识，默认值为&nbsp;no。&nbsp;<br />
SYSMENU属性(sysMenu)&nbsp;<br />
　　此属性为设置是否在HTA窗口中显示系统菜单，默认值为&nbsp;yes。&nbsp;<br />
VERSION属性(version)&nbsp;<br />
　　此属性为设置应用程序的版本，默认值为空。&nbsp;<br />
WINDOWSTATE属性(windowState)&nbsp;<br />
　　此属性为设置HTA窗口的初始大小，默认值为&nbsp;normal。&nbsp;<br />
　　它可以设为&nbsp;normal&nbsp;默认大小&nbsp;<br />
　　　　　　　&nbsp;minmize&nbsp;最小化&nbsp;<br />
　　　　　　　&nbsp;maximize&nbsp;最大化&nbsp;<br />
以上括号中的是在脚本引用的属性。在脚本中以上属性皆为只读属性。此外，在脚本中还可以使用commandLine属性来检索应用程序启动时的参数。&nbsp;<br />
　　在HTA中还可以继续使用html中的绝大多数标签、脚本等。</div>
<img src ="http://www.blogjava.net/yukui/aggbug/161315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-18 00:14 <a href="http://www.blogjava.net/yukui/archive/2007/11/18/161315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript验证</title><link>http://www.blogjava.net/yukui/archive/2007/11/18/161314.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 17 Nov 2007 16:13:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/18/161314.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/161314.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/18/161314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/161314.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/161314.html</trackback:ping><description><![CDATA[<div class="content">格式<br />
null&nbsp;是否为空判断<br />
num&nbsp;数字<br />
ab&nbsp;字母<br />
chs&nbsp;汉字<br />
bit&nbsp;位数<br />
phone&nbsp;电话格式<br />
email&nbsp;电子邮件格式<br />
http&nbsp;格式<br />
*/<br />
function&nbsp;check_null(check_obj){<br />
&nbsp;&nbsp;var&nbsp;str&nbsp;=&nbsp;'';<br />
&nbsp;&nbsp;for(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;check_obj.length;&nbsp;i++)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;=&nbsp;str&nbsp;+&nbsp;'&nbsp;';<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return&nbsp;(str&nbsp;==&nbsp;check_obj);<br />
}<br />
<br />
function&nbsp;check_num(check_obj){<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i,j,strTemp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;//abcdefghijklmnopqrstuvwxyz<br />
&nbsp;&nbsp;&nbsp;&nbsp;strTemp="0123456789";<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;check_obj.length==&nbsp;0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt;check_obj.length;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=strTemp.indexOf(check_obj.charAt(i));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(j==-1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
}<br />
<br />
function&nbsp;check_ab(check_obj){<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i,j,strTemp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;strTemp="abcdefghijklmnopqrstuvwxyz";<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;check_obj.length==&nbsp;0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt;check_obj.length;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=strTemp.indexOf(check_obj.charAt(i));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(j==-1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
}<br />
<br />
function&nbsp;check_chs(check_obj){<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(check_obj.search(/[^\x00-\x80]/)&gt;=0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
}<br />
<br />
function&nbsp;check_bit(check_obj,bit_obj){<br />
&nbsp;&nbsp;arry_str&nbsp;=&nbsp;bit_obj.split('_');<br />
&nbsp;&nbsp;var&nbsp;obj_length&nbsp;=&nbsp;check_obj.length;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;switch(arry_str[2]){<br />
&nbsp;&nbsp;&nbsp;case&nbsp;"&gt;":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(obj_length&gt;arry_str[1]){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;case&nbsp;"&lt;":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(obj_length&lt;arry_str[1]){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;case&nbsp;"&gt;=":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(obj_length&gt;=arry_str[1]){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;case&nbsp;"&lt;=":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(obj_length&lt;=arry_str[1]){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return&nbsp;false;<br />
}<br />
<br />
function&nbsp;check_phone(check_obj){<br />
&nbsp;<br />
&nbsp;&nbsp;if(check_obj.search(/[0-9]{4}\-[0-9]*/)&gt;=0){<br />
&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
}<br />
<br />
function&nbsp;check_email(check_obj){<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(check_obj.search(/^[\w-]+@[\w-]+\.[A-Za-z0-9]{2,}$/)&gt;=0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
function&nbsp;check_http(check_obj){<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(check_obj.search(/^https?:\/\/((\w|-)+\.)+\w+\/?$/i)&gt;=0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
/*************************************************<br />
*&nbsp;函数用途:自动检测表单<br />
*&nbsp;参数:form_name&nbsp;要提交的form对象名字<br />
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_arry&nbsp;要检测input控件对象组<br />
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_arry参数数组的第一个位置是<br />
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;控件的名字，第二个位置是如果出错<br />
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要显示的错误信息字符串，第三个位<br />
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;置是检测范围标志，如果多标志可以<br />
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用,分开。例如'num,null'不能空，<br />
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;并且只能为数字<br />
*/<br />
function&nbsp;auto_check_form(form_name,input_arry){<br />
&nbsp;<br />
&nbsp;for(var&nbsp;num&nbsp;in&nbsp;input_arry){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('ok');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert_flag=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arry_str&nbsp;=&nbsp;input_arry[num][2].split(',');<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;es_num&nbsp;in&nbsp;arry_str){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(arry_str[es_num]){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"null":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(check_null(input_arry[num][0].value)==true){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert_flag=1;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"num":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(check_num(input_arry[num][0].value)==false){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert_flag=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"ab":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(check_ab(input_arry[num][0].value)==false){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert_flag=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"chs":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(check_chs(input_arry[num][0].value)==false){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert_flag=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"phone":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(check_phone(input_arry[num][0].value)==false){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert_flag=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"email":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(check_email(input_arry[num][0].value)==false){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert_flag=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;"http":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(check_http(input_arry[num][0].value)==false){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert_flag=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(arry_str[es_num].search(/bit_*/)&gt;=0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(check_bit(input_arry[num][0].value,arry_str[es_num])==false){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert_flag=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(alert_flag==1){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(input_arry[num][1]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;<br />
&nbsp;}<br />
&nbsp;form_name.submit();<br />
&nbsp;&nbsp;&nbsp;<br />
}<br />
<br />
<br />
注：checkspace函数是检测是否为空<br />
<br />
html方调用通过数组和控件对象名字，对比模式的方式来得到更多的判断支持，比如第2个参数中数组的第3个参数可以这样写:<br />
<br />
onclick=&#8220;auto_check_form(test1,<br />
[<br />
&nbsp;[text_1,'不能空并且只能是数字','null,num'],<br />
&nbsp;[text_2,'不能为空只能为字母','null,ab'],<br />
&nbsp;[text_3,'不能小于9位','null,num,bit_9_&gt;'],<br />
&nbsp;[text_4,'电话号码输入错误','null,phone,bit_13_&lt;='],<br />
&nbsp;[text_5,'请输入汉字做名字','null,chs,bit_6_&gt;']<br />
]);"&gt;&#8220;<br />
<br />
null,phone,bit_13_&lt;=这些都是匹配符。<br />
<br />
&#162;//校验是否全由数字组成<br />
function&nbsp;isDigit(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[0-9]{1,20}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验登录名：只能输入5-20个以字母开头、可带数字、&#8220;_&#8221;、&#8220;.&#8221;的字串<br />
function&nbsp;isRegisterUserName(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验用户姓名：只能输入1-30个以字母开头的字串<br />
function&nbsp;isTrueName(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[a-zA-Z]{1,30}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验密码：只能输入6-20个字母、数字、下划线<br />
function&nbsp;isPasswd(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^(\w){6,20}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验普通电话、传真号码：可以&#8220;+&#8221;开头，除数字外，可含有&#8220;-&#8221;<br />
function&nbsp;isTel(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;//var&nbsp;patrn=/^[+]{0,1}(\d){1,3}[&nbsp;]?([-]?(\d){1,12})+$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[+]{0,1}(\d){1,3}[&nbsp;]?([-]?((\d)|[&nbsp;]){1,12})+$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验手机号码：必须以数字开头，除数字外，可含有&#8220;-&#8221;<br />
function&nbsp;isMobil(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[+]{0,1}(\d){1,3}[&nbsp;]?([-]?((\d)|[&nbsp;]){1,12})+$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验邮政编码<br />
function&nbsp;isPostalCode(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;//var&nbsp;patrn=/^[a-zA-Z0-9]{3,12}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[a-zA-Z0-9&nbsp;]{3,12}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验搜索关键字<br />
function&nbsp;isSearch(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[^`~!@#$%^&amp;*()+=|\\\][\]\{\}:;\'\,.&lt;&gt;/?]{1}[^`~!@$%^&amp;()+=|\\\][\]\{\}:;\'\,.&lt;&gt;?]{0,19}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
function&nbsp;isIP(s)&nbsp;&nbsp;//by&nbsp;zergling<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[0-9.]{1,20}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
&#162;//校验是否全由数字组成<br />
function&nbsp;isDigit(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[0-9]{1,20}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验登录名：只能输入5-20个以字母开头、可带数字、&#8220;_&#8221;、&#8220;.&#8221;的字串<br />
function&nbsp;isRegisterUserName(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验用户姓名：只能输入1-30个以字母开头的字串<br />
function&nbsp;isTrueName(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[a-zA-Z]{1,30}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验密码：只能输入6-20个字母、数字、下划线<br />
function&nbsp;isPasswd(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^(\w){6,20}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验普通电话、传真号码：可以&#8220;+&#8221;开头，除数字外，可含有&#8220;-&#8221;<br />
function&nbsp;isTel(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;//var&nbsp;patrn=/^[+]{0,1}(\d){1,3}[&nbsp;]?([-]?(\d){1,12})+$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[+]{0,1}(\d){1,3}[&nbsp;]?([-]?((\d)|[&nbsp;]){1,12})+$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验手机号码：必须以数字开头，除数字外，可含有&#8220;-&#8221;<br />
function&nbsp;isMobil(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[+]{0,1}(\d){1,3}[&nbsp;]?([-]?((\d)|[&nbsp;]){1,12})+$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
}<br />
<br />
//校验邮政编码<br />
function&nbsp;isPostalCode(s)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;//var&nbsp;patrn=/^[a-zA-Z0-9]{3,12}$/;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;patrn=/^[a-zA-Z0-9&nbsp;]{3,12}$/;<br />
<br />
/*********************************************************************************<br />
&nbsp;*&nbsp;FUNCTION:&nbsp;&nbsp;isBetween<br />
&nbsp;*&nbsp;PARAMETERS:&nbsp;&nbsp;val&nbsp;&nbsp;AS&nbsp;any&nbsp;value<br />
&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lo&nbsp;&nbsp;AS&nbsp;Lower&nbsp;limit&nbsp;to&nbsp;check<br />
&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hi&nbsp;&nbsp;AS&nbsp;Higher&nbsp;limit&nbsp;to&nbsp;check<br />
&nbsp;*&nbsp;CALLS:&nbsp;&nbsp;&nbsp;NOTHING<br />
&nbsp;*&nbsp;RETURNS:&nbsp;&nbsp;TRUE&nbsp;if&nbsp;val&nbsp;is&nbsp;between&nbsp;lo&nbsp;and&nbsp;hi&nbsp;both&nbsp;inclusive,&nbsp;otherwise&nbsp;false.<br />
&nbsp;**********************************************************************************/<br />
&nbsp;function&nbsp;isBetween&nbsp;(val,&nbsp;lo,&nbsp;hi)&nbsp;{<br />
&nbsp;&nbsp;if&nbsp;((val&nbsp;&lt;&nbsp;lo)&nbsp;||&nbsp;(val&nbsp;&gt;&nbsp;hi))&nbsp;{&nbsp;return(false);&nbsp;}<br />
&nbsp;&nbsp;else&nbsp;{&nbsp;return(true);&nbsp;}<br />
&nbsp;}<br />
&nbsp;/*********************************************************************************<br />
&nbsp;*&nbsp;FUNCTION:&nbsp;&nbsp;isDate&nbsp;checks&nbsp;a&nbsp;valid&nbsp;date<br />
&nbsp;*&nbsp;PARAMETERS:&nbsp;&nbsp;theStr&nbsp;&nbsp;AS&nbsp;String<br />
&nbsp;*&nbsp;CALLS:&nbsp;&nbsp;&nbsp;isBetween,&nbsp;isInt<br />
&nbsp;*&nbsp;RETURNS:&nbsp;&nbsp;TRUE&nbsp;if&nbsp;theStr&nbsp;is&nbsp;a&nbsp;valid&nbsp;date&nbsp;otherwise&nbsp;false.<br />
&nbsp;**********************************************************************************/<br />
&nbsp;function&nbsp;isDate&nbsp;(theStr)&nbsp;{<br />
&nbsp;&nbsp;var&nbsp;the1st&nbsp;=&nbsp;theStr.indexOf('-');<br />
&nbsp;&nbsp;var&nbsp;the2nd&nbsp;=&nbsp;theStr.lastIndexOf('-');<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;if&nbsp;(the1st&nbsp;==&nbsp;the2nd)&nbsp;{&nbsp;return(false);&nbsp;}<br />
&nbsp;&nbsp;else&nbsp;{<br />
&nbsp;&nbsp;&nbsp;var&nbsp;y&nbsp;=&nbsp;theStr.substring(0,the1st);<br />
&nbsp;&nbsp;&nbsp;var&nbsp;m&nbsp;=&nbsp;theStr.substring(the1st+1,the2nd);<br />
&nbsp;&nbsp;&nbsp;var&nbsp;d&nbsp;=&nbsp;theStr.substring(the2nd+1,theStr.length);<br />
&nbsp;&nbsp;&nbsp;var&nbsp;maxDays&nbsp;=&nbsp;31;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;if&nbsp;(isInt(m)==false&nbsp;||&nbsp;isInt(d)==false&nbsp;||&nbsp;isInt(y)==false)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;return(false);&nbsp;}<br />
&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(y.length&nbsp;&lt;&nbsp;4)&nbsp;{&nbsp;return(false);&nbsp;}<br />
&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(!isBetween&nbsp;(m,&nbsp;1,&nbsp;12))&nbsp;{&nbsp;return(false);&nbsp;}<br />
&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(m==4&nbsp;||&nbsp;m==6&nbsp;||&nbsp;m==9&nbsp;||&nbsp;m==11)&nbsp;maxDays&nbsp;=&nbsp;30;<br />
&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(m==2)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(y&nbsp;%&nbsp;4&nbsp;&gt;&nbsp;0)&nbsp;maxDays&nbsp;=&nbsp;28;<br />
&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(y&nbsp;%&nbsp;100&nbsp;==&nbsp;0&nbsp;&amp;&amp;&nbsp;y&nbsp;%&nbsp;400&nbsp;&gt;&nbsp;0)&nbsp;maxDays&nbsp;=&nbsp;28;<br />
&nbsp;&nbsp;&nbsp;else&nbsp;maxDays&nbsp;=&nbsp;29;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;if&nbsp;(isBetween(d,&nbsp;1,&nbsp;maxDays)&nbsp;==&nbsp;false)&nbsp;{&nbsp;return(false);&nbsp;}<br />
&nbsp;&nbsp;&nbsp;else&nbsp;{&nbsp;return(true);&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;/********************************************************************************<br />
&nbsp;*&nbsp;&nbsp;&nbsp;FUNCTION:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare&nbsp;Date!&nbsp;Which&nbsp;is&nbsp;the&nbsp;latest!<br />
&nbsp;*&nbsp;&nbsp;&nbsp;PARAMETERS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lessDate,moreDate&nbsp;AS&nbsp;String<br />
&nbsp;*&nbsp;&nbsp;&nbsp;CALLS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isDate,isBetween<br />
&nbsp;*&nbsp;&nbsp;&nbsp;RETURNS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRUE&nbsp;if&nbsp;lessDate&lt;moreDate<br />
&nbsp;*********************************************************************************/<br />
&nbsp;function&nbsp;isComdate&nbsp;(lessDate&nbsp;,&nbsp;moreDate)<br />
&nbsp;{<br />
&nbsp;&nbsp;if&nbsp;(!isDate(lessDate))&nbsp;{&nbsp;return(false);}<br />
&nbsp;&nbsp;if&nbsp;(!isDate(moreDate))&nbsp;{&nbsp;return(false);}<br />
&nbsp;&nbsp;var&nbsp;less1st&nbsp;=&nbsp;lessDate.indexOf('-');<br />
&nbsp;&nbsp;var&nbsp;less2nd&nbsp;=&nbsp;lessDate.lastIndexOf('-');<br />
&nbsp;&nbsp;var&nbsp;more1st&nbsp;=&nbsp;moreDate.indexOf('-');<br />
&nbsp;&nbsp;var&nbsp;more2nd&nbsp;=&nbsp;moreDate.lastIndexOf('-');<br />
&nbsp;&nbsp;var&nbsp;lessy&nbsp;=&nbsp;lessDate.substring(0,less1st);<br />
&nbsp;&nbsp;var&nbsp;lessm&nbsp;=&nbsp;lessDate.substring(less1st+1,less2nd);<br />
&nbsp;&nbsp;var&nbsp;lessd&nbsp;=&nbsp;lessDate.substring(less2nd+1,lessDate.length);<br />
&nbsp;&nbsp;var&nbsp;morey&nbsp;=&nbsp;moreDate.substring(0,more1st);<br />
&nbsp;&nbsp;var&nbsp;morem&nbsp;=&nbsp;moreDate.substring(more1st+1,more2nd);<br />
&nbsp;&nbsp;var&nbsp;mored&nbsp;=&nbsp;moreDate.substring(more2nd+1,moreDate.length);<br />
&nbsp;&nbsp;var&nbsp;Date1&nbsp;=&nbsp;new&nbsp;Date(lessy,lessm,lessd);&nbsp;<br />
&nbsp;&nbsp;var&nbsp;Date2&nbsp;=&nbsp;new&nbsp;Date(morey,morem,mored);&nbsp;<br />
&nbsp;&nbsp;if&nbsp;(Date1&gt;Date2)&nbsp;{&nbsp;return(false);}<br />
&nbsp;&nbsp;&nbsp;return(true);&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;}<br />
<br />
&nbsp;/*********************************************************************************<br />
&nbsp;*&nbsp;FUNCTION&nbsp;isEmpty&nbsp;checks&nbsp;if&nbsp;the&nbsp;parameter&nbsp;is&nbsp;empty&nbsp;&nbsp;or&nbsp;null<br />
&nbsp;*&nbsp;PARAMETER&nbsp;str&nbsp;&nbsp;AS&nbsp;String<br />
&nbsp;**********************************************************************************/<br />
&nbsp;function&nbsp;isEmpty&nbsp;(str)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((str==null)||(str.length==0))&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;return(false);<br />
&nbsp;}<br />
<br />
<br />
&nbsp;/*********************************************************************************<br />
&nbsp;*&nbsp;FUNCTION&nbsp;isAllEmpty&nbsp;checks&nbsp;if&nbsp;all&nbsp;the&nbsp;character&nbsp;is&nbsp;empty&nbsp;&nbsp;or&nbsp;null<br />
&nbsp;*&nbsp;PARAMETER&nbsp;str&nbsp;&nbsp;AS&nbsp;String<br />
&nbsp;**********************************************************************************/<br />
&nbsp;function&nbsp;isAllEmpty&nbsp;(str)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;if&nbsp;((str==null)||(str.length==0))&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;str.length;&nbsp;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(str.substring(i,i+1)!="&nbsp;")&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;return&nbsp;true<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
<br />
&nbsp;/*********************************************************************************<br />
&nbsp;*&nbsp;FUNCTION:&nbsp;&nbsp;isInt<br />
&nbsp;*&nbsp;PARAMETER:&nbsp;&nbsp;theStr&nbsp;AS&nbsp;String&nbsp;<br />
&nbsp;*&nbsp;RETURNS:&nbsp;&nbsp;TRUE&nbsp;if&nbsp;the&nbsp;passed&nbsp;parameter&nbsp;is&nbsp;an&nbsp;integer,&nbsp;otherwise&nbsp;FALSE<br />
&nbsp;*&nbsp;CALLS:&nbsp;&nbsp;&nbsp;isDigit<br />
&nbsp;**********************************************************************************/<br />
&nbsp;function&nbsp;isInt&nbsp;(theStr)&nbsp;{<br />
&nbsp;&nbsp;var&nbsp;flag&nbsp;=&nbsp;true;<br />
<br />
&nbsp;&nbsp;if&nbsp;(isEmpty(theStr))&nbsp;{&nbsp;flag=false;&nbsp;}<br />
&nbsp;&nbsp;else<br />
&nbsp;&nbsp;{&nbsp;for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;theStr.length;&nbsp;i++)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isDigit(theStr.substring(i,i+1))&nbsp;==&nbsp;false)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;false;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return(flag);<br />
&nbsp;}<br />
<br />
&nbsp;/*********************************************************************************<br />
&nbsp;*&nbsp;FUNCTION:&nbsp;&nbsp;isReal<br />
&nbsp;*&nbsp;PARAMETER:&nbsp;heStr&nbsp;AS&nbsp;String&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;decLen&nbsp;AS&nbsp;Integer&nbsp;(how&nbsp;many&nbsp;digits&nbsp;after&nbsp;period)<br />
&nbsp;*&nbsp;RETURNS:&nbsp;&nbsp;TRUE&nbsp;if&nbsp;theStr&nbsp;is&nbsp;a&nbsp;float,&nbsp;otherwise&nbsp;FALSE<br />
&nbsp;*&nbsp;CALLS:&nbsp;&nbsp;&nbsp;isInt<br />
&nbsp;**********************************************************************************/<br />
&nbsp;function&nbsp;isReal&nbsp;(theStr,&nbsp;decLen)&nbsp;{<br />
&nbsp;&nbsp;var&nbsp;dot1st&nbsp;=&nbsp;theStr.indexOf('.');<br />
&nbsp;&nbsp;var&nbsp;dot2nd&nbsp;=&nbsp;theStr.lastIndexOf('.');<br />
&nbsp;&nbsp;var&nbsp;OK&nbsp;=&nbsp;true;<br />
&nbsp;&nbsp;if&nbsp;(isEmpty(theStr))&nbsp;return&nbsp;false;<br />
<br />
&nbsp;&nbsp;if&nbsp;(dot1st&nbsp;==&nbsp;-1)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;if&nbsp;(!isInt(theStr))&nbsp;return(false);<br />
&nbsp;&nbsp;&nbsp;else&nbsp;return(true);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;else&nbsp;if&nbsp;(dot1st&nbsp;!=&nbsp;dot2nd)&nbsp;return&nbsp;(false);<br />
&nbsp;&nbsp;else&nbsp;if&nbsp;(dot1st==0)&nbsp;return&nbsp;(false);<br />
&nbsp;&nbsp;else&nbsp;{<br />
&nbsp;&nbsp;&nbsp;var&nbsp;intPart&nbsp;=&nbsp;theStr.substring(0,&nbsp;dot1st);<br />
&nbsp;&nbsp;&nbsp;var&nbsp;decPart&nbsp;=&nbsp;theStr.substring(dot2nd+1);<br />
<br />
&nbsp;&nbsp;&nbsp;if&nbsp;(decPart.length&nbsp;&gt;&nbsp;decLen)&nbsp;return(false);<br />
&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(!isInt(intPart)&nbsp;||&nbsp;!isInt(decPart))&nbsp;return&nbsp;(false);<br />
&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(isEmpty(decPart))&nbsp;return&nbsp;(false);<br />
&nbsp;&nbsp;&nbsp;else&nbsp;return(true);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
<br />
&nbsp;/*********************************************************************************<br />
&nbsp;*&nbsp;FUNCTION:&nbsp;&nbsp;isEmail<br />
&nbsp;*&nbsp;PARAMETER:&nbsp;&nbsp;String&nbsp;(Email&nbsp;Address)<br />
&nbsp;*&nbsp;RETURNS:&nbsp;&nbsp;TRUE&nbsp;if&nbsp;the&nbsp;String&nbsp;is&nbsp;a&nbsp;valid&nbsp;Email&nbsp;address<br />
&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FALSE&nbsp;if&nbsp;the&nbsp;passed&nbsp;string&nbsp;is&nbsp;not&nbsp;a&nbsp;valid&nbsp;Email&nbsp;Address<br />
&nbsp;*&nbsp;EMAIL&nbsp;FORMAT:&nbsp;AnyName@EmailServer&nbsp;e.g;&nbsp;webmaster@hotmail.com<br />
&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@&nbsp;sign&nbsp;can&nbsp;appear&nbsp;only&nbsp;once&nbsp;in&nbsp;the&nbsp;email&nbsp;address.<br />
&nbsp;*********************************************************************************/<br />
&nbsp;function&nbsp;isEmail&nbsp;(theStr)&nbsp;{<br />
&nbsp;&nbsp;var&nbsp;atIndex&nbsp;=&nbsp;theStr.indexOf('@');<br />
&nbsp;&nbsp;var&nbsp;dotIndex&nbsp;=&nbsp;theStr.indexOf('.',&nbsp;atIndex);<br />
&nbsp;&nbsp;var&nbsp;flag&nbsp;=&nbsp;true;<br />
&nbsp;&nbsp;theSub&nbsp;=&nbsp;theStr.substring(0,&nbsp;dotIndex+1)<br />
<br />
&nbsp;&nbsp;if&nbsp;((atIndex&nbsp;&lt;&nbsp;1)||(atIndex&nbsp;!=&nbsp;theStr.lastIndexOf('@'))||(dotIndex&nbsp;&lt;&nbsp;atIndex&nbsp;+&nbsp;2)||(theStr.length&nbsp;&lt;=&nbsp;theSub.length))&nbsp;<br />
&nbsp;&nbsp;{&nbsp;return(false);&nbsp;}<br />
&nbsp;&nbsp;else&nbsp;{&nbsp;return(true);&nbsp;}<br />
&nbsp;}<br />
&nbsp;/*********************************************************************************<br />
&nbsp;*&nbsp;FUNCTION:&nbsp;&nbsp;newWindow<br />
&nbsp;*&nbsp;PARAMETERS:&nbsp;&nbsp;doc&nbsp;&nbsp;&nbsp;-&gt;&nbsp;Document&nbsp;to&nbsp;open&nbsp;in&nbsp;the&nbsp;new&nbsp;window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hite&nbsp;&nbsp;-&gt;&nbsp;Height&nbsp;of&nbsp;the&nbsp;new&nbsp;window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wide&nbsp;&nbsp;-&gt;&nbsp;Width&nbsp;of&nbsp;the&nbsp;new&nbsp;window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bars&nbsp;-&gt;&nbsp;1-Scroll&nbsp;bars&nbsp;=&nbsp;YES&nbsp;0-Scroll&nbsp;Bars&nbsp;=&nbsp;NO<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resize&nbsp;&nbsp;-&gt;&nbsp;1-Resizable&nbsp;=&nbsp;YES&nbsp;0-Resizable&nbsp;=&nbsp;NO<br />
&nbsp;*&nbsp;CALLS:&nbsp;&nbsp;&nbsp;NONE<br />
&nbsp;*&nbsp;RETURNS:&nbsp;&nbsp;New&nbsp;window&nbsp;instance<br />
&nbsp;**********************************************************************************/<br />
&nbsp;function&nbsp;newWindow&nbsp;(doc,&nbsp;wide,&nbsp;hite,&nbsp;bars,&nbsp;resize)&nbsp;{<br />
&nbsp;&nbsp;var&nbsp;opt="toolbar=0,location=0,directories=0,status=0,menubar=0,";<br />
&nbsp;&nbsp;var&nbsp;l&nbsp;=&nbsp;Math.floor((screen.width-wide)/2);<br />
&nbsp;&nbsp;var&nbsp;t&nbsp;=&nbsp;Math.floor((screen.height-hite)/2);<br />
&nbsp;&nbsp;opt+=("scrollbars="+bars+",");<br />
&nbsp;&nbsp;opt+=("resizable="+resize+",");<br />
&nbsp;&nbsp;opt+=("width="+wide+",");<br />
&nbsp;&nbsp;opt+=("height="+hite+",");<br />
&nbsp;&nbsp;opt+=("top="+t+",");<br />
&nbsp;&nbsp;opt+=("left="+l);<br />
&nbsp;&nbsp;winHandle=window.open(doc,'',opt);<br />
&nbsp;&nbsp;return;<br />
&nbsp;}<br />
<br />
&nbsp;//校验数字：0-9数字的组合<br />
&nbsp;function&nbsp;isDigit(s)<br />
&nbsp;{<br />
&nbsp;&nbsp;var&nbsp;patrn=/^[0-9]{1,20}$/;<br />
&nbsp;&nbsp;if&nbsp;(!patrn.exec(s))&nbsp;return&nbsp;false<br />
&nbsp;&nbsp;return&nbsp;true<br />
&nbsp;}<br />
</div>
<img src ="http://www.blogjava.net/yukui/aggbug/161314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-18 00:13 <a href="http://www.blogjava.net/yukui/archive/2007/11/18/161314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网页表单的javascript集成验证方法举例</title><link>http://www.blogjava.net/yukui/archive/2007/11/18/161313.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 17 Nov 2007 16:12:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/18/161313.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/161313.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/18/161313.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/161313.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/161313.html</trackback:ping><description><![CDATA[<div class="content">&lt;script&nbsp;language="JavaScript"&gt;<br />
<br />
<br />
//设置焦点函数&nbsp;<br />
function&nbsp;focusElement(formName,&nbsp;elemName)&nbsp;{&nbsp;<br />
var&nbsp;elem&nbsp;=&nbsp;document.forms[formName].elements[elemName];&nbsp;<br />
elem.focus(&nbsp;);&nbsp;<br />
elem.select(&nbsp;);&nbsp;<br />
}&nbsp;<br />
<br />
<br />
//&nbsp;验证下拉框&nbsp;<br />
function&nbsp;isChosen(select){&nbsp;<br />
if&nbsp;(select.selectedIndex==0)&nbsp;{&nbsp;<br />
alert("请选择下拉单相应栏目.");&nbsp;<br />
focusElement(select.form.name,select.name);&nbsp;<br />
return&nbsp;false;&nbsp;<br />
}&nbsp;else&nbsp;{&nbsp;<br />
return&nbsp;true;&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
//不为空函数&nbsp;<br />
function&nbsp;isNotEmpty(elem)&nbsp;{&nbsp;<br />
var&nbsp;str=elem.value;&nbsp;<br />
if(str==null&nbsp;||&nbsp;str.length==0)&nbsp;{&nbsp;<br />
alert("此项不能为空");&nbsp;<br />
focusElement(elem.form.name,elem.name);&nbsp;<br />
return&nbsp;false;&nbsp;<br />
}&nbsp;else&nbsp;{&nbsp;<br />
return&nbsp;true;&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
<br />
<br />
//&nbsp;验证是否是数字&nbsp;<br />
function&nbsp;isNumber(elem)&nbsp;{&nbsp;<br />
var&nbsp;str=elem.value;&nbsp;<br />
var&nbsp;oneDecimal=false;&nbsp;<br />
var&nbsp;oneChar=0;&nbsp;<br />
str=str.toString(&nbsp;);&nbsp;<br />
for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;str.length;&nbsp;i++)&nbsp;{&nbsp;<br />
oneChar=str.charAt(i).charCodeAt(0);&nbsp;<br />
//&nbsp;-&nbsp;<br />
if&nbsp;(oneChar==45)&nbsp;{&nbsp;<br />
if&nbsp;(i==0)&nbsp;{&nbsp;<br />
continue;&nbsp;<br />
}&nbsp;else&nbsp;{&nbsp;<br />
alert("Only&nbsp;the&nbsp;first&nbsp;character&nbsp;may&nbsp;be&nbsp;a&nbsp;minus&nbsp;sign.");&nbsp;<br />
setTimeout("focusElement('"&nbsp;+&nbsp;elem.form.name&nbsp;+&nbsp;"',&nbsp;'"&nbsp;+&nbsp;elem.name&nbsp;+&nbsp;"')",&nbsp;0);&nbsp;<br />
return&nbsp;false;&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
//&nbsp;小数点&nbsp;<br />
if&nbsp;(oneChar==46)&nbsp;{&nbsp;<br />
if&nbsp;(!oneDecimal)&nbsp;{&nbsp;<br />
oneDecimal=true;&nbsp;<br />
continue;&nbsp;<br />
}&nbsp;else&nbsp;{&nbsp;<br />
alert("输入的数字只允许有一个小数点.");&nbsp;<br />
setTimeout("focusElement('"&nbsp;+&nbsp;elem.form.name&nbsp;+&nbsp;"',&nbsp;'"&nbsp;+&nbsp;elem.name&nbsp;+&nbsp;"')",&nbsp;0);&nbsp;<br />
return&nbsp;false;&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
//&nbsp;数字只能在0和9之间&nbsp;<br />
if&nbsp;(oneChar&lt;48&nbsp;||&nbsp;oneChar&nbsp;&gt;&nbsp;57)&nbsp;{&nbsp;<br />
alert("此项只能输入数字.");&nbsp;<br />
setTimeout("focusElement('"&nbsp;+&nbsp;elem.form.name&nbsp;+&nbsp;"',&nbsp;'"&nbsp;+&nbsp;elem.name&nbsp;+&nbsp;"')",&nbsp;0);&nbsp;<br />
return&nbsp;false;&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
return&nbsp;true;&nbsp;<br />
}&nbsp;<br />
//&nbsp;验证是否是数字电话&nbsp;<br />
function&nbsp;istel(elem)&nbsp;{&nbsp;<br />
var&nbsp;str=elem.value;&nbsp;<br />
var&nbsp;oneDecimal=false;&nbsp;<br />
var&nbsp;oneChar=0;&nbsp;<br />
<br />
<br />
str=str.toString(&nbsp;);&nbsp;<br />
for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;str.length;&nbsp;i++)&nbsp;{&nbsp;<br />
oneChar=str.charAt(i).charCodeAt(0);&nbsp;<br />
if(oneChar==45){continue;}&nbsp;<br />
if(oneChar&lt;48&nbsp;||&nbsp;oneChar&nbsp;&gt;&nbsp;57)&nbsp;{&nbsp;<br />
alert("此项只能输入数字和'-'号.");&nbsp;<br />
setTimeout("focusElement('"&nbsp;+&nbsp;elem.form.name&nbsp;+&nbsp;"',&nbsp;'"&nbsp;+&nbsp;elem.name&nbsp;+&nbsp;"')",&nbsp;0);&nbsp;<br />
return&nbsp;false;&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
return&nbsp;true;&nbsp;<br />
}&nbsp;<br />
//验证输入数据的长度&nbsp;<br />
//邮编&nbsp;<br />
function&nbsp;isLenMatch(elem,lengthNum)&nbsp;{&nbsp;<br />
var&nbsp;str=elem.value;&nbsp;<br />
if&nbsp;(str.length&nbsp;!=&nbsp;lengthNum)&nbsp;{&nbsp;<br />
alert("此项内容长度只能为"+lengthNum+"位.");&nbsp;<br />
setTimeout("focusElement('"&nbsp;+&nbsp;elem.form.name&nbsp;+&nbsp;"',&nbsp;'"&nbsp;+&nbsp;elem.name&nbsp;+&nbsp;"')",&nbsp;0);&nbsp;<br />
return&nbsp;false;&nbsp;<br />
}&nbsp;else&nbsp;{&nbsp;<br />
return&nbsp;true;&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
<br />
<br />
//邮件地址验证&nbsp;<br />
function&nbsp;isEMailAddr(elem)&nbsp;{&nbsp;<br />
var&nbsp;str&nbsp;=&nbsp;elem.value;&nbsp;<br />
var&nbsp;re&nbsp;=&nbsp;/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;&nbsp;<br />
if&nbsp;(!str.match(re))&nbsp;{&nbsp;<br />
alert("您输入的不是有效的e-mail地址.");&nbsp;<br />
setTimeout("focusElement('"&nbsp;+&nbsp;elem.form.name&nbsp;+&nbsp;"',&nbsp;'"&nbsp;+&nbsp;elem.name&nbsp;+&nbsp;"')",&nbsp;0);&nbsp;<br />
return&nbsp;false;&nbsp;<br />
}&nbsp;else&nbsp;{&nbsp;<br />
return&nbsp;true;&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
//单选按钮验证&nbsp;<br />
function&nbsp;isValidRadio(radio)&nbsp;{&nbsp;<br />
var&nbsp;valid=false;&nbsp;<br />
for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;radio.length;&nbsp;i++)&nbsp;{&nbsp;<br />
if&nbsp;(radio.checked)&nbsp;{&nbsp;<br />
return&nbsp;true;&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
alert("单选按钮未选中.");&nbsp;<br />
radio[0].focus();&nbsp;<br />
//setTimeout("focusElement('"&nbsp;+&nbsp;radio[0].form.name&nbsp;+&nbsp;"',&nbsp;'"&nbsp;+&nbsp;radio[0].name&nbsp;+&nbsp;"')",&nbsp;0);&nbsp;<br />
focusElement(radio[0].form.name,radio[0].name);&nbsp;<br />
return&nbsp;false;&nbsp;<br />
}&nbsp;<br />
<br />
<br />
&lt;/script&gt;<br />
<br />
<br />
&lt;script&nbsp;language="JavaScript"&gt;&nbsp;<br />
function&nbsp;validateForm(form)&nbsp;{&nbsp;<br />
if&nbsp;(isNotEmpty(form.name1)&nbsp;&amp;&amp;&nbsp;isNotEmpty(form.name2))&nbsp;{;}else{return&nbsp;false;&nbsp;<br />
}&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
&lt;title&gt;JS验证程序Sample&lt;/title&gt;&lt;/head&gt;&nbsp;<br />
<br />
<br />
&lt;body&gt;&nbsp;<br />
&lt;form&nbsp;method="GET"&nbsp;action="index.htm"&nbsp;name="sampleForm"&nbsp;onsubmit="return&nbsp;validateForm(this)"&gt;&nbsp;<br />
&lt;p&gt;姓名:&nbsp;<br />
&lt;input&nbsp;type="text"&nbsp;size="30"&nbsp;name="name1"&nbsp;id="name1"&nbsp;/&gt;&nbsp;<br />
&lt;/body&gt;&nbsp;<br />
&lt;/html&gt;&nbsp;<br />
<br />
<br />
表单验证&nbsp;很有用&nbsp;<br />
长度限制<br />
&lt;script&gt;<br />
function&nbsp;test()&nbsp;<br />
{<br />
if(document.a.b.value.length&gt;50)<br />
{<br />
alert("不能超过50个字符！");<br />
document.a.b.focus();<br />
return&nbsp;false;<br />
}<br />
}<br />
&lt;/script&gt;<br />
&lt;form&nbsp;name=a&nbsp;onsubmit="return&nbsp;test()"&gt;<br />
&lt;textarea&nbsp;name="b"&nbsp;cols="40"&nbsp;wrap="VIRTUAL"&nbsp;rows="6"&gt;&lt;/textarea&gt;<br />
&lt;input&nbsp;type="submit"&nbsp;name="Submit"&nbsp;value="check"&gt;<br />
&lt;/form&gt;<br />
<br />
2&nbsp;只能是汉字&nbsp;<br />
&lt;input&nbsp;onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"&gt;<br />
<br />
3&nbsp;只能是英文<br />
&lt;script&nbsp;language=javascript&gt;<br />
function&nbsp;onlyEng()<br />
{<br />
if(!(event.keyCode&gt;=65&amp;&amp;event.keyCode&lt;=90))<br />
event.returnvalue=false;<br />
}<br />
&lt;/script&gt;<br />
<br />
&lt;input&nbsp;onkeydown="onlyEng();"&gt;<br />
<br />
4&nbsp;只能是数字<br />
&lt;script&nbsp;language=javascript&gt;<br />
function&nbsp;onlyNum()<br />
{<br />
if(!((event.keyCode&gt;=48&amp;&amp;event.keyCode&lt;=57)||(event.keyCode&gt;=96&amp;&amp;event.keyCode&lt;=105)))<br />
//考虑小键盘上的数字键<br />
event.returnvalue=false;<br />
}<br />
&lt;/script&gt;<br />
<br />
&lt;input&nbsp;onkeydown="onlyNum();"&gt;<br />
<br />
5&nbsp;只能是英文字符和数字<br />
&lt;input&nbsp;onkeyup="value=value.replace(/[\W]/g,'')&nbsp;"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"&gt;<br />
<br />
6&nbsp;验证油箱格式<br />
&lt;SCRIPT&nbsp;LANGUAGE=javascript&nbsp;RUNAT=Server&gt;<br />
function&nbsp;isEmail(strEmail)&nbsp;{<br />
if&nbsp;(strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)&nbsp;!=&nbsp;-1)<br />
return&nbsp;true;<br />
else<br />
alert("oh");<br />
}<br />
&lt;/SCRIPT&gt;<br />
&lt;input&nbsp;type=text&nbsp;onblur=isEmail(this.value)&gt;<br />
<br />
7&nbsp;屏蔽关键字(这里屏蔽sex和****)<br />
&lt;script&nbsp;language="javascript1.2"&gt;<br />
function&nbsp;test()&nbsp;{<br />
if((a.b.value.indexOf&nbsp;("sex")&nbsp;==&nbsp;0)||(a.b.value.indexOf&nbsp;("****")&nbsp;==&nbsp;0)){<br />
alert("");<br />
a.b.focus();<br />
return&nbsp;false;}<br />
}<br />
&lt;/script&gt;<br />
&lt;form&nbsp;name=a&nbsp;onsubmit="return&nbsp;test()"&gt;<br />
&lt;input&nbsp;type=text&nbsp;name=b&gt;<br />
&lt;input&nbsp;type="submit"&nbsp;name="Submit"&nbsp;value="check"&gt;<br />
&lt;/form&gt;<br />
<br />
8&nbsp;两次输入密码是否相同<br />
&lt;FORM&nbsp;METHOD=POST&nbsp;ACTION=""&gt;<br />
&lt;input&nbsp;type="password"&nbsp;id="input1"&gt;<br />
&lt;input&nbsp;type="password"&nbsp;id="input2"&gt;<br />
&lt;input&nbsp;type="button"&nbsp;value="test"&nbsp;onclick="check()"&gt;<br />
&lt;/FORM&gt;<br />
&lt;script&gt;<br />
function&nbsp;check()<br />
{&nbsp;<br />
with(document.all){<br />
if(input1.value!=input2.value)<br />
{<br />
alert("false")<br />
input1.value&nbsp;=&nbsp;"";<br />
input2.value&nbsp;=&nbsp;"";<br />
}<br />
else&nbsp;document.forms[0].submit();<br />
}<br />
}<br />
&lt;/script&gt;<br />
&nbsp;<br />
&nbsp;<br />
网页表单的javascript集成验证方法举例&nbsp;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;原理：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表单验证无非是要对要收集每一条信息进行验证，也就是要写一个名为<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frmValid的javascript函数，在其中执行如下操作：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(待验证条目&nbsp;不符合条件)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('出错了!');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;待验证条目.focus();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;all&nbsp;right<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当然，&lt;form&nbsp;...&nbsp;onsubmit='return&nbsp;frmValid()'&gt;必须包含在<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTML代码中。想想看，待验证条目越多代码越长，也就越容易出错。<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;&nbsp;elemArray&nbsp;=&nbsp;new&nbsp;Array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'待验证条目名',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'验证条件',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'出错提示');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;那么验证代码将大大精简，我们只要如下使用循环就可实现上述冗长<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;代码时下的功能，这里我们用with和eval语句构造判断条件：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with(eval('obj.'+elems[0]))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(eval(elems[1]))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.alert(elems[2]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focus();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;elems&nbsp;=&nbsp;new&nbsp;Array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Arrary(&nbsp;...),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;elems.length;&nbsp;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;上面的验证语句<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;实战：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、使用如下例子编写验证脚本：<br />
&lt;SCRIPT&nbsp;LANGUAGE="javascript"&nbsp;type="text/javascript"&gt;<br />
//<br />
//&nbsp;Function:&nbsp;frmValid<br />
//&nbsp;------------------<br />
//&nbsp;Author&nbsp;&nbsp;&nbsp;&nbsp;hongz<br />
//&nbsp;Usage:&nbsp;&nbsp;&nbsp;&nbsp;YourForm.onsbumit="return&nbsp;frmValid(this)".<br />
//&nbsp;Purpose:&nbsp;&nbsp;To&nbsp;validate&nbsp;form&nbsp;elements&nbsp;in&nbsp;an&nbsp;integrated&nbsp;way.<br />
//<br />
function&nbsp;frmValid(obj)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Elements&nbsp;array,&nbsp;initialization&nbsp;for&nbsp;validation<br />
&nbsp;&nbsp;&nbsp;&nbsp;elems&nbsp;=&nbsp;new&nbsp;Array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'username',&nbsp;&nbsp;//&nbsp;name&nbsp;of&nbsp;elements&nbsp;to&nbsp;be&nbsp;validated<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'value.length&lt;1&nbsp;||&nbsp;value.search(/[^a-zA-z0-9_]/)&gt;=0',&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;validation&nbsp;condition<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'无效的用户名:只能输入6-20位字母、数字、下划线的组合!'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;prompt&nbsp;on&nbsp;failure<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'password',&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'value.length&lt;5&nbsp;||&nbsp;value.search(/[^a-zA-z0-9_]/)&gt;=0',&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'无效的密码:只能输入6-20位字母、数字、下划线的组合!'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'email',&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'isMail(value)==false',&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Email是您在网上的重要联络工具,请务必正确填写!')<br />
&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Validate&nbsp;here,&nbsp;using&nbsp;eval&nbsp;statement.<br />
&nbsp;&nbsp;&nbsp;&nbsp;for(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;elems.length;&nbsp;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with(eval('obj.'+elems[0]))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(eval(elems[1]))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.alert(elems[2]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focus();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br />
}<br />
//--&gt;<br />
&lt;/SCRIPT&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、为form添加onsubmit属性：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;form&nbsp;...&nbsp;onsubmit='return&nbsp;frmValid(this)'&gt;<br />
<br />
&nbsp;<br />
Javascript客户端验证代码&nbsp;<br />
&nbsp;<br />
代码:&nbsp;<br />
<br />
--------------------------------------------------------------------------------<br />
&nbsp;<br />
&lt;SCRIPT&nbsp;language=JavaScript&gt;&lt;!--&nbsp;<br />
function&nbsp;passwordt(theForm){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_name.value&nbsp;==&nbsp;""){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("登录用户名不能为空，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_name.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_pass.value&nbsp;==&nbsp;""){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("登录密码不能为空，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_pass.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_pass.value.length&nbsp;&lt;&nbsp;3){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("登录密码不能少于3个字符，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_pass.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.re_password.value&nbsp;==&nbsp;""){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("确认新密码不能为空，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.re_password.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.re_password.value.length&nbsp;&lt;&nbsp;3){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("确认新密码不能少于3个字符，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.re_password.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_pass.value&nbsp;!=&nbsp;theForm.re_password.value){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("新密码和确认新密码不同，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_pass.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_namec.value=="")&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert&nbsp;('请填写姓名！');&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_namec.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((!theForm.user_sex(0).checked)&amp;&amp;(!theForm.user_sex(1).checked)){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert&nbsp;('请选择用户性别！');&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_sex(0).focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((theForm.user_birth_year.value&nbsp;==&nbsp;"")||(fucCheckNUM(theForm.user_birth_year.value)==0)||(theForm.user_birth_year.value.length!=4)||((theForm.user_birth_year.value&nbsp;&lt;1900)&nbsp;||&nbsp;(theForm.user_birth_year.value&nbsp;&gt;2002&nbsp;)&nbsp;))&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("请填写正确的出生年份！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_birth_year.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_birth_month.value=="0"){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("请选择出生月份！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_birth_month.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_birth_day.value=="0"){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("请选择出生日期！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_birth_day.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((theForm.user_birth_month.value=="2")&nbsp;&amp;&amp;&nbsp;(theForm.user_birth_day.value&gt;29)){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("请选择正确的出生日期！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_birth_month.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(((theForm.user_birth_month.value=="4")||(theForm.user_birth_month.value=="6")||(theForm.user_birth_month.value=="9")||(theForm.user_birth_month.value=="11"))&nbsp;&amp;&amp;&nbsp;(theForm.user_birth_day.value==31)){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("请选择正确的出生日期！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_birth_month.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_country.value=="")&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("请选择所在国家！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_country.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_city.value&nbsp;=="")&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("请选择城市！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_city.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_adds.value&nbsp;==&nbsp;""&nbsp;){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("家庭住址不能为空，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_adds.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_postcode.value&nbsp;==&nbsp;""&nbsp;)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("邮政编码不能为空，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_postcode.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_tel.value&nbsp;==&nbsp;""&nbsp;)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("邮政编码不能为空，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_tel.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(theForm.user_mail.value=="")&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("请填写EMAIL！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_mail.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((theForm.user_mail.value!="")&nbsp;&amp;&amp;&nbsp;(chkemail(theForm.user_mail.value)==0))&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("EMAIL格式不对，请重新填写！");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theForm.user_mail.focus();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(false);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(true);&nbsp;<br />
}&nbsp;<br />
<br />
function&nbsp;chkemail(a){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i=a.length;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;temp&nbsp;=&nbsp;a.indexOf('@');&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tempd&nbsp;=&nbsp;a.indexOf('.');&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(temp&nbsp;&gt;&nbsp;1)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((i-temp)&nbsp;&gt;&nbsp;3){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((i-tempd)&gt;0){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;<br />
}&nbsp;<br />
<br />
function&nbsp;fucCheckNUM(NUM)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i,j,strTemp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;strTemp="0123456789";&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;NUM.length==&nbsp;0)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt;NUM.length;i++)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=strTemp.indexOf(NUM.charAt(i));&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(j==-1)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1;&nbsp;<br />
}&nbsp;<br />
<br />
function&nbsp;chg_nation(nation){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(nation!='cn'){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ini_province(nation);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.user_form.selProvince.disabled&nbsp;=&nbsp;true;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.user_form.selProvince.value="国外城市";&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.user_form.selCity.value="国外城市";&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}else{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ini_province(nation);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.user_form.selProvince.disabled&nbsp;=&nbsp;false;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.user_form.selProvince.value="0";&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.user_form.selCity.value="";&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}&nbsp;<br />
<br />
function&nbsp;chg_province(province){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;obj=document.getElementById("list_city");&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;obj.src="list_city.php?province="+province;&nbsp;<br />
}&nbsp;<br />
<br />
//--&gt;&nbsp;<br />
&lt;/SCRIPT&gt;&nbsp;<br />
</div>
 <img src ="http://www.blogjava.net/yukui/aggbug/161313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-18 00:12 <a href="http://www.blogjava.net/yukui/archive/2007/11/18/161313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WINDOWS2000进程详解</title><link>http://www.blogjava.net/yukui/archive/2007/11/18/161311.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 17 Nov 2007 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/18/161311.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/161311.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/18/161311.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/161311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/161311.html</trackback:ping><description><![CDATA[<div class="content">&nbsp;&nbsp;了解WIN2000的进程,对于病毒防护和恶意网站的防护有很重要的意义,通常我们都可以在中毒机器或被恶意网站更改设置的机器里找到一些蛛丝马迹,这给我们杀毒提供了一些方便,下面对WIN2000的进程作一个详细解释:<br />
<br />
win2000进程详解<br />
最基本的系统进程（也就是说，这些进程是系统运行的基本条件，有了这些进程，系统就能正常运行）:&nbsp;<br />
smss.exe&nbsp;Session&nbsp;Manager&nbsp;<br />
csrss.exe&nbsp;子系统服务器进程&nbsp;<br />
winlogon.exe&nbsp;管理用户登录&nbsp;<br />
services.exe&nbsp;包含很多系统服务&nbsp;<br />
lsass.exe&nbsp;管理&nbsp;IP&nbsp;安全策略以及启动&nbsp;ISAKMP/Oakley&nbsp;(IKE)&nbsp;和&nbsp;IP&nbsp;安全驱动程序。(系统服务)&nbsp;<br />
产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)&nbsp;<br />
svchost.exe&nbsp;包含很多系统服务&nbsp;<br />
svchost.exe&nbsp;<br />
SPOOLSV.EXE&nbsp;将文件加载到内存中以便迟后打印。(系统服务)&nbsp;<br />
explorer.exe&nbsp;资源管理器&nbsp;<br />
internat.exe&nbsp;托盘区的拼音图标&nbsp;<br />
附加的系统进程（这些进程不是必要的，你可以根据需要通过服务管理器来增加或减少）:&nbsp;<br />
mstask.exe&nbsp;允许程序在指定时间运行。(系统服务)&nbsp;<br />
regsvc.exe&nbsp;允许远程注册表操作。(系统服务)&nbsp;<br />
winmgmt.exe&nbsp;提供系统管理信息(系统服务)。&nbsp;<br />
inetinfo.exe&nbsp;通过&nbsp;Internet&nbsp;信息服务的管理单元提供&nbsp;FTP&nbsp;连接和管理。(系统服务)&nbsp;<br />
tlntsvr.exe&nbsp;允许远程用户登录到系统并且使用命令行运行控制台程序。(系统服务)&nbsp;<br />
允许通过&nbsp;Internet&nbsp;信息服务的管理单元管理&nbsp;Web&nbsp;和&nbsp;FTP&nbsp;服务。(系统服务)&nbsp;<br />
tftpd.exe&nbsp;实现&nbsp;TFTP&nbsp;Internet&nbsp;标准。该标准不要求用户名和密码。远程安装服务的一部分。(系统服务)&nbsp;<br />
termsrv.exe&nbsp;提供多会话环境允许客户端设备访问虚拟的&nbsp;Windows&nbsp;2000&nbsp;Professional&nbsp;桌面会话以及运行在服务器上的基&nbsp;<br />
于&nbsp;Windows&nbsp;的程序。(系统服务)&nbsp;<br />
dns.exe&nbsp;应答对域名系统(DNS)名称的查询和更新请求。(系统服务)&nbsp;<br />
以下服务很少会用到，上面的服务都对安全有害，如果不是必要的应该关掉&nbsp;<br />
tcpsvcs.exe&nbsp;提供在&nbsp;PXE&nbsp;可远程启动客户计算机上远程安装&nbsp;Windows&nbsp;2000&nbsp;Professional&nbsp;的能力。(系统服务)&nbsp;<br />
支持以下&nbsp;TCP/IP&nbsp;服务：Character&nbsp;Generator,&nbsp;Daytime,&nbsp;Discard,&nbsp;Echo,&nbsp;以及&nbsp;Quote&nbsp;of&nbsp;the&nbsp;Day。(系统服务)&nbsp;<br />
ismserv.exe&nbsp;允许在&nbsp;Windows&nbsp;Advanced&nbsp;Server&nbsp;站点间发送和接收消息。(系统服务)&nbsp;<br />
ups.exe&nbsp;管理连接到计算机的不间断电源(UPS)。(系统服务)&nbsp;<br />
wins.exe&nbsp;为注册和解析&nbsp;NetBIOS&nbsp;型名称的&nbsp;TCP/IP&nbsp;客户提供&nbsp;NetBIOS&nbsp;名称服务。(系统服务)&nbsp;<br />
llssrv.exe&nbsp;License&nbsp;Logging&nbsp;Service(system&nbsp;service)&nbsp;<br />
ntfrs.exe&nbsp;在多个服务器间维护文件目录内容的文件同步。(系统服务)&nbsp;<br />
RsSub.exe&nbsp;控制用来远程储存数据的媒体。(系统服务)&nbsp;<br />
locator.exe&nbsp;管理&nbsp;RPC&nbsp;名称服务数据库。(系统服务)&nbsp;<br />
lserver.exe&nbsp;注册客户端许可证。(系统服务)&nbsp;<br />
dfssvc.exe&nbsp;管理分布于局域网或广域网的逻辑卷。(系统服务)&nbsp;<br />
clipsrv.exe&nbsp;支持&#8220;剪贴簿查看器&#8221;，以便可以从远程剪贴簿查阅剪贴页面。(系统服务)&nbsp;<br />
msdtc.exe&nbsp;并列事务，是分布于两个以上的数据库，消息队列，文件系统，或其它事务保护资源管理器。(系统服务)&nbsp;<br />
faxsvc.exe&nbsp;帮助您发送和接收传真。(系统服务)&nbsp;<br />
cisvc.exe&nbsp;Indexing&nbsp;Service(system&nbsp;service)&nbsp;<br />
dmadmin.exe&nbsp;磁盘管理请求的系统管理服务。(系统服务)&nbsp;<br />
mnmsrvc.exe&nbsp;允许有权限的用户使用&nbsp;NetMeeting&nbsp;远程访问&nbsp;Windows&nbsp;桌面。(系统服务)&nbsp;<br />
netdde.exe&nbsp;提供动态数据交换&nbsp;(DDE)&nbsp;的网络传输和安全特性。(系统服务)&nbsp;<br />
smlogsvc.exe&nbsp;配置性能日志和警报。(系统服务)&nbsp;<br />
rsvp.exe&nbsp;为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制安装功能。(系统服务)&nbsp;<br />
RsEng.exe&nbsp;协调用来储存不常用数据的服务和管理工具。(系统服务)&nbsp;<br />
RsFsa.exe&nbsp;管理远程储存的文件的操作。(系统服务)&nbsp;<br />
grovel.exe&nbsp;扫描零备份存储(SIS)卷上的重复文件，并且将重复文件指向一个数据存储点，以节省磁盘空间。(系统服务)&nbsp;<br />
SCardSvr.exe&nbsp;对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。(系统服务)&nbsp;<br />
snmp.exe&nbsp;包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。(系统服务)&nbsp;<br />
snmptrap.exe&nbsp;接收由本地或远程&nbsp;SNMP&nbsp;代理程序产生的陷阱消息，然后将消息传递到运行在这台计算机上&nbsp;SNMP&nbsp;管理程序&nbsp;<br />
。(系统服务)&nbsp;<br />
UtilMan.exe&nbsp;从一个窗口中启动和配置辅助工具。(系统服务)&nbsp;<br />
msiexec.exe&nbsp;依据&nbsp;.MSI&nbsp;文件中包含的命令来安装、修复以及删除软件。(系统服务)&nbsp;<br />
<br />
详细说明：<br />
<br />
win2k运行进程<br />
Svchost.exe&nbsp;<br />
Svchost.exe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhost.exe文件定位&nbsp;<br />
在系统的%systemroot%\system32文件夹下。在启动的时候，Svchost.exe检查注册表中的位置来构建需要&nbsp;<br />
加载的服务列表。这就会使多个Svchost.exe在同一时间运行。每个Svchost.exe的回话期间都包含一组服务，&nbsp;<br />
以至于单独的服务必须依靠Svchost.exe怎样和在那里启动。这样就更加容易控制和查找错误。&nbsp;<br />
Svchost.exe&nbsp;组是用下面的注册表值来识别。&nbsp;<br />
<br />
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows&nbsp;NT\CurrentVersion\Svchost&nbsp;<br />
每个在这个键下的值代表一个独立的Svchost组，并且当你正在看活动的进程时，它显示作为一个单独的&nbsp;<br />
例子。每个键值都是REG_MULTI_SZ类型的值而且包括运行在Svchost组内的服务。每个Svchost组都包含一个&nbsp;<br />
或多个从注册表值中选取的服务名，这个服务的参数值包含了一个ServiceDLL值。&nbsp;<br />
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service&nbsp;<br />
<br />
更多的信息&nbsp;<br />
为了能看到正在运行在Svchost列表中的服务。&nbsp;<br />
开始－运行－敲入cmd&nbsp;<br />
然后在敲入&nbsp;tlist&nbsp;-s&nbsp;（tlist&nbsp;应该是win2k工具箱里的冬冬）&nbsp;<br />
Tlist&nbsp;显示一个活动进程的列表。开关&nbsp;-s&nbsp;显示在每个进程中的活动服务列表。如果想知道更多的关于&nbsp;<br />
进程的信息，可以敲&nbsp;tlist&nbsp;pid。&nbsp;<br />
<br />
Tlist&nbsp;显示Svchost.exe运行的两个例子。&nbsp;<br />
0&nbsp;System&nbsp;Process&nbsp;<br />
8&nbsp;System&nbsp;<br />
132&nbsp;smss.exe&nbsp;<br />
160&nbsp;csrss.exe&nbsp;Title:&nbsp;<br />
180&nbsp;winlogon.exe&nbsp;Title:&nbsp;NetDDE&nbsp;Agent&nbsp;<br />
208services.exe&nbsp;<br />
Svcs:&nbsp;AppMgmt,Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,LanmanWorkstation,LmHosts,Messenger,PlugPlay,ProtectedStorage,seclogon,TrkWks,W32Time,Wmi&nbsp;<br />
220&nbsp;lsass.exe&nbsp;Svcs:&nbsp;Netlogon,PolicyAgent,SamSs&nbsp;<br />
404&nbsp;svchost.exe&nbsp;Svcs:&nbsp;RpcSs&nbsp;<br />
452&nbsp;s&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;作者：&nbsp;理科老师&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2003-12-21&nbsp;12:42&nbsp;　&nbsp;回复此发言&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
--------------------------------------------------------------------------------<br />
&nbsp;<br />
2&nbsp;&nbsp;续：WINDOWS2000进程详解&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
452&nbsp;spoolsv.exe&nbsp;Svcs:&nbsp;Spooler&nbsp;<br />
544&nbsp;cisvc.exe&nbsp;Svcs:&nbsp;cisvc&nbsp;<br />
556&nbsp;svchost.exe&nbsp;Svcs:&nbsp;EventSystem,Netman,NtmsSvc,RasMan,SENS,TapiSrv&nbsp;<br />
580&nbsp;regsvc.exe&nbsp;Svcs:&nbsp;RemoteRegistry&nbsp;<br />
596&nbsp;mstask.exe&nbsp;Svcs:&nbsp;Schedule&nbsp;<br />
660&nbsp;snmp.exe&nbsp;Svcs:&nbsp;SNMP&nbsp;<br />
728&nbsp;winmgmt.exe&nbsp;Svcs:&nbsp;WinMgmt&nbsp;<br />
852&nbsp;cidaemon.exe&nbsp;Title:&nbsp;OleMainThreadWndName&nbsp;<br />
812&nbsp;explorer.exe&nbsp;Title:&nbsp;Program&nbsp;Manager&nbsp;<br />
1032&nbsp;OSA.EXE&nbsp;Title:&nbsp;Reminder&nbsp;<br />
1300&nbsp;cmd.exe&nbsp;Title:&nbsp;D:\WINNT5\System32\cmd.exe&nbsp;-&nbsp;tlist&nbsp;-s&nbsp;<br />
1080&nbsp;MAPISP32.EXE&nbsp;Title:&nbsp;WMS&nbsp;Idle&nbsp;<br />
1264&nbsp;rundll32.exe&nbsp;Title:&nbsp;<br />
1000&nbsp;mmc.exe&nbsp;Title:&nbsp;Device&nbsp;Manager&nbsp;<br />
1144&nbsp;tlist.exe&nbsp;<br />
在这个例子中注册表设置了两个组。&nbsp;<br />
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows&nbsp;NT\CurrentVersion\Svchost:&nbsp;<br />
netsvcs:&nbsp;Reg_Multi_SZ:&nbsp;EventSystem&nbsp;Ias&nbsp;Iprip&nbsp;Irmon&nbsp;Netman&nbsp;Nwsapagent&nbsp;Rasauto&nbsp;Rasman&nbsp;Remoteaccess&nbsp;SENS&nbsp;Sharedaccess&nbsp;Tapisrv&nbsp;Ntmssvc&nbsp;<br />
rpcss&nbsp;:Reg_Multi_SZ:&nbsp;RpcSs&nbsp;<br />
<br />
smss.exe&nbsp;<br />
<br />
csrss.exe&nbsp;<br />
<br />
这个是用户模式Win32子系统的一部分。csrss代表客户/服务器运行子系统而且是一个基本的子系统&nbsp;<br />
必须一直运行。csrss&nbsp;负责控制windows，创建或者删除线程和一些16位的虚拟MS-DOS环境。&nbsp;<br />
<br />
explorer.exe&nbsp;<br />
这是一个用户的shell（我实在是不知道怎么翻译shell），在我们看起来就像任务条，桌面等等。这个&nbsp;<br />
进程并不是像你想象的那样是作为一个重要的进程运行在windows中，你可以从任务管理器中停掉它，或者重新启动。&nbsp;<br />
通常不会对系统产生什么负面影响。&nbsp;<br />
<br />
internat.exe&nbsp;<br />
<br />
这个进程是可以从任务管理器中关掉的。&nbsp;<br />
internat.exe在启动的时候开始运行。它加载由用户指定的不同的输入点。输入点是从注册表的这个位置&nbsp;<br />
HKEY_USERS\.DEFAULT\Keyboard&nbsp;Layout\Preload&nbsp;加载内容的。&nbsp;<br />
internat.exe&nbsp;加载&#8220;EN&#8221;图标进入系统的图标区，允许使用者可以很容易的转换不同的输入点。&nbsp;<br />
当进程停掉的时候，图标就会消失，但是输入点仍然可以通过控制面板来改变。&nbsp;<br />
<br />
lsass.exe&nbsp;<br />
这个进程是不可以从任务管理器中关掉的。&nbsp;<br />
这是一个本地的安全授权服务，并且它会为使用winlogon服务的授权用户生成一个进程。这个进程是&nbsp;<br />
通过使用授权的包，例如默认的msgina.dll来执行的。如果授权是成功的，lsass就会产生用户的进入&nbsp;<br />
令牌，令牌别使用启动初始的shell。其他的由用户初始化的进程会继承这个令牌的。&nbsp;<br />
<br />
mstask.exe&nbsp;<br />
这个进程是不可以从任务管理器中关掉的。&nbsp;<br />
这是一个任务调度服务，负责用户事先决定在某一时间运行的任务的运行。&nbsp;<br />
<br />
smss.exe&nbsp;<br />
这个进程是不可以从任务管理器中关掉的。&nbsp;<br />
这是一个会话管理子系统，负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的，&nbsp;<br />
包括已经正在运行的Winlogon，Win32（Csrss.exe）线程和设定的系统变量作出反映。在它启动这些&nbsp;<br />
进程后，它等待Winlogon或者Csrss结束。如果这些过程时正常的，系统就关掉了。如果发生了什么&nbsp;<br />
不可预料的事情，smss.exe就会让系统停止响应（就是挂起）。&nbsp;<br />
<br />
spoolsv.exe&nbsp;<br />
这个进程是不可以从任务管理器中关掉的。&nbsp;<br />
缓冲（spooler）服务是管理缓冲池中的打印和传真作业。&nbsp;<br />
<br />
service.exe&nbsp;<br />
这个进程是不可以从任务管理器中关掉的。&nbsp;<br />
大多数的系统核心模式进程是作为系统进程在运行。&nbsp;<br />
<br />
System&nbsp;Idle&nbsp;Process&nbsp;<br />
这个进程是不可以从任务管理器中关掉的。&nbsp;<br />
这个进程是作为单线程运行在每个处理器上，并在系统不处理其他线程的时候分派处理器的时间。&nbsp;<br />
<br />
winlogon.exe&nbsp;<br />
这个进程是管理用户登录和推出的。而且winlogon在用户按下CTRL+ALT+DEL时就激活了，显示安全对话框。&nbsp;<br />
<br />
winmgmt.exe&nbsp;<br />
winmgmt是win2000客户端管理的核心组件。当客户端应用程序连接或当管理程序需要他本身的服务时这个进程初始化<br />
<br />
taskmagr.exe&nbsp;<br />
这个进程呀，就是任务管理器了<br />
</div>
<img src ="http://www.blogjava.net/yukui/aggbug/161311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-18 00:11 <a href="http://www.blogjava.net/yukui/archive/2007/11/18/161311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为何IE提示不允许下载文件</title><link>http://www.blogjava.net/yukui/archive/2007/11/18/161310.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 17 Nov 2007 16:09:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/18/161310.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/161310.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/18/161310.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/161310.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/161310.html</trackback:ping><description><![CDATA[<div class="content">&nbsp;&nbsp;&nbsp; 使用Windows&nbsp;XP内置的IE浏览器下载文件时，当右击下载链接并选择&#8220;目标另存为&#8221;时，系统提示&#8220;当前安全设置不允许下载该文件&#8221;的提示，下载所有类型的文件时，都会弹出这个提示，请问这是什么原因？<br />
<br />
　　答：这是因为你将IE的安全级别设置为&#8220;高&#8221;，并禁止使用IE下载文件功能。在IE窗口中，依次选择&#8220;工具&#8594;Internet选项&#8221;菜单命令，在打开的&#8220;Internet选项&#8221;对话框中选择&#8220;安全&#8221;选项卡，单击&#8220;自定义级别&#8221;按钮，在弹出的&#8220;安全设置&#8221;对话框中将&#8220;文件下载&#8221;设置为&#8220;启用&#8221;即可。<br />
<br />
工具--〉Internet选项--〉安全--〉自定义级别--〉下载--〉启用<br />
<br />
上网点击&#8220;下载链接&#8221;时，弹出&#8220;安全警告&#8221;对话框&#8220;当前安全设置不允许下载该文件&#8221;。相信许多人都遇见过这类事情，这时候应该怎么办呢?首先在IE浏览器中点击菜单&#8220;工具&#8594;Internet选项&#8221;，在&#8220;Internet属性&#8221;对话框中选择&#8220;安全&#8221;标签，在&#8220;该区域的安全级别&#8221;中选择&#8220;自定义级别&#8221;，弹出&#8220;安全设置&#8221;对话框，将滚动条向下拉，找到&#8220;下载&#8221;部分，将&#8220;文件下载&#8221;和&#8220;字体下载&#8221;选择为&#8220;启用&#8221;，然后选择&#8220;确定&#8221;，在弹出的对话框中&#8220;是否改变安全区域设置&#8221;选择&#8220;是&#8221;，再选择&#8220;确定&#8221;即可</div>
<img src ="http://www.blogjava.net/yukui/aggbug/161310.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-18 00:09 <a href="http://www.blogjava.net/yukui/archive/2007/11/18/161310.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>善用XP安全设置规则，上网安全有保障</title><link>http://www.blogjava.net/yukui/archive/2007/11/18/161309.html</link><dc:creator>yukui</dc:creator><author>yukui</author><pubDate>Sat, 17 Nov 2007 16:08:00 GMT</pubDate><guid>http://www.blogjava.net/yukui/archive/2007/11/18/161309.html</guid><wfw:comment>http://www.blogjava.net/yukui/comments/161309.html</wfw:comment><comments>http://www.blogjava.net/yukui/archive/2007/11/18/161309.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yukui/comments/commentRss/161309.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yukui/services/trackbacks/161309.html</trackback:ping><description><![CDATA[<div class="content">（一）&nbsp;在&#8220;运行&#8221;项输入&#8220;gpedit.msc&#8221;命令<br />
　　<br />
　　用户配置***********************************************************<br />
　　1。用户配置-管理模板-控制面板：双击右过单菜&#8220;禁止访问控制面板&#8221;进入属性，然后选择&#8220;已启用&#8221;或者选择&#8220;只显示指定的控制面板应用小程序&#8221;双击进入属性，选择&#8220;已启用&#8221;然后点击&#8220;显示&#8221;进行自选添加设置，只需输入控制面板里的项目名称即可。需要还原时，相应在属性选择&#8220;未配置&#8221;即可。<br />
　　<br />
　　2。用户配置-管理模板-windows组件-NetMeeting-应用程序共享：右边所有菜单栏项目均设置为&#8220;已启用&#8221;这样有效防止他人共享&#8220;命令提示符&#8221;，&#8220;资源管理器窗口&#8221;，&#8220;桌面&#8221;，&#8220;应用程序&#8221;等项目，有关详情，请查看有关说明。<br />
　　<br />
　　3。用户配置-管理模板-windows组件-NetMeeting-音频和视频：点击&#8220;防止发送视频&#8221;双击进入属性，选择&#8220;而启用&#8221;（描述：如果用户有该硬件会防止用户发送视频。但用户仍可从他人处接收视频。）<br />
　　<br />
　　4。用户配置-管理模板-windows组件，直接单击&#8220;NetMeeting&#8221;项，分别查找&#8220;防止发送文件&#8221;，&#8220;防止接收文件&#8221;，&#8220;防止自动接收呼叫&#8221;分别双击进入属性选择&#8220;已启用&#8221;即可。有关说明请查看&#8220;描述&#8221;。<br />
　　<br />
　　5。用户配置-管理模板-windows组件-NetMeeting-选项页：双击&#8220;隐藏&#8220;安全措施&#8221;页&#8221;，进入属性，选择&#8220;已启用&#8221;（说明：隐藏&#8220;工具选项&#8221;对话框的&#8220;安全措施&#8221;页。这样用户就不能更改呼叫安全措施和身份验证设置。）<br />
　　<br />
　　6。用户配置-管理模板-windows组件,单击Internet&nbsp;Explorer:双击：分别查找&#8220;禁用更改Internet临时文件设置&#8221;，&#8220;禁用更改邮件设置&#8221;，&#8220;禁止自动完成功能保存密码&#8221;然后分别双击属性均设置为&#8220;已启用&#8221;即可。<br />
　　<br />
　　7。用户配置-管理模板-windows组件-Internet&nbsp;Explorer-浏览器菜单：分别查找&#8220;隐藏&#8220;收藏夹&#8221;菜单&#8221;，&#8220;禁用Internet选项...&#8221;菜单项&#8221;，&#8220;禁用&#8220;另存为...&#8221;菜单项&#8221;，双击进入属性,选择&#8220;已启用&#8221;即可。注意：一但禁用Internet选项，将无法进行该项设置，如要恢复请进入该项属性，选择&#8220;未配置&#8221;恢复即可。<br />
　　<br />
　　8。用户配置-管理模板-windows组件-Internet&nbsp;Explorer-工具栏：分别把：&#8220;禁用自定义浏览器工具栏&#8221;，&#8220;禁用自定义浏览器工具栏按扭&#8221;，分别选择&#8220;已启用&#8221;。设置后将分别无法使用相应项目，如要恢复请进入该项属性，选择&#8220;未配置&#8221;恢复即可。<br />
　　<br />
　　9。用户配置-管理模板-windows组件，单击windows资源管理器，右框菜单栏分别查找&#8220;网上邻居中没有我附近的计算机&#8221;，&#8220;网上邻居中不含有整个网络&#8221;，&#8220;从工具菜单删除文件夹选项&#8221;，&#8220;从我的电脑删除共享文档&#8221;,分别进入属性选择&#8220;已启用&#8221;，即可。（注：需要注意的是&#8220;从工具菜单删除文件夹选项&#8221;，一经设置，文件夹选项将会隐藏，不能够进行任何设置，如要将其恢复，在该项属性选择&#8220;未配置&#8221;即可恢复。）<br />
　　<br />
　　10。用户配置-管理模板-windows组件，单击windows资源管理器，右框菜单栏查找&#8220;关闭缩略图的缓存&#8221;进入属性选择&#8220;已启用&#8221;，即可。<br />
　　（特别说明：该设置控制是否缓存缩略图视图。<br />
　　<br />
　　如果启用该设置，缩略图视图将不被缓存。<br />
　　<br />
　　如果禁用或不配置该设置，缩略图视图将被缓存。<br />
　　<br />
　　注意:&nbsp;对于安全性至关重要的共享企业工作站或计算机，您必须启用该设置以关闭缩略图视图缓存，因为<br />
　　<br />
　　缩图图缓存可以被任何人读取。）<br />
　　<br />
　　11。用户配置-管理模板-windows组件，单击windows资源管理器，右框菜单栏查找&#8220;删除映射网络驱动器和断开网络驱动器&#8221;，进入属性选择&#8220;已启用&#8221;，即可。<br />
　　<br />
　　12。用户配置-管理模板-windows组件，单击windows资源管理器，右框菜单栏查找&#8220;隐藏我的电脑中这些指定的驱动器&#8221;，进入属性选择&#8220;已启用&#8221;，然后选择自己要隐藏的驱动器即可。（注：上网时特别推荐此设置，确保硬盘文件不被非法浏览和读取，对安全意识较高的用户，此举是首选的，也有必要这样做。当用户需要浏览本地驱动器时，在该项选择&#8220;未配置&#8221;即可将&#8220;驱动器&#8221;还原显示，不要谦麻烦呀！）<br />
　　<br />
　　13。用户配置-管理模板-windows组件，单击Microsoft&nbsp;Management&nbsp;Console,右框菜单栏查找&#8220;限制用户进入编辑模式&#8221;,进入属性选择&#8220;已启用&#8221;，即可。<br />
　　(说明：防止用户进入编辑模式。<br />
　　<br />
　　这个设置防止用户用编辑模式打开&nbsp;Microsoft&nbsp;管理控制台&nbsp;(MMC)，防止用户用编辑模式专门打开控制台<br />
　　<br />
　　文件，并防止用户打开任何默认打开方式为编辑模式的控制台文件。<br />
　　<br />
　　结果是，用户无法创建控制台文件或添加/删除管理单元。同时，因为无法打开编辑模式控制台文件，用<br />
　　<br />
　　户无法使用这些文件包含的工具。<br />
　　<br />
　　这个设置允许用户打开&nbsp;MMC&nbsp;用户模式控制台文件，如在&nbsp;Windows&nbsp;2000&nbsp;Server&nbsp;中的&#8220;管理工具&#8221;菜单上<br />
　　<br />
　　的文件。但是，用户无法打开「开始」菜单上的空白的&nbsp;MMC&nbsp;控制台窗口。(要打开&nbsp;MMC，单击&#8220;开始&#8221;，<br />
　　<br />
　　单击&#8220;运行&#8221;，再键入&nbsp;MMC。)&nbsp;用户也无法从命令提示符打开空白的&nbsp;MMC&nbsp;控制台窗口。<br />
　　<br />
　　如果停用或不配置这个设置，用户则可以进入编辑模式并打开编辑模式控制台文件。）<br />
　　<br />
　　14。用户配置-管理模板-windows组件，单击&#8220;任务计划程序&#8221;，右框菜单栏分别查找&#8220;防止任务运行或停止&#8221;，&#8220;禁用创建新任务&#8221;，&#8220;禁止浏览&#8221;，分别进入属性选择&#8220;已启用&#8221;，即可。<br />
　　<br />
　　15。用户配置-管理模板-windows组件-Microsoft&nbsp;Management&nbsp;Console-受限的/许可的管理单元，右框菜单栏查找&#8220;IP安全监视器&#8221;，进入属性选择&#8220;已启用&#8221;，&#8220;远程桌面&#8221;，进入属性选择&#8220;已禁用&#8221;，即可。<br />
　　<br />
　　16。用户配置-管理模板-windows组件-Windows&nbsp;Messenger&nbsp;，右框菜单栏查找&#8220;初始化时不自动启动Windows&nbsp;Messenger&#8221;，进入属性选择&#8220;已启用&#8221;，即可。（说明：当用户登录&nbsp;Windows&nbsp;XP&nbsp;时，Windows&nbsp;Messenger&nbsp;自动被加载和运行。您可以使用这个设置来停止&nbsp;Windows&nbsp;Messenger&nbsp;在登录时自动运行。）<br />
　　<br />
　　17。用户配置-管理模板-windows组件-Windows&nbsp;Update，右框菜单栏查找&#8220;删除所有Windows&nbsp;Update功能的访问&#8221;，进入属性选择&#8220;已启用&#8221;，即可。（特别说明：如果使用XP操作系统如不能够上网升级的用户，建议你将此功能删除，如能够上网升级的用户，并且没有出现问题，即保留该项设置不动为妙！）。<br />
　　<br />
　　18。用户配置-管理模板-windows组件-Windows&nbsp;Media&nbsp;Player-播放,右框菜单栏查找&#8220;防止下载编解码器&#8221;,分别进入属性选择&#8220;已启用&#8221;，即可。<br />
　　<br />
　　19。用户配置-管理模板-windows组件-Windows&nbsp;Media&nbsp;Player-网络，右框菜单栏查找&#8220;配置网络冲缓&#8221;，进入属性选择&#8220;已启用&#8221;，缓冲时间：设置为：&#8220;自定义&#8221;，然后在&#8220;配置网络缓冲：设置为&#8220;0&#8221;，即可。<br />
　　<br />
　　（注：上网在线观看电影的朋友，如出现短时间过度缓冲次数和缓冲等待时间过长，该项设置，能够帮上<br />
　　<br />
　　你忙了！也有效防止一些电影网站，进行对你的机器采用不定时缓冲，迫使你放弃你观看的心爱电影，我<br />
　　<br />
　　也饱尝过这些痛苦，希望此项能够帮助你解决实际问题，如不能够解决，可能是对方网站宽带不足和在线<br />
　　<br />
　　观看人数过多或你的网速较慢而影响，此项就无能为力了）。<br />
　　<br />
　　20。用户配置-管理模板-windows组件-Windows&nbsp;Media&nbsp;Player-网络，右框菜单栏查找&#8220;隐藏网络选项卡&#8221;，进入属性选择&#8220;已启用&#8221;，即可。<br />
　　<br />
　　21。用户配置-管理模板-windows组件-任务栏和[开始]菜单：右框菜单栏分别查找&#8220;不要保留最近打开文档的记录&#8221;，&#8220;从开始菜单中删除用户名&#8221;，&#8220;阻止更改任务栏和[开始]菜单&#8221;，分别进入属性选择&#8220;已启用&#8221;，即可。（特别说明：&#8220;阻止更改任务栏和[开始]菜单&#8221;，会相应出现在任栏单右键&#8220;属性&#8221;不能够登录，如要恢复，请进入该属性选择&#8220;未配置&#8221;即可恢复。）<br />
　　<br />
　　22。用户配置-管理模板-windows组件-任务栏和[开始]菜单：右框菜单栏分别查找&#8220;关闭用户跟踪&#8221;，进入属性选择&#8220;已启用&#8221;，即可。慎用或不选用。<br />
　　（注：停用用户跟踪。<br />
　　<br />
　　这个设置防止系统跟踪用户使用的程序、用户导航的路径和用户打开的文档。系统用这个信息来自定义&nbsp;<br />
　　<br />
　　Windows&nbsp;功能，如个性化菜单。<br />
　　<br />
　　如果启用这个设置，系统则不跟踪这些用户操作。系统停用需要用户跟踪信息的自定义功能，包括个性化<br />
　　<br />
　　菜单。<br />
　　<br />
　　同时，参阅"关闭个性化菜单"&nbsp;设置。）<br />
　　<br />
　　23。用户配置-管理模板-windows组件-桌面：右框菜单栏分别查找&#8220;禁用调整桌面工具栏&#8221;，&#8220;隐藏桌面上网上邻居图标&#8221;，分别进入属性选择&#8220;已启用&#8221;，即可。<br />
　　<br />
　　24。用户配置-管理模板-windows组件-桌面-Active&nbsp;Desktop:右框菜单栏分别查找&#8220;不允许更改&#8221;，&#8220;禁用活动桌面&#8221;，分别进入属性选择&#8220;已启用&#8221;，即可。<br />
　　<br />
　　25。用户配置-管理模板-windows组件-桌面-Active&nbsp;Directory:右框菜单栏查找&#8220;隐藏Active&nbsp;Directory文件夹&#8221;，进入属性选择&#8220;已启用&#8221;，即可。<br />
　　<br />
　　26。用户配置-管理模板-windows组件-控制面板:右框菜单栏查找&#8220;禁止访问控制面板&#8221;，进入属性选择&#8220;已启用&#8221;，即可。（特别说明：需要注意的是，一经设置该项，连同右键单击&#8220;我的电脑&#8221;属性和在桌面上右键单击出现菜单里的属性，或者在任务栏-开始菜单最顶的用户图标进入&#8220;用户帐户&#8221;均可失效，无法登录浏览，如要恢复，进入该项属性选择为&#8220;未配置&#8221;即可恢复。）<br />
　　<br />
　　27。用户配置-管理模板-windows组件-控制面板:右框菜单栏查找&#8220;隐藏指定控制面板应用小程序&#8221;，进入属性选择&#8220;已启用&#8221;，然后点击&#8220;显示&#8221;项，按&#8220;添加&#8221;进行自定义个性化设置，并输入相关控制面板相应名称即可。<br />
　　<br />
　　28。用户配置-管理模板-windows组件-共享文件夹：右框菜单栏分别查找&#8220;允许发布&nbsp;DFS&nbsp;根目录&#8221;，&#8220;允许发布共享文件夹&#8221;，分别进入属性选择&#8220;已禁用&#8221;，即可。<br />
　　<br />
　　29。用户配置-管理模板-windows组件-网络-网络连接：右框菜单栏查找&#8220;删除所有用户远程访问连接&#8221;，进入属性选择&#8220;已启用&#8221;，即可。<br />
　　（特别说明：<br />
　　如果启用此设置，所有用户可删除共享远程访问连接。另外，如果文件系统是&nbsp;NTFS，用户需要对&nbsp;<br />
　　<br />
　　Documents&nbsp;and&nbsp;Settings\All&nbsp;Users\Application&nbsp;Data\Microsoft\Network\Connections\Pbk&nbsp;具有写访<br />
　　<br />
　　问权限，以便删除共享远程访问连接。）<br />
　　<br />
　　30。用户配置-管理模板-windows组件-系统：右框菜单栏查找&#8220;不要运行指定的Windows应用程序，进入属性选择&#8220;已启用&#8221;，并在&#8220;显示&#8221;项增加设置相关名称即可。（说明例如：在该项增加svchost.exe，网速会相应加快。)<br />
　　<br />
　　31。用户配置-管理模板-windows组件-系统：右框菜单栏查找&#8220;关闭自动播放&#8221;，进入属性选择&#8220;已启用&#8221;，即可。<br />
　　<br />
　　32。用户配置-管理模板-windows组件-系统：右框菜单栏查找&#8220;限制这些程序从帮助启动&#8221;，&#8220;已启用&#8221;，并增加相关程序名称。即可。（说明例如：在该项增加svchost.exe，网速会相应加快。)<br />
　　<br />
　　33。管理模板-windows组件-系统：右框菜单栏查找&#8220;阻止访问注册表编辑工具&#8221;，进入属性选择&#8220;已启用&#8221;，即可。（需要注意的是，安装软件程序的过程最好把它恢复为默认设置，因为可能你某些安装软件过程时，相关注册信息需要写入注册表里，一但被拒绝，可能会引起意想不到的后果，但上网的时候，仍需将该项设置，以免不法之徒，利用此这漏洞和空子，进行非法修改注册表，以达到其入侵者的目的，危害性极大，也有效防止在浏览一些网站时，被非法网站进行修改注册表，安全性在某个程度上来讲是有所<br />
　　提高的，建议选择。）<br />
　　<br />
　　34。用户配置-管理模板-windows组件-系统：右框菜单栏查找&#8220;阻止访问命令提示符&#8221;，进入属性选择&#8220;已启用&#8221;，即可。（注：相信大家对此不再默生吧！不需要使用时，最好将它设置好，特别是上网的时候，没有必要和不是很懂电脑的朋友，慎用此&#8220;命令提示符&#8221;项，但总有需要使用它的时候的，那就将该项恢复为&#8220;未配置&#8221;即可。有关怎么使用&#8220;命令提示符&#8221;，这里不作详解，要学习和对&#8220;命令提示符感兴趣的朋友，请看和查找有关书籍进行了解。）<br />
　　<br />
　　35。用户配置-管理模板-windows组件-系统-组策略：右框菜单栏查找&#8220;组策略慢速链接检测&#8221;，进入属性选择&#8220;已启用&#8221;，在&#8220;连接速度（Kbps）&#8221;：设置为&#8220;0&#8221;，相应链接刷新速度，会相应加快。<br />
　　<br />
　　36。在&#8220;运行&#8221;项中，输入&#8220;msconfig&#8221;命令，启动进入介面，然后点击&#8220;一般&#8221;菜单项，选择&#8220;有选择的启动&#8221;，分别把&#8220;处理SYSTEM.INI&nbsp;文件（P）&#8221;和&#8220;处理WIN.INI文件（W）取消选择，即可。一般木马都会经常在该两项等方面进自动加载运行，取消该两项，并且查看是否有不明程序启动，如有将其相应取消即可。这样大大减少病毒与木马发作机会，但并不是绝对能够防范，如上网使用一些带有注入恶意代码的软件程序除外，因为好可能该软件已经默认打开某个端口，透过该漏洞进行传输和发送，除了安装网络<br />
　　防火壁和杀毒软件之外，还需要进一步设置一下端口。请看下面帖子。<br />
　　<br />
　　37。点击任务栏里的&#8220;本地连接&#8221;类似网上邻居的小图标或到&#8220;控制面板&#8221;里点击&#8220;网络连接&#8221;，相对双击进入介面，然后右键单击&#8220;本地连接&#8221;图标，进入该&#8220;属性&#8221;，在&#8220;常规&#8221;找到&#8220;Internet&nbsp;协议（TCP/IP）,然后再点属性，进入介面&#8220;常规&#8221;项，点击&#8220;高级&#8221;项进入介面，选择菜单项中的&#8220;选项&#8221;，找到&#8220;TCP/IP&nbsp;筛选&#8221;项，在&#8220;TCP/IP&nbsp;筛选&#8221;项上再次点&#8220;属性&#8221;，进入介面将会出三个框选，然后选择&#8220;第一个框选&#8221;，把&#8220;全部允许&#8221;改选为&#8220;只允许&#8221;，在&#8220;TCP&nbsp;端口&#8221;相应添加对应端口，例如：80代表&#8220;浏览器&#8221;打开的端口之一，如某些程序因为把&#8220;全部允许&#8221;改选为&#8220;只允许&#8221;而不能够在网上运行使用，只要你上网时双击打开某个软件程序，一般来讲，网络防火壁会相应询问你是否允许应程序启动进入网络，例如瑞星防火壁，这时会相应显示某个程序打开的默认端口，如能正常启动进入网络，就不必添加该端口，相反不能够登录就要在该列表中添加相应端口，即可。其它两个选框默认不动，即可。最后按确定，重启计算机。以后电脑就会按照你的设置规则运行，除了XP默认打开的端口和你设置好的端口外，其他全部端口就会默认为关闭，就是说你所安装某些程序软件，即使它已自动设置默认打开某个端口，只要它打开的默认端口，不在你所设置的端口和XP等操作系统默认打开的端口内，均不可透过它打开的默认端<br />
　　口进出和发送传输，大大有效提高安全性，对防范非法入侵，有较大力度阻截和防预。<br />
　　<br />
　　38。在&#8220;运行&#8221;里输入&#8220;eventvwr&#8221;命令，打开&#8220;事件查看器&#8221;经常检查一下&#8220;应用程序&#8221;，&#8220;安全性&#8221;，&#8220;系统&#8221;三项里产生的事件和错误，如有出现异常和不明白的地方，请在你喜欢的论坛发表帖子和请教一下你认识和熟悉电脑操作的朋友，让他们帮助你分析和找出原因所在，及时对正下药，并且及时打上新安全补丁和及时升级杀毒软件，壁火壁,方为上策。<br />
　　<br />
　　39。用户配置-管理模板-控制面板-添加/删除程序：右框菜单栏查找&#8220;隐藏从网络中添加程序选项&#8221;，设置为&#8220;已启用&#8221;，即可。<br />
　　<br />
　　40。最后把重启或者注销一次，在用户配置-管理模板-系统-组策略：右框菜单栏查找&#8220;关闭自动更新&nbsp;ADM&nbsp;文件&#8221;，进入属性选择&#8220;已启用&#8221;，即可。<br />
　　<br />
　　（说明：防止系统在您打开组策略时自动更新管理模板的源文件,有关详细说明，请查看描述。）<br />
　　<br />
　　<br />
　　<br />
　　<br />
　　（二）在&#8220;运行&#8221;项输入&#8220;gpedit.msc&#8221;命令<br />
　　<br />
　　计算机配置**********************************************************************<br />
　　<br />
　　41。计算机配置-管理模板-Windows&nbsp;组件-终端服务：右框菜单栏查找&#8220;连接时启动程序&#8221;设置为&#8220;已禁用&#8221;，即可。（说明：如果禁用或不配置此设置，则终端服务起始于完整桌面，除非服务器管理员或用户指定了其它设置。）<br />
　　<br />
　　42。计算机配置-管理模板-Windows&nbsp;组件-终端服务：右框菜单栏查找&#8220;不允许新客户连接&#8221;，设置为&#8220;已启用&#8221;，即可。（使用客户端服务的朋友，切莫选择此设置，一般用户可选择。）<br />
　　<br />
　　43。计算中心配置-管理模板-Windows&nbsp;组件-终端服务：右框菜单栏查找&#8220;远程控制设置&#8221;，设置为&#8220;已启用&#8221;，在下选框中&#8220;选项&#8221;，设置为&#8220;不允许远程控制&#8221;。即可禁止所有远程控制，网速相应加快。<br />
　　<br />
　　44。计算机配置-管理模板-Windows&nbsp;组件-NetMeeting：右框菜单栏查找&#8220;禁止远程桌面共享&#8221;，设置为&#8220;已启用&#8221;，即可。<br />
　　<br />
　　45。计算机配置-管理模板-Windows&nbsp;组件-Internet&nbsp;Explorer:右框菜单栏查找&#8220;禁用Internet&nbsp;Explorer组件的自动安装&#8221;，设置为&#8220;已启用&#8221;即可。（注：如果启用该策略，则可防止&nbsp;Internet&nbsp;Explorer&nbsp;在用户访问到需要某个组件的网站时下载该组件。）<br />
　　<br />
　　46。计算机配置-管理模板-Windows&nbsp;组件-Internet&nbsp;Explorer:右框菜单栏查找&#8220;禁用定期检查Internet&nbsp;Explorer软件更新&#8221;，设置为&#8220;已启用&#8221;即可。<br />
　　<br />
　　47。计算机配置-管理模板-Windows&nbsp;组件-Internet&nbsp;Explorer:右框菜单栏查找&#8220;禁用启动时的软件更新外壳通知&#8221;，设置为&#8220;已启用&#8221;即可。（注：如果启用该策略，则在使用软件分发频道更新程序时，用户将不会收到通知。要获取相关内容将要到相关渠道获取。）<br />
　　<br />
　　48。计算机配置-管理模板-Windows&nbsp;组件-任务计划程序：右框菜单栏分别查找&#8220;防止任务运行或停止&#8221;，&#8220;禁用&#8220;创建新任务&#8221;，&#8220;禁止浏览&#8221;，分别设置为&#8220;已启用&#8221;，即可。<br />
　　<br />
　　49。计算机配置-管理模板-Windows&nbsp;组件-终端服务-客户端/服务器数据重新定向：右框菜单栏查找&#8220;不将默认客户端打印机设置为会话中的默认打印机&#8221;，设置为&#8220;已启用&#8221;即可。（注：如有打印机的朋友，需要在网络上使用打印机交流，设莫选用或者避免有麻烦也推荐选用，如没有打印机的朋友，请选择，不分初级与高级用户）<br />
　　<br />
　　50。计算机配置-管理模板-Windows&nbsp;组件-终端服务-加密与安全性：右框菜单栏查找&#8220;设置客户端连接加密级&#8221;，设置为&#8220;已启用&#8221;，下边框选&#8220;加密级别&#8221;：&#8220;高等级&#8221;，即可。<br />
　　<br />
　　51。计算机配置-管理模板-Windows&nbsp;组件-终端服务-Windows&nbsp;Installer:&nbsp;右框菜单栏查找&#8220;关闭创建系统还原检查点&#8221;，设置为&#8220;已启用&#8221;即可。<br />
　　<br />
　　52。计算机配置-管理模板-Windows&nbsp;组件-终端服务-Windows&nbsp;Messenger:右框菜单栏查找&#8220;初始化时不自动启动Windows&nbsp;Messenger&#8221;，设置为&#8220;已启用&#8221;即可。<br />
　　<br />
　　53。计算机配置-管理模板-系统：右框菜单栏查找&#8220;关完自动播放&#8221;，查找下边框选&#8220;关闭自动播放&#8221;设置为&#8220;CD-ROM&nbsp;驱动器&#8221;，即可。<br />
　　<br />
　　54。计算机配置-管理模板-系统-用户配置文件：右框菜单栏查找&#8220;不要检测慢速网络连接&#8221;，&#8220;防止漫游配置文件复制到服务器&#8221;，分别设置为&#8220;已启用&#8221;，即可。<br />
　　<br />
　　55。计算机配置-管理模板-系统-组策略：右框菜单栏查找&#8220;注册表策略处理&#8221;，设置为&#8220;已启用&#8221;，并在下选框&#8220;不要在周期性后台处理时采用&#8221;，设置为&#8220;选择&#8221;即可。（注：此设置的好处是有效防止某程序和不明软件，例如：木马，病毒等，通过隐藏方式，对某其程序已设定某些默认自定义设置，不定时通过修改注册表而达到某其目的，如不想其得建议与&#8220;阻止访问注册表编辑工具&#8221;同时灵活调配运用，方可有效防止木马和病毒发作的机会，缺点就是可能某特定软件设置也同时失效，正是黑客们看中弱点之一。<br />
　　但以安全角度考虑本人推荐该项设置，比较安全一点。）<br />
　　<br />
　　56。计算机配置-管理模板-系统-远程协助：右框菜单栏分别查找&#8220;请求的远程协助&#8221;，&#8220;提供远程协助&#8221;，分别设置为&#8220;已禁用&#8221;，即可。<br />
　　<br />
　　57。计算机配置-管理模板-系统-系统还原：右框菜单栏分别查找&#8220;关闭系统还原&#8221;，&#8220;关闭配置&#8221;，分别设置为&#8220;已禁用&#8221;，即可。（注：&#8220;关闭配置&#8221;如启用该项，连同登录介面均为失效。初级用户慎用，一但系统发生故障，难以修复，所以设置前必需事先考虑自身实际情况而作决定。）<br />
　　<br />
　　58。计算机配置-管理模板-网络-脱机文件：右框菜单栏分别查找&#8220;文件没有缓存&#8221;设置为&#8220;已启用&#8221;，并在下选框&#8220;扩展名&#8221;：设置为：例如：<br />
　　*.dbf;*.ndx;*.lnk*.syd;*.tmp*.mscreate.dir*.#Res*.cdr_*.xlk*.wbk*.dmp*.diz*.ms*._mp*.tmp*.old*.gid*.ftg*.bak*.??$*.---*.~*等扩展名，设置时注意格式即可。有关更多扩展名称，请参阅<br />
　　&#8220;Windows忧化大师-系统清理维护-垃圾文件清理-文件类型：框选中有更多扩展名称和说明，这里不作详细讲解。相应添加&#8220;扩展名&#8221;名称，会相应加快系统运行速度，减少系统缓存时积累的垃圾产生，从而提升系统性能，但可能有某些缓存的备份文件，将会相应失效和丢失。设置时请查看相关&#8220;扩展名&#8221;的功能和作用的说明，根据个人实际情况而决定设置取向。）67。计算机配置-管理模板-网络-脱机文件：右框菜单栏分别查找&#8220;配置慢速链接速度&#8221;，设置为&#8220;已启用&#8221;，在下选框中&#8220;值&#8221;，设置为&#8220;0&#8221;，即可。<br />
　　<br />
　　（注：该项设置的好处是，防范某些网站，对你的计算机&#8220;链接刷新速度&#8221;进行非法修改，相应会提高，<br />
　　<br />
　　加速网络浏览和下载速度，推存设置）<br />
　　<br />
　　59。计算机配置-管理模板-网络-网络连接：右框菜单栏分别查找&#8220;禁止使用DNS域网络上的Internet连接共享&#8221;，&#8220;禁止在你的DNS域网络上安装和配置网桥&#8221;，分别设置为&#8220;已启用&#8221;，即可。<br />
　　<br />
　　60。计算机配置-管理模板-网络-QoS&nbsp;数据包调度程序：右框菜单栏查找&#8220;限制可保留带宽&#8221;，选择&#8220;已启用&#8221;，并在下选框&#8220;带宽限制&#8221;，设置为&#8220;0&#8221;。（注：有关说明，请查看说明书！不过这个当然很有用呢！）<br />
　　<br />
　　61。计算机配置-管理模板-打印机：右框菜单栏查找&#8220;自动在Active&nbsp;Directory上公布新的打印机&#8221;<br />
　　，设置为&#8220;已禁用&#8221;，（注：如果停用这个设置，添加打印机向导则不自动公布打印机。但是，您可以手动公布共享打印机，平是没有必要采用自动公布的，有需要时才采用。）<br />
　　<br />
　　62。计算机配置-Windows设置-安全设置-本地策略-安全选项：右框菜单栏查找对照表设置：<br />
　　<br />
　　（一）Microsoft&nbsp;网络服务器：当登录时间完时自动注销用户：已启用。<br />
　　<br />
　　（二）Microsoft&nbsp;网络服务器：数字签字的通信（若客户同意）：已停用。<br />
　　<br />
　　（三）Microsoft&nbsp;网络服务器：数字签字的通信（总是）：已停用。<br />
　　<br />
　　（四）Microsoft&nbsp;网络服务器：在挂起会话之前所需要的空闲时间：15分种。<br />
　　<br />
　　（五）Microsoft&nbsp;网络客户：发送未加密的密码到第三方SMB服务器：已停用。<br />
　　<br />
　　（六）Microsoft&nbsp;网络客户：数字签字的通信（若服务器同意）：已启用。<br />
　　<br />
　　（七）Microsoft&nbsp;网络客户：数字签字的通信（总是）：已停用。<br />
　　<br />
　　（八）故障恢复控制台：允许对所有驱动器和文件进行软盘复制和访问：已停用。<br />
　　<br />
　　（九）故障恢复控制台：允许自动系统管理级登录：已停用。<br />
　　<br />
　　（十）关机：清理虚似内存页面文件：已启用。（注：可选可不选，如果选择启用，每次重新登录系统，<br />
　　<br />
　　各方面性能都会相对提高，但关机时会占用一定时间，那就视乎内存占用页面文件间大小区别而决定。但<br />
　　<br />
　　为了新一轮登录系统操作快便，建议还是选用&#8220;已启用&#8221;较为合适。）<br />
　　<br />
　　（十一）关机：允许在未登录前关机：已启用。<br />
　　<br />
　　（十二）交互式登录：不显示上次的用户名：已停用。<br />
　　<br />
　　（十三）交互式登录：不需要按CTRL+ALT+DEL：没有定义<br />
　　<br />
　　（十四）交互式登录：可被缓冲保存的前次登录个数（在域控制器不可用的情况下）：缓存：10次登录。<br />
　　<br />
　　（十五）交互式登录：要求域控制器身份验证以脱离工作站：已停用。<br />
　　<br />
　　（十六）交互式登录：用户试图登录时消息标题：自定义个性化设置。（注：例如：&#8220;欢迎下次光临！&#8221;<br />
　　<br />
　　等字眼。）<br />
　　<br />
　　（十七）交互式登录：用户试图登录时消息文字：自定义个性化设置。（注：例如：&#8220;今天心情如何!&#8221;<br />
　　<br />
　　等字眼。也可以是一篇自己喜欢的散文，诗歌，名言，歌词，作文等。）<br />
　　<br />
　　（十八）交互式登录：在密码到期前提示用户更改密码：默认为14天。（注：可自定义更改）<br />
　　<br />
　　（十九）交互式登录：智能卡移除操作：无操作。<br />
　　<br />
　　（二十）设备：防止用户安装打印机驱动程序：已停用。<br />
　　<br />
　　（二十一）设备：未签名驱动程序的安装操作：允许安装但发出警告。<br />
　　<br />
　　（二十二）设备：允许不登录脱离：已启用。<br />
　　<br />
　　（二十三）设备：允许格式化和弹出可移动媒体：Administors<br />
　　<br />
　　（二十四）只有本地登录的用户才能访问CD-ROM：已启用。<br />
　　<br />
　　（二十五）只有本地登录的用户才能访问软盘：已启用。<br />
　　<br />
　　（二十六）审计：对备份和还原权限的使用进行审计：已停用。<br />
　　<br />
　　（二十七）审计：对全局系统对象的访问进行审计：对全局系统对象的访问审计：已停用。<br />
　　<br />
　　（二十八）审计：如果无法纪录安全审计则立即关闭系统：已启用。<br />
　　<br />
　　（二十九）网络安全：LAN&nbsp;Manager身份验证级别：发送&nbsp;LM&nbsp;&amp;&nbsp;NTLM&nbsp;响应。（注：没有必要不要乱动）<br />
　　<br />
　　（三十）网络安全：LDAP&nbsp;客户答名要求：协商签名。<br />
　　<br />
　　（三十一）网络安全：不要在下次更改密码时存储&nbsp;LAN&nbsp;Manager&nbsp;的&nbsp;Hash&nbsp;值：已停用。（注：如设置&#8220;已启用&#8221;，那么使用&nbsp;Manager聊天工具时，总是要求输入密码。）<br />
　　<br />
　　（三十二）网络安全：在超过登录时间后强制注销：已停用。<br />
　　<br />
　　（三十三）网络安全设置：基于&nbsp;MTLM&nbsp;SSP&nbsp;（包括安全&nbsp;RPC）服务器的最小会话安全：分别把&#8220;要求消息的完整性&#8221;，&#8220;要求消息的保密性&#8221;，&#8220;要求&nbsp;MTLMv2&nbsp;会话安全&#8221;，&#8220;要求128-位&nbsp;加密&#8221;选择即可。<br />
　　<br />
　　（三十四）网络安全设置：基于&nbsp;NTLM&nbsp;SSP&nbsp;（包括安全RPC）客户的最小会话安全：分别把&#8220;要求消息的<br />
　　<br />
　　完整性&#8221;，&#8220;要求消息的保密性&#8221;，&#8220;要求&nbsp;MTLMv2&nbsp;会话安全&#8221;，&#8220;要求128-位&nbsp;加密&#8221;选择即可。<br />
　　<br />
　　（三十五）网络访问：本地帐户的共享和安全模式：仅来宾-本地用户以来宾身份验证。<br />
　　<br />
　　（三十六）网络访问：不允许&nbsp;SAN&nbsp;帐户的若名枚举：已启用。<br />
　　<br />
　　（三十七）网络访问：不允许&nbsp;SAN&nbsp;帐户和共享的若名枚举：已启用。<br />
　　<br />
　　（三十八）网络访问：不允许为网络身份验证储存凭据或&nbsp;.NET&nbsp;Passports:已停用。<br />
　　<br />
　　（三十九）网络访问：可若名访问的共享：把COMCFG和DFS$删除。（注：需要时分别把COMCFG和DFS$名称<br />
　　<br />
　　分别复制粘帖进入框选即可恢复。）网速会相应加快。<br />
　　（四十）网络访问：可若名访问的命名管道：分别把COMNAP，COMNODE，SQL\QUERY，SPOOLSS，LLSRPC，<br />
　　<br />
　　EPMAPPER，LOCATOR，TrkWks，TrkSvr全部删除。（需要时把COMNAP，COMNODE，SQL\QUERY，SPOOLSS，<br />
　　<br />
　　LLSRPC，EPMAPPER，LOCATOR，TrkWks，TrkSvr名称分别粘帖进入框选即可恢复。）网速会相应加快。<br />
　　（四十一）网络访问：可远程访问的注册表路径：<br />
　　（System\CurrentControlSet\Control\ProductOptions<br />
　　System\CurrentControlSet\Control\Print\Printers<br />
　　System\CurrentControlSet\Control\Server&nbsp;Applications<br />
　　System\CurrentControlSet\Services\Eventlog<br />
　　Software\Microsoft\OLAP&nbsp;Server<br />
　　Software\Microsoft\Windows&nbsp;NT\CurrentVersion<br />
　　System\CurrentControlSet\Control\ContentIndex<br />
　　System\CurrentControlSet\Control\Terminal&nbsp;Server<br />
　　System\CurrentControlSet\Control\Terminal&nbsp;Server\UserConfig<br />
　　System\CurrentControlSet\Control\Terminal&nbsp;Server\DefaultUserConfiguration）<br />
　　全部删除。（注：除了系统升级时，把以上&#8220;可远程访问的注册表路径&#8221;恢复，并且把&#8220;阻止访问注册表<br />
　　<br />
　　编辑工具&#8221;和阻止访问命令提示符&#8221;恢复为&#8220;未配置&#8221;之外，平时是没有需要将它们打开的，这样会给人<br />
　　<br />
　　有可剩之机，为了不被干扰，最好将它全部删除为妙，相应网速会加快。）<br />
　　<br />
　　（四十二）网络访问：让&#8220;每个人&#8221;权应用于若名用户：已停用。<br />
　　<br />
　　（四十三）允许若名胜古迹SID/名称&nbsp;转换：已停用。<br />
　　<br />
　　（四十四）系统对象：对非&nbsp;Windows&nbsp;子系统不要求区分大小写：已启用。<br />
　　<br />
　　（四十五）系统对象：由&nbsp;Administrators&nbsp;组成员所创建的对象默认所有者：Object&nbsp;creator<br />
　　<br />
　　（四十六&nbsp;）系统对象：系统对象：增强内部系统对象的默认权限（例如&nbsp;Symbolic&nbsp;Links):已启用。<br />
　　<br />
　　（四十七）系统加密：使用&nbsp;FIPS&nbsp;兼容的算法来加密，散列和签名：已停用。<br />
　　<br />
　　（四十八）域成员：对安全通道数据进行数字加密（如果可能）：已启用。<br />
　　<br />
　　（四十九）域成员：对安全通道数据进行数字加密或签名（总是）：已启用。<br />
　　<br />
　　（五十）域成员：对安全通道数据进行数字加密或签名（如果可能）：已启用。<br />
　　<br />
　　（五十一）域成员：需要强（Windows&nbsp;2000&nbsp;或&nbsp;以上版本）会话密钥：已启用。<br />
　　<br />
　　（五十二）域控制器：LDAP&nbsp;服务器签名要求：没有定义。<br />
　　<br />
　　（五十三）域控制器：禁用更改机器帐户密码：已启用。（注：默认设置为：&#8220;已禁用&#8221;，如要使用设置<br />
　　<br />
　　机器帐户密码时，还原恢复即可。禁用更改机器帐户密码，是为了防止他人在本地和网络连接时，被不法<br />
　　<br />
　　之徒弟所利用。）<br />
　　<br />
　　（五十四）域控制器：拒绝更改机器帐户密码：拒绝更改机器帐户密码：已启用。（注：同上）<br />
　　<br />
　　（五十五）域控制器：允许服务器操作员计划任务：已停用。<br />
　　<br />
　　（五十六）域控制器：最长机器帐户密码寿命：默认为30天。（注：可自由根据自己实际情况作决定）<br />
　　<br />
　　（五十七）帐户：管理员帐户状态：已启用。<br />
　　<br />
　　（五十八）帐户：来宾帐户状态：已停用。<br />
　　<br />
　　（五十九）帐户：使用空白密码的本地帐户只允许进行控制台登录：已启用。<br />
　　<br />
　　（六十）帐户：生命名来宾帐户：Guest&nbsp;（注：可自由进行自定义改命）最好不动为妙。<br />
　　<br />
　　（六十一）帐户：生命名系统管理帐户：Administrator（注：可自由进行自定义改命）最好不动为妙。<br />
　　<br />
　　63。计算机配置-Windows设置-安全设置-IP安全策略，在本地计算机：右框菜单栏分别查找双击&#8220;安全服务器（需要安全）属性&#8221;，&#8220;服务器（请求安全）属性&#8221;，并分别相对把下选框&#8220;所有IP通讯量&#8221;，&#8220;所有ICMP通讯量&#8221;，双击进入介面，在菜单项中&#8220;筛选器操作&#8221;设置为&#8220;需要安全&#8221;，并双击进入操作介面，在菜单项中&#8220;安全措施&#8221;设置为&#8220;阻止&#8221;，分为三个级别，按自己实际需要设置，但是设置为&#8220;阻止&#8221;级别相对是最安全的。（注：其他默认设置不动，需要时还原默认操作即可。）<br />
　　<br />
　　(以上六十一项设置和所有设置，均由本人进行测试通过。网路使用正常，有关功能被限制和允许，请仔细查看有关说明）如带来不便之处，敬请原谅。请设置前，分别备份以下项目：<br />
　　（System.INI<br />
　　Win.INI<br />
　　Msdos.sys<br />
　　Boot.INI<br />
　　Config.sys<br />
　　Autoexec.bat<br />
　　Windows注册表）<br />
　　<br />
　　<br />
　　<br />
　　<br />
　　特别说明---------请朋友们设置前览阅一下有关内容<br />
　　***********************************************************<br />
　　<br />
　　***本帖子所有设置均适合高级用户使用*****************<br />
　　<br />
　　********初学者请陪同熟悉电脑操作和有一定电脑经验使用者陪同一起操作********************************<br />
　　<br />
　　<br />
　　***********如带来不便，敬请原谅**************************<br />
　　<br />
　　（一）不会做备份的朋友，请使用Windows忧化大师-系统清理维护-其他忧化选项：进入介面即可看到。将备份路径：设置为&#8220;A盘&#8221;，然后手动按&#8220;备份&#8221;键即可进行备份。<br />
　　<br />
　　（二）如要恢复注意事项，恢复时，请把26条规则，33条规则，还原为&#8220;未配置&#8221;，即可进行正常还原恢复工作特别注意的是，恢复后重新启动计算机时，将会出现类似安全模式的菜单栏，请选择&#8220;最后一次正确的配置），其他千万别选，一但误选将会无法登录进入系统窗口，带来无穷后果。）<br />
　　<br />
　　（三）或用&#8220;搜索&#8221;功能进行搜索&#8220;regedit.exe&#8221;，用一张空白软盘，单独把整个&#8220;注册表&#8221;备份好。<br />
　　（如要恢复，必须登录DOS进行还原恢复，恢复方法如下：请注意格式：<br />
　　A：dir<br />
　　A：copy&nbsp;a:regedit.exe&nbsp;c:windows\regedit.exe<br />
　　(Y/N)<br />
　　选择&#8220;Y&#8221;<br />
　　即可开始还原恢复注册表..............................................(注：如果你的系统默认安<br />
　　<br />
　　装路径为：D盘，E盘......H盘等，相应转换恢复路径即可。例如：安装盘在D盘，即将&nbsp;<br />
　　<br />
　　c:windows\regedit.exe转为d:windows\regedit.exe即可。<br />
　　<br />
　　（四）因为要把以上所有规则都设置，会占极大时间，最好事先设置规则前备份一次，然后在设置完所有规则后再用另外一个空白软盘备份一次，这样会大大提高工作效率。如恢复后，觉得系统变慢，或者其他情况，请使用Windows忧化大师V5.2注册版-系统清理维护-注册信息清理:进入介面，选择&#8220;扫描&#8221;，将出现的所有子键，&#8220;全部删除&#8221;即可相应提升和还原系统性能和速度。<br />
　　<br />
　　（注：如要使用&#8220;还原系统&#8221;功能进行备份，如看到有关于&#8220;系统还原&#8221;的设置规则，请忽略不动，如你<br />
　　<br />
　　已设置前将&#8220;系统还原&#8221;以关闭，请将其设置为&#8220;打开&#8221;，即可，以免带来不便，敬请注意。做到以上放心和安心进行设置了。<br />
　　（新增与补充规则设置）<br />
　　<br />
　　本帖子所有规则都很重要，请朋友们高度重视！以免日后带来后患！！！！<br />
　　<br />
　　<br />
　　<br />
　　本帖子已将重要存在的安全隐患，都一一列举出来了，如按照本帖子一&nbsp;一列举出来的规则设置加上配合杀毒软件和防火壁同时运用，以及及时升级各方面安全补丁，相信，你的系统安全性将会进入前所没有的高峰！！<br />
　　<br />
　　<br />
　　（一）计算机配置-管理模板-Windows组件-Internet&nbsp;Explorer:右边菜单栏分别查找：&#8220;安全区域：禁止用更改策略&#8221;，&#8220;安全区域：禁止用用户添加或删除站点&#8221;，&#8220;禁止Internet&nbsp;Explorer组件的自动安装&#8221;，&#8220;禁用定期检查Internet&nbsp;Explorer软件更新&#8221;，&#8220;禁用程序启动时的软件更新外壳通知&#8221;，分别设置为&#8220;已启用&#8221;，即可。（注：有关说明请查看说明书。）<br />
　　<br />
　　（二）用户配置-管理模板-Windows组件-Internet&nbsp;Explorer:右边菜单栏除了&#8220;对拨号连接使用自动检测&#8221;，&#8220;禁用表单的自动完成功能&#8221;，&#8220;搜索：禁用自定义搜索&#8221;三项设置之外，全部均可设置为&#8220;已启用，即可。（特别说明：对于&#8220;IE浏览器&#8221;的属性设置最为不陌生不过了，应该对它的属性设置会有一定知识和了解的。以上规则设置，是在你设置&#8220;IE浏览器&#8221;的属性为最佳状态时，方可按以上规则设置。当你再想把&#8220;IE浏览器&#8221;的属性设置时，把以上操作还原为&#8220;未配置&#8221;即可进行设置。）<br />
　　<br />
　　（三）用户配置-管理模板-Windows组件-Internet&nbsp;Explorer-Internet&nbsp;控制面板：如果右边菜单里的所有设置分别设置为&#8220;已启用&#8221;，那么将在&#8220;IE浏览器&#8221;的属性的有关&#8220;菜单项&#8221;名称将会消失和禁用。（注：但这个一般情况下，是没有必要动的，不过本作者想更详细说明一下而已。如有兴趣的朋友，可进行自定义设置一下。如设置时，可分别进入&#8220;IE浏览器&#8221;的属性栏，看看有什么变化，你就会知道和明白相应关联功能的作用了。）<br />
　　<br />
　　（四）计算机配置-管理模板-网络-QoS数据包调度程序：右框菜单栏查找&#8220;设置定时器分辨率&#8221;，选择&#8220;已启用&#8221;，在下面选框&#8220;定时单位（以微秒计）&#8221;：设置为&#8220;0&#8221;，即可。（注：参数可自由设定。）（特别说明：设置完以后，看看你的电脑上网的时候，是否有加快的反应和使用应用软件和其他方面的性能是否有所提高。）<br />
　　<br />
　　（五）用户配置-管理模板-系统：右框菜单栏查找&#8220;不要运行指定的windows程序&#8221;，进入属性选择&#8220;已启用&#8221;，在下面选框&#8220;不允许的应用程序的列表中进入&#8220;显示&#8221;，按&#8220;添加&#8221;键进行任意自定义添加应用程序，即可。（注：这种方法与下面帖子设置区别就不多说了，不过要说一下，这条没有禁止在运动项输入&#8220;gpedit.msc&#8221;命令，再深入了解，看看下面帖子就知道了。添加方法下面有说，请仔细查看。）<br />
　　<br />
　　（六）用户配置-管理模板-系统：右框菜单栏查找&#8220;只运行许可的windows程序&#8221;，双击进入属性，选择&#8220;已启用&#8221;，在下面框选&#8220;允许的应用程序列表&#8221;点击&#8220;显示&#8221;，按&#8220;添加&#8221;键，即可自定义添加程序。（注：不知道怎么添加的朋友，在你桌面上某一个图标，右键单击，进入属性，举个例子，例如：C:\3dsmax5\3dsmax.exe&nbsp;就把&#8220;3dsmax.exe&#8221;，最后一个后缀相应复制添加进&#8220;允许的应用程序列表&#8221;中就可以了，其他一切应用程序将不能点击登录，只要自己试试就明白了。）<br />
　　<br />
　　（&#8220;特别说明&#8221;：如果万一连同1条规则-&#8220;禁止访问控制面板&#8221;，33条规则-&#8220;阻止访问注册表编辑工具&#8221;，51条规则-&#8220;关闭创建系统还原检查点&#8221;，57条规则-&#8220;关闭系统还原&#8221;，都已经选择&#8220;已启用&#8221;，并且你都设置本条规则，这时你就不能够在运动项输入&#8220;gpedit.msc&#8221;命令,进入&#8220;组策略&#8221;进行任何设置。看起来这条规则连同我所说以上规则一起共用，那整个系统的功能就等同全部费掉了，是不是很恐怖呀！不要害怕！用&#8220;安全模式&#8221;进入登录介面窗口后，在&#8220;运行&#8221;项里输入&#8220;gpedit.msc&#8221;命令，把这条规则取消即可还原恢复，再进入&#8220;正常模式&#8221;，再一次在&#8220;运行&#8221;项里输入&#8220;gpedit.msc&#8221;命令，即可进行任何设置，又把整个系统的生命力还原过来了。此方法千万不要用来在别人家的电脑玩呀！不会恢复的朋友，真的会害得人家不知道怎么办的。哭笑不得，只适合用来学习和研究，万一有人在你家的电脑使用这种方法把你<br />
　　电脑的功能全部禁止，就可以用此方法恢复。不然，在你没有任何预防和备份的情况，就等着重装系统了。黑客们也特别喜欢这样做，通过修改注册表，也可以实施这种效果！33条规则-&#8220;阻止访问注册表编辑工具&#8221;这一条就有这个好处呀！）<br />
</div>
<img src ="http://www.blogjava.net/yukui/aggbug/161309.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yukui/" target="_blank">yukui</a> 2007-11-18 00:08 <a href="http://www.blogjava.net/yukui/archive/2007/11/18/161309.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>