﻿<?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&nb