<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>angeldhp</title>
    <description></description>
    <link>http://angeldhp.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>CSS中filter学习</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/146616" style="color:red;">http://angeldhp.javaeye.com/blog/146616</a>&nbsp;
          发表时间: 2007年12月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1．CSS静态滤镜样式 （filter）（只有IE4.0以上支持）<br />　　CSS静态滤镜样式的使用方法：{ filter : filtername( parameters1, parameters2, ...) }<br /><br />Filter样式 简要说明 支持参数 <br />alpha 设置图片或文字的不透明度 opacity、finishOpacity、style、startX、startY、finishX、finishY、add、direction、strength <br />blur 在指定的方向和位置上产生动感模糊效果 add、direction、strength <br />chroma 对所选择的颜色进行透明处理 color <br />dropShadow 在指定的方向和位置上产生阴影 color、offX、offY、positive <br />flipH 沿水平方向翻转对象 　 <br />flipV 沿垂直方向翻转对象 　 <br />glow 在对象周围上发光 color、strength <br />gray 将对象以灰度处理 　 <br />invert 逆转对象颜色 　 <br />light 对对象进行模拟光照 　 <br />mask 对对象生成掩膜 color <br />shadow 沿对象边缘产生阴影 color、direction <br />wave 在垂直方向产生正弦波形 add、freq、lightStrength、phase、strength <br />xray 改变对象颜色深度，并绘制黑白图象 　 <br /><br />以上就是静态滤镜的全部内容，要注意的是CSS是区分大小写的！<br />2．CSS动态滤镜<br />　　动态滤镜可以为页面添加动人的淡入淡出、图象转化效果，它可以分为两种blend（混合）和reveal（显示），前者可以使对象渐渐消失或出现，后者提供了24种图象转化的效果。对于动态滤镜的调用除去象在静态滤镜中要定义的滤镜类型，参数等等，还用到脚本语言控制它的状态。<br />　　首先，在开始一个动态效果之前，先需要进行装备（Apply），然后播放（Play）动态效果，在动态效果进行中还可以中断动态效果（Stop），以上可以用下面的方法实现：<br />　　　　对象名.filters(滤镜数值).Apply()<br />　　　　对象名.filters(滤镜数值).Play()<br />　　　　对象名.filters(滤镜数值).Stop()<br />　　对于滤镜状态的判断可以通过“对象名.filters(滤镜数值).status”判断，该值为0时，表示滤镜未执行，为1时，表示滤镜已经完成，为2时表示滤镜在执行中。<br />　　在定义filter时，如上面所提到的，可以有混合（“filter:blendTrans(duration=时间数值)”，duration表示滤镜执行需要的时间，单位为秒）和显示（“filter:revealTrans(duration=时间数值,transition=过渡类型)”，过渡类型为从0－23的数值）两种。<br />　<br />　　滤镜目前还未被W3C正式承认。滤镜只是微软IE浏览器的组成部分，不能用于Netscape浏览器。制定有关标准的组织正在就此进行讨论，但尚未达成最后定论。在我看来，滤镜是一种非常有趣而且是制作精彩的视觉效果必不可少的一部分。滤镜能节省带宽，而且是你能在制作奇妙的<br />视觉设计时使用文字格式，而不必先制作庞大的文字位图以取得相同的效果。 <br />　　但由于这些功能尚未成为HTML的正式组成部分，所以并不是所有的浏览器都能看到这些特色。有些时候，你必须考虑以传统的方式制作相同的效果，当然，你不得不继续将庞大的GIF文件塞到网页之中。 <br />沉默...沉默... <br /><br />　 <br />CSS滤镜filter详解<br />语法：STYLE="filter:filtername(fparameter1, fparameter2...)"<br />（Filtername为滤镜的名称，fparameter1、fparameter2等是滤镜的参数） <br /><br />滤镜说明：<br />alpha：设置透明层次<br />blur：创建高速度移动效果，即模糊效果<br />chroma：制作专用颜色透明<br />DropShadow：创建对象的固定影子<br />FlipH：创建水平镜像图片<br />FlipV：创建垂直镜像图片<br />glow：加光辉在附近对象的边外<br />gray：把图片灰度化<br />invert：反色<br />light：创建光源在对象上<br />mask：创建透明掩膜在对象上<br />shadow：创建偏移固定影子<br />wave：波纹效果<br />Xray：使对象变得像被x光照射一样<br /><br />1、滤镜：Alpha<br />语法：STYLE="filter:Alpha(Opacity=opacity, FinishOpacity=finishopacity，Style=style, StartX=startX，StartY=startY，FinishX=finishX，FinishY=finishY)" <br />说明：<br />Opacity：起始值，取值为0～100, 0为透明，100为原图。<br />FinishOpacity：目标值。<br />Style：1或2或3<br />StartX：任意值<br />StartY：任意值<br />例子：filter:Alpha(Opacity="0",FinishOpacity="75",Style="2") <br />2、滤镜：blur<br />语法：STYLE="filter:Blur(Add = add, Direction = direction, Strength = strength)"<br />说明：<br />Add：一般为1，或0。<br />Direction：角度，0～315度，步长为45度。<br />Strength：效果增长的数值，一般5即可。<br />例子：filter:Blur(Add="1",Direction="45",Strength="5")<br />3、滤镜：Chroma<br />语法：STYLE="filter:Chroma(Color = color)"<br />说明：color：#rrggbb格式，任意。<br />例子：filter:Chroma(Color="#FFFFFF")<br />4、滤镜：DropShadow<br />语法：STYLE="filter:DropShadow(Color=color, OffX=offX, OffY=offY, Positive=positive)"<br />说明：Color:#rrggbb格式，任意。<br />Offx：X轴偏离值。<br />Offy：Y轴偏离值。<br />Positive：1或0。<br />例子：filter:DropShadow(Color="#6699CC",OffX="5",OffY="5",Positive="1")<br />5、滤镜：FlipH<br />语法：STYLE="filter:FlipH" <br />例子：filter:FlipH <br />6、滤镜：FlipV<br />语法：STYLE="filter:FlipV"<br />例子：filter:FlipV <br />7、滤镜：glow<br />语法：STYLE="filter:Glow(Color=color, Strength=strength)"<br />说明：<br />Color：发光颜色。<br />Strength：强度(0－100)<br />例子：filter:Glow(Color="#6699CC",Strength="5")<br />8、滤镜：gray<br />语法：STYLE="filter:Gray"<br />例子：filter:Gray<br />9、滤镜：invert<br />语法：STYLE="filter:Invert"<br />例子：filter:Invert<br />10、滤镜：mask<br />语法：STYLE="filter:Mask(Color=color)"<br />例子：filter:Mask (Color="#FFFFE0")<br />11、滤镜：shadow<br />语法：filter:Shadow(Color=color, Direction=direction)<br />说明：<br />Color：#rrggbb格式。<br />Direction：角度，0－315度，步长为45度。<br />例子：filter:Shadow (Color="#6699CC", Direction="135")<br />12、滤镜：wave<br />语法：filter: Wave(Add=add，Freq=freq，LightStrength=strength，Phase=phase， Strength=strength)<br />说明：<br />Add：一般为1，或0。<br />Freq：变形值。<br />LightStrength：变形百分比。<br />Phase：角度变形百分比。<br />Strength：变形强度。<br />例子：filter: wave(Add="0", Phase="4", Freq="5", LightStrength="5", Strength="2")<br />13、滤镜：Xray<br />语法：STYLE="filter:Xray" <br />例子：filter:Xray
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/146616#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 07 Dec 2007 12:11:26 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/146616</link>
        <guid>http://angeldhp.javaeye.com/blog/146616</guid>
      </item>
      <item>
        <title>css之FILTER:progid:DXImageTransform.Microsoft.Gradient使用 </title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/146612" style="color:red;">http://angeldhp.javaeye.com/blog/146612</a>&nbsp;
          发表时间: 2007年12月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          css之FILTER:progid:DXImageTransform.Microsoft.Gradient使用 <br /><br />FILTER:progid:DXImageTransform.Microsoft.Gradient使用 <br />语法： <br />filter:progid:DXImageTransform.Microsoft.Gradient(enabled=bEnabled,startColorStr=iWidth,endColorStr=iWidth) <br />属性： <br />enabled:可选项。布尔值(Boolean)。设置或检索滤镜是否激活。 true | false <br />　　true: 默认值。滤镜激活。 <br />　　false:滤镜被禁止。 <br /><br />startColorStr:可选项。字符串(String)。设置或检索色彩渐变的开始颜色和透明度。 <br />　　其格式为 #AARRGGBB 。 AA 、 RR 、 GG 、 BB 为十六进制正整数。取值范围为 00 - FF 。 RR 指定红色值， GG 指定绿色值， BB 指定蓝色值，参阅 #RRGGBB 颜色单位。 AA 指定透明度。 00 是完全透明。 FF 是完全不透明。超出取值范围的值将被恢复为默认值。 <br />　　取值范围为 #FF000000 - #FFFFFFFF 。默认值为 #FF0000FF 。不透明蓝色。 <br />EndColorStr:可选项。字符串(String)。设置或检索色彩渐变的结束颜色和透明度。参阅 startColorStr 属性。默认值为 #FF000000 。不透明黑色。 <br />特性： <br />Enabled:可读写。布尔值(Boolean)。参阅 enabled 属性。 <br />GradientType:可读写。整数值(Integer)。设置或检索色彩渐变的方向。1 | 0 <br />　　1:默认值。水平渐变。 <br />　　0:垂直渐变。 <br />StartColorStr:可读写。字符串(String)。参阅 startColorStr 属性。 <br />StartColor:可读写。整数值(Integer)。设置或检索色彩渐变的开始颜色。 取值范围为 0 - 4294967295 。 0 为透明。 4294967295 为不透明白色。 <br />EndColorStr:可读写。字符串(String)。设置或检索色彩渐变的结束颜色和透明度。参阅 startColorStr 属性。默认值为 #FF000000 。不透明黑色。 <br />EndColor:可读写。整数值(Integer)。设置或检索色彩渐变的结束颜色。 取值范围为 0 - 4294967295 。 0 为透明。 4294967295 为不透明白色。当在脚本中使用此特性时，也可以用十六进制格式： 0xAARRGGBB 。 <br />说明： <br />在对象的背景和内容之间显示定制的色彩层。 <br />当此效果通过转变显示时，在渐变册色彩层之上的文本程序性的初始化为透明的，当色彩渐变实现后，文本颜色会以其定义的值更新。 <br />示例： <br />#idDiv{position:absolute; left:140px; height:400; width:400;filter:progid:DXImageTransform.Microsoft.gradient(enabled='false',startColorstr=#550000FF, endColorstr=#55FFFF00) ;}<br /><br />#idDiv{position:absolute; left:140px; height:400; width:400;filter:progid:DXImageTransform.Microsoft.gradient() ;} <br />具体使用 <br />&lt;table border=1 width=100%> <br />&lt;tr> <br />&lt;td STYLE="FILTER:progid:DXImageTransform.Microsoft.Gradient(gradientType=1,startColorStr='#ffffff',endColorStr='#ff0000')"> &lt;/td> <br />&lt;/tr> <br />&lt;/table>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/146612#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 07 Dec 2007 12:07:39 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/146612</link>
        <guid>http://angeldhp.javaeye.com/blog/146612</guid>
      </item>
      <item>
        <title>JAVA几个常见错误简析</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/102838" style="color:red;">http://angeldhp.javaeye.com/blog/102838</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><font size="3"><font face="宋体"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="COLOR: black">JAVA</span><span style="COLOR: black">几个常见错误简析</span></strong><strong><span lang="EN-US" style="FONT-WEIGHT: normal; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-bidi-font-family: 宋体"><o:p></o:p></span></strong></font></font></p>
<p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><font size="3"><strong><span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">1</span></strong><strong><span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">，空指针错误<span lang="EN-US">&nbsp;java.lang.NullPointerException</span></span></strong></font><span lang="EN-US" style="COLOR: black"><font size="3" face="宋体">&nbsp;&nbsp; <br />
<br />
</font></span><span style="FONT-SIZE: 9.5pt; COLOR: black"><font face="宋体">使用基本的<span lang="EN-US">JAVA</span>数据类型，变量的值要么已经是默认值，如果没有对其正常赋值，程序便不能通过编译，因此使用基本的<span lang="EN-US">JAVA</span>数据类型<span lang="EN-US">(double,float,boolean,char,int,long)</span>一般不会引起空指针异常。由此可见，空指针异常主要跟与对象的操作相关。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>下面先列出了可能发生空指针异常的几种情况及相应解决方案：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>不管对象是否为空就直接开始使用。</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
<br />
(JSP)</span>代码段<span lang="EN-US">1</span>：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
out.println(request.getParameter(&quot;username&quot;));&nbsp; <br />
<br />
</span>描述：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>代码段<span lang="EN-US">1</span>的功能十分简单，就是输出用户输入的表域<span lang="EN-US">&quot;username&quot;</span>的值。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>说明：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>看上去，上面的语句找不出什么语法错误，而且在大多数情况下也遇不到什么问题。但是，如果某个用户在输入数据时并没有提供表单域<span lang="EN-US">&quot;username&quot;</span>的值，或通过某种途径绕过表单直接输入时，此时<span lang="EN-US">request.getParameter(&quot;username&quot;)</span>的值为空（不是空字符串，是空对象<span lang="EN-US">null</span>。），<span lang="EN-US">out</span>对象的<span lang="EN-US">println</span>方法是无法直接对空对象操作，因此代码段<span lang="EN-US">1</span>所在的<span lang="EN-US">JSP</span>页面将会抛出<span lang="EN-US">&quot;java.lang.NullPointerException&quot;</span>异常。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>即使对象可能为空时，也调用<span lang="EN-US">java.lang.Object</span>或<span lang="EN-US">Object</span>对象本身的一些方法如<span lang="EN-US">toString(),&nbsp;equals(Object&nbsp;obj)</span>等操作。</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
<br />
(JSP)</span>代码段<span lang="EN-US">2</span>：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
String&nbsp;userName&nbsp;=&nbsp;request.getParameter(&quot;username&quot;);&nbsp; <br />
<br />
If&nbsp;(userName.equals(&quot;root&quot;))&nbsp; <br />
<br />
{....}&nbsp; <br />
<br />
</span>描述：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>代码段<span lang="EN-US">2</span>的功能是检测用户提供的用户名，如果是用户名称为<span lang="EN-US">&quot;root&quot;</span>的用户时，就执行一些特别的操作。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>说明：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>在代码段<span lang="EN-US">2</span>中，如果有用户没有提供表单域<span lang="EN-US">&quot;username&quot;</span>的值时，字符串对象<span lang="EN-US">userName</span>为<span lang="EN-US">null</span>值，不能够将一个<span lang="EN-US">null</span>的对象与另一个对象直接比较，同样，代码段<span lang="EN-US">2</span>所在的<span lang="EN-US">JSP</span>页面就会抛出<span lang="EN-US">(java.lang.NullPointerException)</span>空指针错误。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
(JSP)</span>代码段<span lang="EN-US">3</span>：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
String&nbsp;userName&nbsp;=&nbsp;session.getAttribute(&quot;session.username&quot;).toString();&nbsp; <br />
<br />
</span>描述：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>代码段<span lang="EN-US">3</span>的功能是将<span lang="EN-US">session</span>中<span lang="EN-US">session.username</span>的值取出，并将该值赋给字符串对象<span lang="EN-US">&nbsp;userName</span>。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>说明：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>在一般情况下，如果在用户已经进行某个会话，则不会出现什么问题；但是，如果此时应用服务器重新启动，而用户还没有重新登录，（也可能是用户关闭浏览器，但是仍打开原来的页面。）那么，此时该<span lang="EN-US">session</span>的值就会失效，同时导致<span lang="EN-US">session</span>中的<span lang="EN-US">session.username</span>的值为空。对一个为<span lang="EN-US">null</span>的对象的直接执行<span lang="EN-US">toString()</span>操作，就会导致系统抛出<span lang="EN-US">(java.lang.NullPointerException)</span>空指针异常。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>解决方案：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>为了确保进行操作或引用的对象非空，假若我们要对某对象进行操作或引用，我们首先去检查该对象是否已经实例化且不为空；并且在系统中加入针对对象为空时情况的处理。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>如：采用<span lang="EN-US">String</span>对象保存用户提交的结果；在如果涉及对象的操作时，先检测其是否为空后，检查到对象为空后，可再选择进行以下任一种处理方式：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>处理方式<span lang="EN-US">&nbsp;1)&nbsp;</span>检查到对象为空时，设置对象值为空字符串或一个默认值；</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
<br />
</span>处理方式<span lang="EN-US">&nbsp;2)&nbsp;</span>检测到对象为空时，根本不执行某操作，直接跳转到其他处理中。</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
<br />
</span>处理方式<span lang="EN-US">&nbsp;3)&nbsp;</span>检查到对象为空时，提示用户操作有错误。</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
<br />
</span>将代码段<span lang="EN-US">2</span>按以上方式进行改写，得到：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>方式<span lang="EN-US">1</span>：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
String&nbsp;userName&nbsp;=&nbsp;request.getParameter(&quot;username&quot;);&nbsp; <br />
<br />
//&nbsp;</span>该变量值为空时，转化为默认空字符串</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
If&nbsp;(userName&nbsp;==&nbsp;null)&nbsp; <br />
<br />
userName&nbsp;=&nbsp;&quot;&quot;;&nbsp; <br />
<br />
If&nbsp;(userName.equals(&quot;root&quot;))&nbsp; <br />
<br />
{..........}&nbsp; <br />
<br />
</span>方式<span lang="EN-US">2</span>：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
String&nbsp;userName&nbsp;=&nbsp;request.getParameter(&quot;username&quot;);&nbsp; <br />
<br />
//&nbsp;</span>该变量值为空时，转化为默认空字符串，不执行有关操作。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
If&nbsp;(usreName&nbsp;!=&nbsp;null)&nbsp; <br />
<br />
{&nbsp; <br />
<br />
If&nbsp;(userName.equals(&quot;root&quot;))&nbsp; <br />
<br />
{..........}&nbsp; <br />
<br />
}&nbsp; <br />
<br />
</span>方式<span lang="EN-US">3</span>：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
String&nbsp;userName&nbsp;=&nbsp;request.getParameter(&quot;username&quot;);&nbsp; <br />
<br />
//&nbsp;</span>该变量值为空时，转化为默认空字符串，不执行有关操作。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
If&nbsp;(usreName&nbsp;==&nbsp;null)&nbsp; <br />
<br />
{&nbsp; <br />
<br />
//&nbsp;</span>提示用户输入信息为空</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
}&nbsp; <br />
<br />
</span>实际中，上面提供到三种处理方式也同样适用于其他异常的处理：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>异常处理方式<span lang="EN-US">&nbsp;1)&nbsp;</span>检查到异常出现，设置对象值为空字符串或一个默认值；</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
<br />
</span>异常处理方式<span lang="EN-US">&nbsp;2)&nbsp;</span>检测到异常出现，根本不执行某操作，直接跳转到其他处理中。</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
<br />
</span>异常处理方式<span lang="EN-US">&nbsp;3)&nbsp;</span>检查到异常出现，提示用户操作有错误。<span lang="EN-US"><o:p></o:p></span></font></span></p>
<p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><font size="3"><strong><span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">2</span></strong><strong><span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">，格式化数字错误<span lang="EN-US">&nbsp;java.lang.NumberFormatException</span>分析</span></strong></font><span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black"><font face="宋体">&nbsp; <br />
<br />
(JSP)</font></span><span style="FONT-SIZE: 9.5pt; COLOR: black"><font face="宋体">代码段<span lang="EN-US">3</span>：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
String&nbsp;s_memberid&nbsp;=&nbsp;request.getParameter(&quot;memberid&quot;);&nbsp; <br />
<br />
int&nbsp;i_memberid&nbsp;=&nbsp;Integer.parseInt(s_memberid);&nbsp; <br />
<br />
</span>描述：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>以上代码段的作用是将用户提交的表单域<span lang="EN-US">memberid</span>的值转化为整数。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>说明：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>如果用户输入正确的数字如：<span lang="EN-US">1082</span>，不会有什么问题。然而，如果用户输入<span lang="EN-US">T1082</span>时，由于<span lang="EN-US">T1082</span>不是合法的数字格式，<span lang="EN-US">JAVA</span>无法将其转化为合适的数字，导致抛出<span lang="EN-US">java.lang.NumberFormatException</span>数字格式化异常。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>解决方案：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>在任何用到字符串转化为数字时，捕捉异常，对异常情况进行处理按异常处理方式<span lang="EN-US">1</span>：检查到异常发生，即赋给某变量一个默认值；（可能在某些情况下导致一其他程序错误<span lang="EN-US">[</span>比方说其他模块中并未处理您所赋予的默认值情况，可能导致一些异常或错误出现。<span lang="EN-US">]</span>）按异常处理方式<span lang="EN-US">3</span>：检查到异常发生，提示用户使用正确的数字格式输入。（实现稍微麻烦一点，但是将错误阻挡在您的模块前<span lang="EN-US">[</span>即您提供给其他模块的值均是安全的<span lang="EN-US">]</span>。）按这种方法对程序进行改写，在编程时稍微麻烦一点，但这的确会您的模块更加健壮。将代码段<span lang="EN-US">3</span>按以上要求进行改写，得到：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
String&nbsp;s_memberid&nbsp;=&nbsp;request.getParameter(&quot;memberid&quot;);&nbsp; <br />
<br />
int&nbsp;i_memberid;&nbsp; <br />
<br />
try&nbsp; <br />
<br />
{&nbsp; <br />
<br />
i_memberid&nbsp;=&nbsp;Integer.parseInt(s_memberid);&nbsp; <br />
<br />
...&nbsp; <br />
<br />
}&nbsp; <br />
<br />
catch(NumberFormatException&nbsp;nfe)&nbsp; <br />
<br />
{&nbsp; <br />
<br />
//</span>方式<span lang="EN-US">1</span>：（简单，直接给该编号为一个默认值<span lang="EN-US">0</span>；）</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
i_memberid&nbsp;=&nbsp;0;&nbsp; <br />
<br />
//</span>方式<span lang="EN-US">2</span>：（很简陋的做法，建议使用更友好的提示方式）</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
out.println(&quot;&lt;script&gt;alert(&rsquo;</span>您提供的用户编号有误，请重新输入。</font><span lang="EN-US"><font face="宋体">&rsquo;;history.go(-1);&lt;/script&gt;&quot;);&nbsp; <br />
<br />
}<o:p></o:p></font></span></span></p>
<p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><strong><span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p><font size="3">&nbsp;</font></o:p></span></strong></p>
<p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><strong><span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><o:p><font size="3">&nbsp;</font></o:p></span></strong></p>
<p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><font size="3"><strong><span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">3</span></strong><strong><span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">，字符串越界错误<span lang="EN-US">&nbsp;java.lang.StringIndexOutOfBoundsException</span>等字符串类相关错误</span></strong></font><span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black"><font face="宋体">&nbsp;<o:p></o:p></font></span></p>
<p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><span style="FONT-SIZE: 9.5pt; COLOR: black"><font face="宋体">代码段<span lang="EN-US">4</span>：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
String&nbsp;s_all_power&nbsp;=&nbsp;&quot;1010011&quot;;&nbsp; <br />
<br />
String&nbsp;s_access_power&nbsp;=&nbsp;s_all_power.substring(3,4);&nbsp; <br />
<br />
</span>描述：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>以上代码段功能的功能是获取字符串<span lang="EN-US">s_all_power</span>中的第<span lang="EN-US">4</span>个字符。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>说明：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>一般情况下，程序不会有问题，如果由于某种原因，<span lang="EN-US">s_all_power</span>长度变短，程序就会抛出字符串错误。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>解决方案：对字符串进行截取<span lang="EN-US">(substring,&nbsp;charAt)</span>、转换为字节数组<span lang="EN-US">(getBytes)</span>，字符数组转换为字符串（<span lang="EN-US">valueOf</span>）操作时，先对操作字符串对象的存在性（是否为空）及长度进行检查后，再进行操作。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>改写得到：</font><span lang="EN-US"><font face="宋体">&nbsp; <br />
<br />
String&nbsp;s_all_power&nbsp;=&nbsp;&quot;1010011&quot;;&nbsp; <br />
<br />
if&nbsp;(s_all_power.length&gt;4)&nbsp;&nbsp; <br />
<br />
String&nbsp;s_access_power&nbsp;=&nbsp;s_all_power.substring(3,4);&nbsp;<o:p></o:p></font></span></span></p>
<p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><font size="3"><strong><span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">4</span></strong><strong><span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">。类定义未找到错误<span lang="EN-US">&nbsp;java.lang.NoClassDefFoundError</span></span></strong><font face="宋体"><span lang="EN-US" style="COLOR: black">&nbsp;</span><span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black"><o:p></o:p></span></font></font></p>
<p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><span style="FONT-SIZE: 9.5pt; COLOR: black"><font face="宋体">原因：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>由于该程序调用到的<span lang="EN-US">JAVA</span>类文件没有正确上传；</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
<br />
</span>解决方案：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>将<span lang="EN-US">JAVA</span>类文件重新上传。</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
JAVA</span>类文件已经上传，但应用服务器并未检测到，建议将<span lang="EN-US">JSP</span>页面重新更新。</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
<br />
</span>解决方案：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
</span>将<span lang="EN-US">JSP</span>页面更新并上传；或将应用程序服务器进行重新启动。</font><span lang="EN-US"><font face="宋体">&nbsp; <br />
<br />
</font></span></span><font size="3"><strong><span lang="EN-US" style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">5</span></strong><strong><span style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">，<span lang="EN-US">JAVA</span>错误<span lang="EN-US">&nbsp;java.lang.Error</span></span></strong></font><span lang="EN-US" style="COLOR: black"><font size="3" face="宋体">&nbsp;&nbsp; <br />
<br />
</font></span><span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black"><br />
</span><span style="FONT-SIZE: 9.5pt; COLOR: black"><font face="宋体">原因</font><font face="宋体"><span lang="EN-US">:&nbsp; <br />
1.</span>对系统所访问外部资源，未执行关闭操作，导致外部资源大量浪费，最终可能导致系统无法正常运行；</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
2.</span>对系统所访问的外部资源关闭次数太多，外部系统无法正常处理；</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
3.</span>系统访问的外部资源出现异常情况。<span lang="EN-US">&nbsp;&nbsp; <o:p></o:p></span></font></span></p>
<p style="BACKGROUND: #f9fcfe; LINE-HEIGHT: 17.65pt"><span lang="EN-US" style="FONT-SIZE: 9.5pt; COLOR: black"><br />
</span><span style="FONT-SIZE: 9.5pt; COLOR: black"><font face="宋体">解决方案：</font><font face="宋体"><span lang="EN-US">&nbsp; <br />
<br />
1.</span>访问外部资源前，首先检查该资源<span lang="EN-US">(</span>如数据库<span lang="EN-US">)</span>是否可正常连接或操作。</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
2.</span>访问外部资源时，如果进行了连接，一定进行关闭操作，并仅进行一次关闭操作。</font><font face="宋体"><span lang="EN-US">&nbsp;&nbsp; <br />
3.</span>尽量在同一操作中共享外部资源，以减少该操作对资源的消费，提高程序的执行效率。<span lang="EN-US"><o:p></o:p></span></font></span></p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/102838#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 15:50:27 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/102838</link>
        <guid>http://angeldhp.javaeye.com/blog/102838</guid>
      </item>
      <item>
        <title>常用ASCII 码对照表 </title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/102785" style="color:red;">http://angeldhp.javaeye.com/blog/102785</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>
<table cellspacing="0" border="0" width="90%" cellpadding="0">
    <tbody>
        <tr>
            <td class="hang" height="45"><strong><font size="3"></font></strong></td>
        </tr>
        <tr>
            <td class="hang">
            <table cellspacing="0" border="1" bordercolor="#000000" width="468" cellpadding="5">
                <tbody>
                    <tr>
                        <td>ASCII码</td>
                        <td>键盘</td>
                        <td>ASCII 码</td>
                        <td>键盘</td>
                        <td>ASCII 码</td>
                        <td>键盘</td>
                        <td>ASCII 码</td>
                        <td>键盘</td>
                    </tr>
                    <tr>
                        <td>27</td>
                        <td>ESC</td>
                        <td>32</td>
                        <td>SPACE</td>
                        <td>33</td>
                        <td>!</td>
                        <td>34</td>
                        <td>&quot;</td>
                    </tr>
                    <tr>
                        <td>35</td>
                        <td>#</td>
                        <td>36</td>
                        <td>$</td>
                        <td>37</td>
                        <td>%</td>
                        <td>38</td>
                        <td>&amp;</td>
                    </tr>
                    <tr>
                        <td>39</td>
                        <td>'</td>
                        <td>40</td>
                        <td>(</td>
                        <td>41</td>
                        <td>)</td>
                        <td>42</td>
                        <td>*</td>
                    </tr>
                    <tr>
                        <td>43</td>
                        <td>+</td>
                        <td>44</td>
                        <td>'</td>
                        <td>45</td>
                        <td>-</td>
                        <td>46</td>
                        <td>.</td>
                    </tr>
                    <tr>
                        <td>47</td>
                        <td>/</td>
                        <td>48</td>
                        <td>0</td>
                        <td>49</td>
                        <td>1</td>
                        <td>50</td>
                        <td>2</td>
                    </tr>
                    <tr>
                        <td>51</td>
                        <td>3</td>
                        <td>52</td>
                        <td>4</td>
                        <td>53</td>
                        <td>5</td>
                        <td>54</td>
                        <td>6</td>
                    </tr>
                    <tr>
                        <td>55</td>
                        <td>7</td>
                        <td>56</td>
                        <td>8</td>
                        <td>57</td>
                        <td>9</td>
                        <td>58</td>
                        <td>:</td>
                    </tr>
                    <tr>
                        <td>59</td>
                        <td>;</td>
                        <td>60</td>
                        <td>&lt;</td>
                        <td>61</td>
                        <td>=</td>
                        <td>62</td>
                        <td>&gt;</td>
                    </tr>
                    <tr>
                        <td>63</td>
                        <td>?</td>
                        <td>64</td>
                        <td>@</td>
                        <td>65</td>
                        <td>A</td>
                        <td>66</td>
                        <td>B</td>
                    </tr>
                    <tr>
                        <td>67</td>
                        <td>C</td>
                        <td>68</td>
                        <td>D</td>
                        <td>69</td>
                        <td>E</td>
                        <td>70</td>
                        <td>F</td>
                    </tr>
                    <tr>
                        <td>71</td>
                        <td>G</td>
                        <td>72</td>
                        <td>H</td>
                        <td>73</td>
                        <td>I</td>
                        <td>74</td>
                        <td>J</td>
                    </tr>
                    <tr>
                        <td>75</td>
                        <td>K</td>
                        <td>76</td>
                        <td>L</td>
                        <td>77</td>
                        <td>M</td>
                        <td>78</td>
                        <td>N</td>
                    </tr>
                    <tr>
                        <td>79</td>
                        <td>O</td>
                        <td>80</td>
                        <td>P</td>
                        <td>81</td>
                        <td>Q</td>
                        <td>82</td>
                        <td>R</td>
                    </tr>
                    <tr>
                        <td>83</td>
                        <td>S</td>
                        <td>84</td>
                        <td>T</td>
                        <td>85</td>
                        <td>U</td>
                        <td>86</td>
                        <td>V</td>
                    </tr>
                    <tr>
                        <td>87</td>
                        <td>W</td>
                        <td>88</td>
                        <td>X</td>
                        <td>89</td>
                        <td>Y</td>
                        <td>90</td>
                        <td>Z</td>
                    </tr>
                    <tr>
                        <td>91</td>
                        <td>[</td>
                        <td>92</td>
                        <td>\</td>
                        <td>93</td>
                        <td>]</td>
                        <td>94</td>
                        <td>^</td>
                    </tr>
                    <tr>
                        <td>95</td>
                        <td>_</td>
                        <td>96</td>
                        <td>`</td>
                        <td>97</td>
                        <td>a</td>
                        <td>98</td>
                        <td>b</td>
                    </tr>
                    <tr>
                        <td>99</td>
                        <td>c</td>
                        <td>100</td>
                        <td>d</td>
                        <td>101</td>
                        <td>e</td>
                        <td>102</td>
                        <td>f</td>
                    </tr>
                    <tr>
                        <td>103</td>
                        <td>g</td>
                        <td>104</td>
                        <td>h</td>
                        <td>105</td>
                        <td>i</td>
                        <td>106</td>
                        <td>j</td>
                    </tr>
                    <tr>
                        <td>107</td>
                        <td>k</td>
                        <td>108</td>
                        <td>l</td>
                        <td>109</td>
                        <td>m</td>
                        <td>110</td>
                        <td>n</td>
                    </tr>
                    <tr>
                        <td>111</td>
                        <td>o</td>
                        <td>112</td>
                        <td>p</td>
                        <td>113</td>
                        <td>q</td>
                        <td>114</td>
                        <td>r</td>
                    </tr>
                    <tr>
                        <td>115</td>
                        <td>s</td>
                        <td>116</td>
                        <td>t</td>
                        <td>117</td>
                        <td>u</td>
                        <td>118</td>
                        <td>v</td>
                    </tr>
                    <tr>
                        <td>119</td>
                        <td>w</td>
                        <td>120</td>
                        <td>x</td>
                        <td>121</td>
                        <td>y</td>
                        <td>122</td>
                        <td>z</td>
                    </tr>
                    <tr>
                        <td>123</td>
                        <td>{</td>
                        <td>124</td>
                        <td>|</td>
                        <td>125</td>
                        <td>}</td>
                        <td>126</td>
                        <td>~</td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/102785#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 13:39:20 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/102785</link>
        <guid>http://angeldhp.javaeye.com/blog/102785</guid>
      </item>
      <item>
        <title>反查ASCII ASCII码对照表 ASCII码查询 </title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/102781" style="color:red;">http://angeldhp.javaeye.com/blog/102781</a>&nbsp;
          发表时间: 2007年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="postTitle"><a href="http://www.cnitblog.com/flutist1225/articles/16404.html" class="postTitle2" id="viewpost1_TitleUrl">反查ASCII ASCII码对照表 ASCII码查询</a> </div>
<pre>Char  Dec  Oct  Hex | Char  Dec  Oct  Hex | Char  Dec  Oct  Hex | Char Dec  Oct   Hex<br />-------------------------------------------------------------------------------------<br />(nul)   0 0000 0x00 | (sp)   32 0040 0x20 | @      64 0100 0x40 | `      96 0140 0x60<br />(soh)   1 0001 0x01 | !      33 0041 0x21 | A      65 0101 0x41 | a      97 0141 0x61<br />(stx)   2 0002 0x02 | &quot;      34 0042 0x22 | B      66 0102 0x42 | b      98 0142 0x62<br />(etx)   3 0003 0x03 | #      35 0043 0x23 | C      67 0103 0x43 | c      99 0143 0x63<br />(eot)   4 0004 0x04 | $      36 0044 0x24 | D      68 0104 0x44 | d     100 0144 0x64<br />(enq)   5 0005 0x05 | %      37 0045 0x25 | E      69 0105 0x45 | e     101 0145 0x65<br />(ack)   6 0006 0x06 | &amp;      38 0046 0x26 | F      70 0106 0x46 | f     102 0146 0x66<br />(bel)   7 0007 0x07 | '      39 0047 0x27 | G      71 0107 0x47 | g     103 0147 0x67<br />(bs)    8 0010 0x08 | (      40 0050 0x28 | H      72 0110 0x48 | h     104 0150 0x68<br />(ht)    9 0011 0x09 | )      41 0051 0x29 | I      73 0111 0x49 | i     105 0151 0x69<br />(nl)   10 0012 0x0a | *      42 0052 0x2a | J      74 0112 0x4a | j     106 0152 0x6a<br />(vt)   11 0013 0x0b | +      43 0053 0x2b | K      75 0113 0x4b | k     107 0153 0x6b<br />(np)   12 0014 0x0c | ,      44 0054 0x2c | L      76 0114 0x4c | l     108 0154 0x6c<br />(cr)   13 0015 0x0d | -      45 0055 0x2d | M      77 0115 0x4d | m     109 0155 0x6d<br />(so)   14 0016 0x0e | .      46 0056 0x2e | N      78 0116 0x4e | n     110 0156 0x6e<br />(si)   15 0017 0x0f | /      47 0057 0x2f | O      79 0117 0x4f | o     111 0157 0x6f<br />(dle)  16 0020 0x10 | 0      48 0060 0x30 | P      80 0120 0x50 | p     112 0160 0x70<br />(dc1)  17 0021 0x11 | 1      49 0061 0x31 | Q      81 0121 0x51 | q     113 0161 0x71<br />(dc2)  18 0022 0x12 | 2      50 0062 0x32 | R      82 0122 0x52 | r     114 0162 0x72<br />(dc3)  19 0023 0x13 | 3      51 0063 0x33 | S      83 0123 0x53 | s     115 0163 0x73<br />(dc4)  20 0024 0x14 | 4      52 0064 0x34 | T      84 0124 0x54 | t     116 0164 0x74<br />(nak)  21 0025 0x15 | 5      53 0065 0x35 | U      85 0125 0x55 | u     117 0165 0x75<br />(syn)  22 0026 0x16 | 6      54 0066 0x36 | V      86 0126 0x56 | v     118 0166 0x76<br />(etb)  23 0027 0x17 | 7      55 0067 0x37 | W      87 0127 0x57 | w     119 0167 0x77<br />(can)  24 0030 0x18 | 8      56 0070 0x38 | X      88 0130 0x58 | x     120 0170 0x78<br />(em)   25 0031 0x19 | 9      57 0071 0x39 | Y      89 0131 0x59 | y     121 0171 0x79<br />(sub)  26 0032 0x1a | :      58 0072 0x3a | Z      90 0132 0x5a | z     122 0172 0x7a<br />(esc)  27 0033 0x1b | ;      59 0073 0x3b | [      91 0133 0x5b | {     123 0173 0x7b<br />(fs)   28 0034 0x1c | &lt;      60 0074 0x3c | \      92 0134 0x5c | |     124 0174 0x7c<br />(gs)   29 0035 0x1d | =      61 0075 0x3d | ]      93 0135 0x5d | }     125 0175 0x7d<br />(rs)   30 0036 0x1e | &gt;      62 0076 0x3e | ^      94 0136 0x5e | ~     126 0176 0x7e<br />(us)   31 0037 0x1f | ?      63 0077 0x3f | _      95 0137 0x5f | (del) 127 0177 0x7f</pre>
<pre>				<table><tbody><tr><th>ASCII Name </th><th align="left">Description </th><th>C Escape Sequence </th></tr><tr><td>nul </td><td>null byte </td><td align="center">\0 </td></tr><tr><td>bel </td><td>bell character </td><td align="center">\a </td></tr><tr><td>bs </td><td>backspace </td><td align="center">\b </td></tr><tr><td>ht </td><td>horizontal tab </td><td align="center">\t </td></tr><tr><td>np </td><td>formfeed </td><td align="center">\f </td></tr><tr><td>nl </td><td>newline </td><td align="center">\n </td></tr><tr><td>cr </td><td>carriage return </td><td align="center">\r </td></tr><tr><td>vt </td><td>vertical tab </td><td>&nbsp;</td></tr><tr><td>esc </td><td>escape </td><td>&nbsp;</td></tr><tr><td>sp </td><td>space </td></tr></tbody></table></pre>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/102781#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 19 Jul 2007 13:37:49 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/102781</link>
        <guid>http://angeldhp.javaeye.com/blog/102781</guid>
      </item>
      <item>
        <title>MMC 不能打开文件</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/100340" style="color:red;">http://angeldhp.javaeye.com/blog/100340</a>&nbsp;
          发表时间: 2007年07月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><strong>问题：</strong></p>
<p>---------------------------<br />
Microsoft Management Console<br />
---------------------------<br />
MMC 不能打开文件 C:\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC。</p>
<p>这可能是由于文件不存在，不是一个 MMC 控制台，或者用后来版本的 MMC 创建。也可能是由于您没有访问此文件的足够权限。<br />
---------------------------<br />
确定&nbsp;&nbsp; <br />
---------------------------<br />
扫描过硬盘<br />
重装过SQL server<br />
用sfc /scannow 扫描过<br />
都无效，我的C盘是fat32的，一直以来都没有问题</p>
<p><strong>解答</strong></p>
<p>方案a</p>
<p>看看你的硬盘上有没有这个文件,如果有,将它得到到另一个分区,看能否打开:</p>
<p>C:\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC</p>
<p>如果没有此文件,说明此文件丢失 </p>
<p>如果能复制到另一分区并打开,说明你的c:盘有问题.</p>
<p>如果不能复制,说明这个文件可能已经破坏,删除该文件.<br />
创建此文件的方法,运行对话框中输入:mmc</p>
<p><br />
控制台--添加/删除管理单元--添加--找到Microsoft SQL 企业管理器--添加--关闭--确定<br />
回到控制台</p>
<p>再:控制台--选项--控制台模式选择&quot;用户模式完全访问&quot;--将下面的选择全部取消</p>
<p>然后再:控制台--另存为--存储为:C:\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC</p>
<p><font color="#ff0000">&nbsp;(如果还不行,可以先regsvr32 C:\Windows\system32\msxml3.dll <br />
就可以搞定了)</font></p>
<p>方案b.在CMD下sfc&nbsp;/scannow，系统要XP的SP2光盘，没有此光盘。此方案失败<br />
方案c.查看MSC文件是不是和mmc.exe关联。没错<br />
方案d.在<a href="http://beta.experts-exchange.com/Ope" target="_blank">http://beta.experts-exchange.com/Ope</a>&nbsp;...&nbsp;/WinXP/Q_20649911.html找到了这个方法：<br />
在命令行下运行<br />
regsvr32&nbsp;C:\Windows\system32\msxml3.dll<br />
完成后得到系统消息<br />
C:\Windows\system32\msxml3.dll&nbsp;中的DllRegisterServer&nbsp;成功！<br />
终于用方案d搞掂了<br />
</p>
<p><br />
</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/100340#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 12 Jul 2007 09:54:38 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/100340</link>
        <guid>http://angeldhp.javaeye.com/blog/100340</guid>
      </item>
      <item>
        <title>document.all还是document.getElementsByName?</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/88084" style="color:red;">http://angeldhp.javaeye.com/blog/88084</a>&nbsp;
          发表时间: 2007年06月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          当页面上的控件同名且多个的时候,你首先做的是什么?判断长度?的确,从程序的严密角度出发,我们是需要判断长度,而且有长度和没长度是两种引用方法.我们来看:<br />
oEle= document.all.aaa ;//这里有一个aaa的对象,但我们不知道它现在长度是多少,所以没办法对它操作.因此,我们要先做判断长度的过程.如下:<br />
if(oEle.length){}else{};<br />
在两种情况下,花括号里面的内容写法也是不一样的:<br />
if(oEle.length){<br />
&nbsp;&nbsp; for(var i = 0 ;i&lt;oEle.length;i++){<br />
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;oEle[i].value........<br />
&nbsp; }<br />
}<br />
else{<br />
&nbsp;&nbsp;&nbsp;&nbsp; oEle.value........<br />
};<br />
<br />
但是这样写是不是太复杂了点?而且当花括号里面的代码比较多的时候,我们要写两遍代码,晕了先~<br />
还好有document.getElementsByName()这个方法.它对一个和多个的处理是一样的,我们可以用:<br />
oEle = document.getElementsByName('aaa')来引用<br />
当oEle只有1个的时候,那么就是oEle[0],有多个的时候,用下标法oEle[i]循环获取,是不是很简单?<br />
<br />
值得一提的是它对Name和ID的同样有效的.<br />
但是它只能应用到document对象.相对应的,还有另一个方法,可以应用的对象会更广一点:<br />
getElementsByTagName,比如我知道了一个&lt;DIV ID='aaa'&gt;&lt;input/&gt;&lt;input/&gt;......&lt;/DIV&gt;<br />
我要取DIV里面的所有input,这样写就可以了:aaa.getElementsByTagName('INPUT'),这样就有效的可以和别的DIV(比如说有个叫bbb的DIV,里面的也是一样的input)相区别.<br />
同getElementsByTagName相对应,还有一个document.body.all.tags(),能用这个方法的对象比getElementsByTagName要小得多.但比getElementsByName要多.<br />
到这里我们还要提一下<strong>getElementById,它也是只有document对象才能使用,而且返回的是数组的第一个元素,呵呵,它的方法名都写明了是getElement而不是getElements,所以,千万不要搞浑了.<br />
</strong>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/88084#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 08 Jun 2007 10:48:13 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/88084</link>
        <guid>http://angeldhp.javaeye.com/blog/88084</guid>
      </item>
      <item>
        <title>struts中国际化，中文转成ascii的命令使用方法</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/83080" style="color:red;">http://angeldhp.javaeye.com/blog/83080</a>&nbsp;
          发表时间: 2007年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>在Struts中要用到国际化，写了个英文属性文件，想不起中文的用什么命令了，所以现在写下来，以便日后查找</p>
<p>国际化的属性文件的默认位置： com.yourcompany.struts.ApplicationResources</p>
<p>用法：native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]</p>
<p>zn.txt是用中文写的，aa.properties是要输出的文件。命令如下：</p>
<p>native2ascii -encoding gb2312 c:\zn.txt c:\aa.properties&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/83080#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 May 2007 14:51:39 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/83080</link>
        <guid>http://angeldhp.javaeye.com/blog/83080</guid>
      </item>
      <item>
        <title>IFrame自适应大小</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/83074" style="color:red;">http://angeldhp.javaeye.com/blog/83074</a>&nbsp;
          发表时间: 2007年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;<span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">script&nbsp;language</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">javascript</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">&nbsp;type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">text/javascript</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;IFrameAutoFit()<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_103_1579_Open_Image" onclick="this.style.display='none'; document.getElementById('_103_1579_Open_Text').style.display='none'; document.getElementById('_103_1579_Closed_Image').style.display='inline'; document.getElementById('_103_1579_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_103_1579_Closed_Image" onclick="this.style.display='none'; document.getElementById('_103_1579_Closed_Text').style.display='none'; document.getElementById('_103_1579_Open_Image').style.display='inline'; document.getElementById('_103_1579_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_103_1579_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_103_1579_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" id="_133_1518_Open_Image" onclick="this.style.display='none'; document.getElementById('_133_1518_Open_Text').style.display='none'; document.getElementById('_133_1518_Closed_Image').style.display='inline'; document.getElementById('_133_1518_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" id="_133_1518_Closed_Image" onclick="this.style.display='none'; document.getElementById('_133_1518_Closed_Text').style.display='none'; document.getElementById('_133_1518_Open_Image').style.display='inline'; document.getElementById('_133_1518_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_133_1518_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_133_1518_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(window</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">parent)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" id="_186_1504_Open_Image" onclick="this.style.display='none'; document.getElementById('_186_1504_Open_Text').style.display='none'; document.getElementById('_186_1504_Closed_Image').style.display='inline'; document.getElementById('_186_1504_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" id="_186_1504_Closed_Image" onclick="this.style.display='none'; document.getElementById('_186_1504_Closed_Text').style.display='none'; document.getElementById('_186_1504_Open_Image').style.display='inline'; document.getElementById('_186_1504_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_186_1504_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_186_1504_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;parent.document.getElementsByTagName(</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">IFRAME</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(var&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">a.length;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" id="_334_1486_Open_Image" onclick="this.style.display='none'; document.getElementById('_334_1486_Open_Text').style.display='none'; document.getElementById('_334_1486_Closed_Image').style.display='inline'; document.getElementById('_334_1486_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" id="_334_1486_Closed_Image" onclick="this.style.display='none'; document.getElementById('_334_1486_Closed_Text').style.display='none'; document.getElementById('_334_1486_Open_Image').style.display='inline'; document.getElementById('_334_1486_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_334_1486_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_334_1486_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(a[i].contentWindow&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;window)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" id="_417_1464_Open_Image" onclick="this.style.display='none'; document.getElementById('_417_1464_Open_Text').style.display='none'; document.getElementById('_417_1464_Closed_Image').style.display='inline'; document.getElementById('_417_1464_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" id="_417_1464_Closed_Image" onclick="this.style.display='none'; document.getElementById('_417_1464_Closed_Text').style.display='none'; document.getElementById('_417_1464_Open_Image').style.display='inline'; document.getElementById('_417_1464_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_417_1464_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_417_1464_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;h1</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;h2</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i].parentNode.style.height&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;a[i].offsetHeight&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">px</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i].style.height&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">10px</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(document.documentElement&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;document.documentElement.scrollHeight)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" id="_729_835_Open_Image" onclick="this.style.display='none'; document.getElementById('_729_835_Open_Text').style.display='none'; document.getElementById('_729_835_Closed_Image').style.display='inline'; document.getElementById('_729_835_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" id="_729_835_Closed_Image" onclick="this.style.display='none'; document.getElementById('_729_835_Closed_Text').style.display='none'; document.getElementById('_729_835_Open_Image').style.display='inline'; document.getElementById('_729_835_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_729_835_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_729_835_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;document.documentElement.scrollHeight;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(document.body)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" id="_911_1004_Open_Image" onclick="this.style.display='none'; document.getElementById('_911_1004_Open_Text').style.display='none'; document.getElementById('_911_1004_Closed_Image').style.display='inline'; document.getElementById('_911_1004_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" id="_911_1004_Closed_Image" onclick="this.style.display='none'; document.getElementById('_911_1004_Closed_Text').style.display='none'; document.getElementById('_911_1004_Open_Image').style.display='inline'; document.getElementById('_911_1004_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_911_1004_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_911_1004_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h2</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">document.body.scrollHeight;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;h&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Math.max(h1,&nbsp;h2);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(document.all)&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" id="_1134_1204_Open_Image" onclick="this.style.display='none'; document.getElementById('_1134_1204_Open_Text').style.display='none'; document.getElementById('_1134_1204_Closed_Image').style.display='inline'; document.getElementById('_1134_1204_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" id="_1134_1204_Closed_Image" onclick="this.style.display='none'; document.getElementById('_1134_1204_Closed_Text').style.display='none'; document.getElementById('_1134_1204_Open_Image').style.display='inline'; document.getElementById('_1134_1204_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_1134_1204_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_1134_1204_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(window.opera)&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" id="_1280_1350_Open_Image" onclick="this.style.display='none'; document.getElementById('_1280_1350_Open_Text').style.display='none'; document.getElementById('_1280_1350_Closed_Image').style.display='inline'; document.getElementById('_1280_1350_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" id="_1280_1350_Closed_Image" onclick="this.style.display='none'; document.getElementById('_1280_1350_Closed_Text').style.display='none'; document.getElementById('_1280_1350_Open_Image').style.display='inline'; document.getElementById('_1280_1350_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_1280_1350_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_1280_1350_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i].style.height&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;a[i].parentNode.style.height&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;h&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">px</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(ex)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" id="_1555_1569_Open_Image" onclick="this.style.display='none'; document.getElementById('_1555_1569_Open_Text').style.display='none'; document.getElementById('_1555_1569_Closed_Image').style.display='inline'; document.getElementById('_1555_1569_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" id="_1555_1569_Closed_Image" onclick="this.style.display='none'; document.getElementById('_1555_1569_Closed_Text').style.display='none'; document.getElementById('_1555_1569_Open_Image').style.display='inline'; document.getElementById('_1555_1569_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_1555_1569_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_1555_1569_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(window.attachEvent)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_1620_1688_Open_Image" onclick="this.style.display='none'; document.getElementById('_1620_1688_Open_Text').style.display='none'; document.getElementById('_1620_1688_Closed_Image').style.display='inline'; document.getElementById('_1620_1688_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_1620_1688_Closed_Image" onclick="this.style.display='none'; document.getElementById('_1620_1688_Closed_Text').style.display='none'; document.getElementById('_1620_1688_Open_Image').style.display='inline'; document.getElementById('_1620_1688_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_1620_1688_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_1620_1688_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.attachEvent(</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">onload</span><span style="COLOR: #000000">&quot;</span><span style="COLOR: #000000">,&nbsp;&nbsp;IFrameAutoFit);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(window.addEventListener)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_1739_1818_Open_Image" onclick="this.style.display='none'; document.getElementById('_1739_1818_Open_Text').style.display='none'; document.getElementById('_1739_1818_Closed_Image').style.display='inline'; document.getElementById('_1739_1818_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_1739_1818_Closed_Image" onclick="this.style.display='none'; document.getElementById('_1739_1818_Closed_Text').style.display='none'; document.getElementById('_1739_1818_Open_Image').style.display='inline'; document.getElementById('_1739_1818_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="_1739_1818_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_1739_1818_Open_Text"><span style="COLOR: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.addEventListener(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">load</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,&nbsp;&nbsp;IFrameAutoFit,&nbsp;&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/83074#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 May 2007 14:30:50 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/83074</link>
        <guid>http://angeldhp.javaeye.com/blog/83074</guid>
      </item>
      <item>
        <title> 教你一简单办法 用Java获得IP地址 </title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/83002" style="color:red;">http://angeldhp.javaeye.com/blog/83002</a>&nbsp;
          发表时间: 2007年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          如何用Java获得一个域名的IP地址呢？<br />
<br />
如何用Java获得一个域名的IP地址呢？提供这个功能的类叫做java.net.InetAddress。我们假设现在有这样一个域名，它用一个静态的getByName来重新获得一个InetAddress，然后得到可以读出的IP地址。下面的代码是非常基本的命令行。<br />
　　<br />
　　import java.net.InetAddress;<br />
　　import java.net.UnknownHostException;<br />
　　public class NsLookup {<br />
　　static public void main(String[] args) {<br />
　　try {<br />
　　InetAddress address = InetAddress.getByName(args[0]);<br />
　　System.out.println(args[0]+&quot;<br />
　　: &quot;+address.getHostAddress());<br />
　　}<br />
　　catch(UnknownHostException uhe) {<br />
　　System.err.println(&quot;Unable to find: &quot;+args[0]);<br />
　　}<br />
　　}<br />
　　}<br />
　　<br />
　　InetAddress也可以通过使用getAddress()来获得IP地址，但是它的返回值是一个4个字节的数组。因此尽管getAddress()在获得IP方面是有用的，但却不适于用来输出。<br />
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/83002#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 May 2007 13:49:12 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/83002</link>
        <guid>http://angeldhp.javaeye.com/blog/83002</guid>
      </item>
      <item>
        <title>Struts框架中的表单验证与资源文件</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/83001" style="color:red;">http://angeldhp.javaeye.com/blog/83001</a>&nbsp;
          发表时间: 2007年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1. 配置config.xml<br />
&lt;struts-config&gt;<br />
&nbsp; &lt;form-beans&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;form-bean name=&quot;myActionForm&quot; type=&quot;strutsdemo.MyActionForm&quot; /&gt;<br />
&nbsp; &lt;/form-beans&gt;<br />
&nbsp; &lt;action-mappings&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;action input=&quot;/login.jsp&quot; name=&quot;myActionForm&quot; path=&quot;/myAction&quot; scope=&quot;request&quot; type=&quot;strutsdemo.MyAction&quot; validate=&quot;true&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name=&quot;ok&quot; path=&quot;/ok.jsp&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name=&quot;oknot&quot; path=&quot;/oknot.jsp&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name=&quot;error&quot; path=&quot;/error.jsp&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/action&gt;<br />
&nbsp; &lt;/action-mappings&gt;<br />
&nbsp; &lt;message-resources parameter=&quot;StrutsDemo.Application&quot;&gt;<br />
&nbsp; &lt;/message-resources&gt;<br />
&lt;/struts-config&gt;</p>
<p>&lt;action&gt;中的属性validate=&quot;true&quot;指定了激活ActionForm的表单验证；<br />
&lt;message-resources&gt;元素指定资源文件，需要与下一步的web.xml配置文件匹配；</p>
<p>2. 配置web.xml<br />
&lt;servlet&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;action&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;org.apache.struts.action.ActionServlet&lt;/servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;config&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;/WEB-INF/struts-config.xml&lt;/param-value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;debug&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;2&lt;/param-value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;application&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;ApplicationResources&lt;/param-value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;<br />
&nbsp; &lt;/servlet&gt;</p>
<p>&lt;param-name&gt;application&lt;/param-name&gt;与第一步的&lt;message-resources&gt;匹配指定资源文件；</p>
<p>3. ActionForm的validate()方法中<br />
&nbsp;&nbsp;&nbsp;&nbsp; * ActionForm的表单验证，非业务逻辑验证，只对表单数据的合法性进行检查，如非空。<br />
&nbsp;&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 如果validate()方法返回的ActionErrors为null或不包含任何ActionMessage对象或ActionError对象，表示通过验证;<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Struts框架将ActionForm和HTTP请求一起传给Action的execute();<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 否则Struts框架将HTTP请求返回到输入的页面中，不会进入到Action的execute()方法，而输入页面即可通过＜html:errors＞标签来显示错误信息<br />
&nbsp;&nbsp;&nbsp;&nbsp; *<br />
例：<br />
ActionErrors errors=new ActionErrors();&nbsp;&nbsp;//定义错误对象，不初始化<br />
&nbsp;&nbsp;&nbsp; if (userName==null || userName.length()&lt;1 || !userName.equals(&quot;uname&quot;)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; errors.add(errors.GLOBAL_ERROR,new ActionError(&quot;userNameerror&quot;));//加入到错误容器中<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //userNameerror对应资源文件中的键值对的键，值由&lt;html:errors&gt;标签输出<br />
}<br />
</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/83001#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 May 2007 13:46:06 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/83001</link>
        <guid>http://angeldhp.javaeye.com/blog/83001</guid>
      </item>
      <item>
        <title>解决FORM的重复提交 </title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/82963" style="color:red;">http://angeldhp.javaeye.com/blog/82963</a>&nbsp;
          发表时间: 2007年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>当我们提交一个表单之后可以重定向来防止刷新来重复提交表单,但在有些情况下,通过游览器的后退再来提交,就会重复提交表单,为了解决这个问题,我们可以使用struts中的Token.</p>
<p>下面给出一个例子:</p>
<p>1,我们在转向表单的Action中加入代码</p>
<p>saveToken(request);</p>
<p>2,我们在处理表单的Action加入代码:</p>
<p>/**验证FORM的重复提交&nbsp;&nbsp; */<br />
&nbsp;&nbsp;if(!isTokenValid(request)){<br />
&nbsp;&nbsp;&nbsp;return&nbsp;null;<br />
&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;resetToken(request);<br />
&nbsp;&nbsp;}</p>
<p>注:这些方法是Struts中自带的方法.</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/82963#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 May 2007 11:53:32 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/82963</link>
        <guid>http://angeldhp.javaeye.com/blog/82963</guid>
      </item>
      <item>
        <title>多重提交表单的校验方法 </title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/82961" style="color:red;">http://angeldhp.javaeye.com/blog/82961</a>&nbsp;
          发表时间: 2007年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>有时我们需把一个页面的表单提交到不同的页面，处理方法一般采用在onClick事件中动态给出action的值，如下例：</p>
<p>&lt;FORM ACTION=&quot;&quot; METHOD=&quot;post&quot; NAME=&quot;PostTopic&quot;&gt;</p>
<p>&nbsp;&lt;INPUT TYPE=&quot;submit&quot; NAME=Submit VALUE=&quot;新增&quot; class=buttonface onclick=&quot;document.PostTopic.action='addone.php';&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;INPUT TYPE=&quot;RESET&quot; NAME=Reset VALUE=&quot;重置&quot; class=buttonface &gt;<br />
&nbsp;&nbsp;&nbsp; &lt;INPUT TYPE=&quot;submit&quot; NAME=&quot;Submit&quot; VALUE=&quot;修改&quot; class=buttonface onclick=&quot;document.PostTopic.action='modify.php';&quot;&gt;<br />
&lt;/FORM&gt;&nbsp;&nbsp;&nbsp; </p>
<p>此时针对不同提交目标对表单作的校验，只能放在onClick事件中，但这样造成无论是否通过验证都会提交表单的问题。因为这个按钮是submit类型。</p>
<p>对此问题，我的解决方法是这样的：</p>
<p>&lt;script language=&quot;JavaScript&quot;&gt;<br />
&lt;!--</p>
<p>document.returnValue=true;&nbsp;<a href="file://义/">//</a>一个全局变量，给初值。</p>
<p>function validateForm() { <br />
&nbsp; var errors;<br />
&nbsp; errors='';<br />
&nbsp; if (document.PostTopic.title.value==&quot;&quot;)<br />
&nbsp; &nbsp;errors=&quot;标题不能为空&quot;;<br />
&nbsp; if( document.PostTopic.intro.value.length&gt;10)<br />
&nbsp;&nbsp;&nbsp; errors+=&quot;\n简介不能多于10个字&quot;;<br />
&nbsp; if (errors!='') alert(errors);<br />
&nbsp; document.returnValue = (errors == ''&quot;);<br />
}</p>
<p><a href="file://--/">file://--</a>&gt;<br />
&lt;/script&gt;</p>
<p>&lt;FORM ACTION=&quot;&quot; METHOD=&quot;post&quot; NAME=&quot;PostTopic&quot; onSubmit=&quot;return document.returnValue;&quot;&gt;<br />
&lt;input type=text name=title value=&quot;&quot;&gt;<br />
&lt;input type=text name=intro value=&quot;&quot;&gt;<br />
&lt;INPUT TYPE=&quot;submit&quot; NAME=Submit VALUE=&quot;新增&quot; class=buttonface onclick=&quot;document.PostTopic.action='addone.php';validateForm(); return document.returnValue;&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INPUT TYPE=&quot;RESET&quot; NAME=Reset VALUE=&quot;重置&quot; class=buttonface &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INPUT TYPE=&quot;submit&quot; NAME=&quot;Submit&quot; VALUE=&quot;修改&quot; class=buttonface onclick=&quot;document.PostTopic.action='modify.php';validateForm(); return document.returnValue;&quot;&gt;<br />
&lt;/FORM&gt;</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/82961#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 May 2007 11:46:52 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/82961</link>
        <guid>http://angeldhp.javaeye.com/blog/82961</guid>
      </item>
      <item>
        <title>Struts错误整理 </title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/82957" style="color:red;">http://angeldhp.javaeye.com/blog/82957</a>&nbsp;
          发表时间: 2007年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font color="#993300">错误 ：javax.servlet.ServletException: </font><a name="baidusnap0"></a><span style="FONT-WEIGHT: bold"><font color="#993300">DispatchMapping[/configaction] does not define a handler property</font></span></p>
<p><span style="FONT-WEIGHT: bold">&nbsp;</span>原因： action参数配置不全 <br />
解决方法：在 config文件中 添加 parameter=&quot;method&quot;等 <br />
<br />
<font color="#800000">错误： 表单数据验证失败时发生错误，&ldquo;No input attribute for mapping path&rdquo;</font> </p>
<p><br />
原因：action中表单验证 validate=&quot;true&quot; ，如果validate()返回非空的ActionErrors，将会被转到input属性指定的URI，而action中未指定input时会报此错 <br />
解决方法：添加 input=&quot;url&quot; 或者 validate=&quot;false&quot; <br />
</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/82957#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 May 2007 11:37:57 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/82957</link>
        <guid>http://angeldhp.javaeye.com/blog/82957</guid>
      </item>
      <item>
        <title>java文件操作大全4</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/82933" style="color:red;">http://angeldhp.javaeye.com/blog/82933</a>&nbsp;
          发表时间: 2007年05月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;
<p align="left">
<b>七</b><b>.</b><b>创建文件</b><b>(</b><b>文件夹</b><b>)</b></p>
<p align="left">1.创建文件夹</p>
<p align="left">
&nbsp;/**&nbsp;*//**创建文件夹<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;path&nbsp;&nbsp;目录<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;createDir(String&nbsp;path)...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;dir=new&nbsp;File(path);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!dir.exists())<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir.mkdir();<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left"><br />
2.创建新文件</p>
<p align="left">/**&nbsp;*//**创建新文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;path&nbsp;目录<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;filename&nbsp;文件名<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;IOException<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;createFile(String&nbsp;path,String&nbsp;filename)&nbsp;throws&nbsp;IOException...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file=new&nbsp;File(path+"/"+filename);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!file.exists())<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.createNewFile();<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left">
<b>八</b><b>.</b><b>删除文件</b><b>(</b><b>目录</b><b>)</b></p>
<p align="left">1.删除文件</p>
<p align="left">
&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**删除文件<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;path&nbsp;目录<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;filename&nbsp;文件名<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;delFile(String&nbsp;path,String&nbsp;filename)...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file=new&nbsp;File(path+"/"+filename);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(file.exists()&amp;&amp;file.isFile())<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.delete();<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left"><br />
2.删除目录<br />
要利用File类的delete()方法删除目录时，必须保证该目录下没有文件或者子目录，否则删除失败，因此在实际应用中，我们要删除目录，必须利用递归删除该目录下的所有子目录和文件，然后再删除该目录。</p>
<p align="left">
&nbsp;/**&nbsp;*//**递归删除文件夹<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;path<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;delDir(String&nbsp;path)...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;dir=new&nbsp;File(path);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dir.exists())...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File[]&nbsp;tmp=dir.listFiles();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;tmp.length;i++)...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(tmp[i].isDirectory())...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delDir(path+"/"+tmp[i].getName());<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp[i].delete();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir.delete();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left">&nbsp;</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/82933#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 16 May 2007 07:13:39 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/82933</link>
        <guid>http://angeldhp.javaeye.com/blog/82933</guid>
      </item>
      <item>
        <title>java文件操作大全3</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/82934" style="color:red;">http://angeldhp.javaeye.com/blog/82934</a>&nbsp;
          发表时间: 2007年05月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;
<p align="left"><b>五</b><b>.</b><b>转移文件目录</b></p>
<p align="left">&nbsp;</p>
<p align="left">
转移文件目录不等同于复制文件，复制文件是复制后两个目录都存在该文件，而转移文件目录则是转移后，只有新目录中存在该文件。</p>
<p align="left">
&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**转移文件目录<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;filename&nbsp;文件名<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;oldpath&nbsp;旧目录<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;newpath&nbsp;新目录<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;cover&nbsp;若新目录下存在和转移文件具有相同文件名的文件时，是否覆盖新目录下文件，cover=true将会覆盖原文件，否则不操作<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;changeDirectory(String&nbsp;filename,String&nbsp;oldpath,String&nbsp;newpath,boolean&nbsp;cover)...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!oldpath.equals(newpath))...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;oldfile=new&nbsp;File(oldpath+"/"+filename);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;newfile=new&nbsp;File(newpath+"/"+filename);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(newfile.exists())...{//若在待转移目录下，已经存在待转移文件<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(cover)//覆盖<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oldfile.renameTo(newfile);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("在新目录下已经存在："+filename);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oldfile.renameTo(newfile);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left">&nbsp;</p>
<p align="left">&nbsp;</p>
<p align="left"><b>六</b><b>.</b><b>读文件</b></p>
<p align="left">1.利用FileInputStream读取文件</p>
<p align="left">
&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**读文件<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;path<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;IOException<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;FileInputStreamDemo(String&nbsp;path)&nbsp;throws&nbsp;IOException...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file=new&nbsp;File(path);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!file.exists()||file.isDirectory())<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;FileNotFoundException();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileInputStream&nbsp;fis=new&nbsp;FileInputStream(file);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[]&nbsp;buf&nbsp;=&nbsp;new&nbsp;byte[1024];<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;sb=new&nbsp;StringBuffer();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while((fis.read(buf))!=-1)...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(new&nbsp;String(buf));&nbsp;&nbsp;&nbsp;&nbsp;<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf=new&nbsp;byte[1024];//重新生成，避免和上次读取的数据重复<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sb.toString();<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left">&nbsp;</p>
<p align="left">2.利用BufferedReader读取</p>
<p align="left">
在IO操作，利用BufferedReader和BufferedWriter效率会更高一点</p>
<p align="left">
&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**读文件<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;path<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;IOException<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;BufferedReaderDemo(String&nbsp;path)&nbsp;throws&nbsp;IOException...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file=new&nbsp;File(path);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!file.exists()||file.isDirectory())<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;FileNotFoundException();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;br=new&nbsp;BufferedReader(new&nbsp;FileReader(file));<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;temp=null;<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;sb=new&nbsp;StringBuffer();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp=br.readLine();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(temp!=null)...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(temp+"&nbsp;");<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp=br.readLine();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sb.toString();<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left">&nbsp;</p>
<p align="left">3.利用dom4j读取xml文件</p>
<p align="left">
&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**从目录中读取xml文件<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;path&nbsp;文件目录<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;DocumentException<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;IOException<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Document&nbsp;readXml(String&nbsp;path)&nbsp;throws&nbsp;DocumentException,&nbsp;IOException...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file=new&nbsp;File(path);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;bufferedreader&nbsp;=&nbsp;new&nbsp;BufferedReader(new&nbsp;FileReader(file));<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAXReader&nbsp;saxreader&nbsp;=&nbsp;new&nbsp;SAXReader();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;document&nbsp;=&nbsp;(Document)saxreader.read(bufferedreader);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bufferedreader.close();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;document;<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left">&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/82934#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 16 May 2007 07:12:51 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/82934</link>
        <guid>http://angeldhp.javaeye.com/blog/82934</guid>
      </item>
      <item>
        <title>java文件操作大全2</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/82935" style="color:red;">http://angeldhp.javaeye.com/blog/82935</a>&nbsp;
          发表时间: 2007年05月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;
<p align="left"><b>三</b><b>.</b><b>写文件</b></p>
<p align="left">1.利用PrintStream写文件</p>
<p align="left">/**&nbsp;*//**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;文件输出示例<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;PrintStreamDemo()...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;out=new&nbsp;FileOutputStream("D:/test.txt");<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintStream&nbsp;p=new&nbsp;PrintStream(out);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;10;i++)<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.println("This&nbsp;is&nbsp;"+i+"&nbsp;line");<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(FileNotFoundException&nbsp;e)&nbsp;...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left">2.利用StringBuffer写文件</p>
<p align="left">
public&nbsp;void&nbsp;StringBufferDemo()&nbsp;throws&nbsp;IOException......{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file=new&nbsp;File("/root/sms.log");<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!file.exists())<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.createNewFile();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;out=new&nbsp;FileOutputStream(file,true);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;10000;i++)......{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;sb=new&nbsp;StringBuffer();<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append("这是第"+i+"行:前面介绍的各种方法都不关用,为什么总是奇怪的问题&nbsp;");<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(sb.toString().getBytes("utf-8"));<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p align="left">该方法可以设定使用何种编码，有效解决中文问题。</p>
<p align="left"><b>四</b><b>.</b><b>文件重命名</b></p>
<p align="left">
&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**文件重命名<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;path&nbsp;文件目录<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;oldname&nbsp;&nbsp;原来的文件名<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;newname&nbsp;新文件名<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;renameFile(String&nbsp;path,String&nbsp;oldname,String&nbsp;newname)...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!oldname.equals(newname))...{//新的文件名和以前文件名不同时,才有必要进行重命名<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;oldfile=new&nbsp;File(path+"/"+oldname);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;newfile=new&nbsp;File(path+"/"+newname);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同，则不允许重命名<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(newname+"已经存在！");<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else...{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oldfile.renameTo(newfile);<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />

&nbsp;&nbsp;&nbsp;&nbsp;}</p>
          <br/>
          <span style="color:red;">
            <a href="http://angeldhp.javaeye.com/blog/82935#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 16 May 2007 07:10:43 +0800</pubDate>
        <link>http://angeldhp.javaeye.com/blog/82935</link>
        <guid>http://angeldhp.javaeye.com/blog/82935</guid>
      </item>
      <item>
        <title>java中文件操作大全</title>
        <author>angeldhp</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://angeldhp.javaeye.com">angeldhp</a>&nbsp;
          链接：<a href="http://angeldhp.javaeye.com/blog/82936" style="color:red;">http://angeldhp.javaeye.com/blog/82936</a>&nbsp;
          发表时间: 2007年05月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;
<div style="TEXT-ALIGN: center">
<h2>java中文件操作大全&nbsp;</h2>
</div>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
本文为本人在工作学习中的总结，每个方法都经过测试，记在博客上一方面是为了自己日后工作方便，另一方面是为了给大家提供方便，节约时间。</p>
<p>
<strong>&nbsp;一.获得控制台用户输入的信息</strong></p>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: rgb(230,230,230) 0% 50%; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid; moz-background-clip: -moz-initial