ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>超碰在线成人,亚洲综合二区,99一区二区http://www.aygfsteel.com/pear/archive/2006/12/14/87809.htmlpearpearThu, 14 Dec 2006 12:43:00 GMThttp://www.aygfsteel.com/pear/archive/2006/12/14/87809.htmlhttp://www.aygfsteel.com/pear/comments/87809.htmlhttp://www.aygfsteel.com/pear/archive/2006/12/14/87809.html#Feedback0http://www.aygfsteel.com/pear/comments/commentRss/87809.htmlhttp://www.aygfsteel.com/pear/services/trackbacks/87809.htmltoday
2006-1-1
2006-1-2
2006-10-1
2006-10-2
2006-5-1
æ ÒŽ(gu¨©)®A表中的数据写一条sql语句查询出如下结æž?
today              nextday
2006-1-1       2006-1-2
2006-10-1     2006-10-2
½Ž€å•的题目都把我难倒,痛苦。。ã€?br />下面是QQ朋友帮我想的办法åQ?br />解决办法åQ?。select  a.today as today ,b.today as nextdate from A a join A b on b.today -a.today =1
                    2。select a.today,b.today as nextdate from A a,A b where a.today=b.today-1


pear 2006-12-14 20:43 发表评论
]]>
我做的相册系¾lŸï¼ˆ­‘…çñ”女生åQ?/title><link>http://www.aygfsteel.com/pear/archive/2006/11/11/80561.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Sat, 11 Nov 2006 04:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/pear/archive/2006/11/11/80561.html</guid><wfw:comment>http://www.aygfsteel.com/pear/comments/80561.html</wfw:comment><comments>http://www.aygfsteel.com/pear/archive/2006/11/11/80561.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pear/comments/commentRss/80561.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pear/services/trackbacks/80561.html</trackback:ping><description><![CDATA[最˜q‘没什么事情好玩的åQŒæ‰€ä»¥å°±å¼„了个相册系¾l?br />åQˆä¸‹è½½ï¼š(x¨¬)<a href="mailto:share_supergirl@126.com">share_supergirl@126.com</a>  密码åQšgoodluckåQ‰çŽ°åœ¨è¿˜åœ¨ç‘ô¾l­å¼€å?br /><br />架构是jstl+struts+spring+hibernate. 但经验不­‘»I¼Œè®¾è®¡˜q˜æœ‰å¾ˆå¤šé—®é¢˜ã€?br /><br />希望跟大家交‹¹å­¦ä¹?f¨¤n)ã€?br /><br />希望哪位朋友èƒ?“批斗”一ä¸?我的¾pȝ»Ÿã€?img src ="http://www.aygfsteel.com/pear/aggbug/80561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pear/" target="_blank">pear</a> 2006-11-11 12:19 <a href="http://www.aygfsteel.com/pear/archive/2006/11/11/80561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MethodTable ¾lˆäºŽå‘布äº?(if else ¾lˆç»“者)http://www.aygfsteel.com/pear/archive/2006/11/04/79092.htmlpearpearSat, 04 Nov 2006 10:03:00 GMThttp://www.aygfsteel.com/pear/archive/2006/11/04/79092.htmlhttp://www.aygfsteel.com/pear/comments/79092.htmlhttp://www.aygfsteel.com/pear/archive/2006/11/04/79092.html#Feedback4http://www.aygfsteel.com/pear/comments/commentRss/79092.htmlhttp://www.aygfsteel.com/pear/services/trackbacks/79092.html自从½W¬ä¸€å¤©å¼€å§‹å­¦½E‹åºè®¾è®¡åQŒè€å¸ˆž®±å‘Šè¯‰æˆ‘if else有多么的重要åQŒç„¶åŽæˆ‘每天看到的代码出现频率最高的也是if else 关键字ã€?br />
最˜q‘在写一个相册系¾lŸï¼Œå‡†å¤‡¾l™æˆ‘老哥用的åQŒå‘µå‘µï¼Œæž¶æž„是经典的 JSTL+Struts+Spring+Hibernate+Mysql

ç”׃ºŽæœ¬äh不喜‹Æ¢ä¸€ä¸ªAction对应一个方法,所以就用了DispathAction,避免了过多的¾c»ï¼ˆå‘µå‘µåQŒä¸ªäºø™§‚点)
我的æ–ÒŽ(gu¨©)³•基本是一个Action包含所有的增删查改操作åQŒç”±äºŽä¸€ä¸ªAction中的æ–ÒŽ(gu¨©)³•¾lå¸¸è¦è°ƒç”?多个service 层的多个æ–ÒŽ(gu¨©)³•åQŒæ‰€ä»¥å°±ä¼?x¨¬)因为页面表单传来的控制参数è€?if else个不停,实在烦äh。拿最½Ž€å•的例子来说åQ?br />
分页查询中,一个最常用的控制参数就æ˜?四个 首页åQŒä¸Šä¸€™åµï¼Œä¸‹ä¸€™åµï¼Œž®ùN¡µ.  Action中的查询æ–ÒŽ(gu¨©)³•ž®Þp¦å¥½å‡ ä¸ªif elseã€‚çœ‹åˆ°å°±ä¸æ˜¯æ»‹å‘³ã€‚æ‰€ä»¥å°±åœ¨çº³é—øP¼Œäººå®¶Struts 都可以有DispathAction æˆ‘äØ“(f¨´)什么不能实çŽîC¸€ä¸ªæœ‰ç›æ€¼¼åŠŸèƒ½çš„ä¸œè¥¿å‘¢åQŒäh家的配置昄¡„¶å¤Ÿç®€å•,但是˜q˜æ˜¯è¦é…¾|®ã€‚不是很爽ã€?br />
于是åQŒå°±ç”¨JAVA的反ž®„来实现个MethodTable, 说白了就是根据一个字½W¦ä¸²çš„值来调用相应的函敎ͼŒ
ž®±æ˜¯æŠŠé‚£äº›çƒ¦äººçš„if else 变成一句调用。呵åQŒæž„思时ž®×ƒ¹æ»‹æ»‹äº†ã€?br />
下蝲地址 里面有源代码åQŒæµ‹è¯•案例,和注释,看不懂可以留­a€åQŒè·Ÿå¤§å®¶äº¤æµå­¦ä¹ (f¨¤n)ã€?br />



pear 2006-11-04 18:03 发表评论
]]>
¾|‘页中打印表格数据备ä»?/title><link>http://www.aygfsteel.com/pear/archive/2006/10/02/73226.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Mon, 02 Oct 2006 13:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/pear/archive/2006/10/02/73226.html</guid><wfw:comment>http://www.aygfsteel.com/pear/comments/73226.html</wfw:comment><comments>http://www.aygfsteel.com/pear/archive/2006/10/02/73226.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pear/comments/commentRss/73226.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pear/services/trackbacks/73226.html</trackback:ping><description><![CDATA[ <font size="2">¾|‘页中打印表格数据备ä»?br /><style   media="print"><br />.noprint   {   display:   none   }<br /></style><br />上面的代码写åœ?lt;head>中··Â?br /><INPUT   onclick="document.execCommand('print','true','true')"   class="noprint"   type="button"   value="打印"><br /><br />然后在你不要打印的地方加一ä¸?  class="noprint"属性··Â?/font> <img src ="http://www.aygfsteel.com/pear/aggbug/73226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pear/" target="_blank">pear</a> 2006-10-02 21:33 <a href="http://www.aygfsteel.com/pear/archive/2006/10/02/73226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax中javascript的一些基本东è¥?/title><link>http://www.aygfsteel.com/pear/archive/2006/08/30/66726.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Wed, 30 Aug 2006 14:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/pear/archive/2006/08/30/66726.html</guid><wfw:comment>http://www.aygfsteel.com/pear/comments/66726.html</wfw:comment><comments>http://www.aygfsteel.com/pear/archive/2006/08/30/66726.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pear/comments/commentRss/66726.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pear/services/trackbacks/66726.html</trackback:ping><description><![CDATA[ <p><body><br />----------------------------------------------------------------------------------------------------------<br /><script language="javascript"><br />//实现左右select诓的左右å¯ÒŽ(gu¨©)¢<br />  function goleft(){<br />     var myleft = document.getElementById("left");<br />     var myright = document.getElementById("right");<br />  var child1= myright.options[myright.options.selectedIndex]; <br />  myright.removeChild(child1); <br />  myleft.appendChild(child1); <br />  }<br />   function goright(){<br />     var myleft = document.getElementById("left");<br />     var myright = document.getElementById("right");<br />  var child = myleft.options[myleft.options.selectedIndex]; <br />  myleft.removeChild(myleft.options[myleft.options.selectedIndex]); <br />  myright.appendChild(child); <br />  }<br />  function gorightall(){     <br />     var myleft = document.getElementById("left");<br />     var myright = document.getElementById("right");<br />  var mylen = myleft.options.length;<br />  var childd;<br />  for (var i=0; i<mylen;i++){<br />     childd = myleft.options[0];<br />     myleft.removeChild(childd);     <br />        myright.appendChild(childd);        <br /> }    <br />  }<br />  function goleftall(){     <br />     var myleft = document.getElementById("left");<br />     var myright = document.getElementById("right");<br />  var mylen = myright.options.length;<br />  var childd;<br />  for (var i=0; i<mylen;i++){<br />     childd = myright.options[0];<br />     myright.removeChild(childd);     <br />        myleft.appendChild(childd);        <br /> }    <br />  }<br /></script><br /><select id="left" name="left" size="4"><br />  <option value="value1">first</option><br />  <option value="value2">second</option><br /></select><br /><input type="button" value=">>" onClick="goright()"><br /><input type="button" value="<<" onClick="goleft()"><br /><select id="right" name="right" size="4"><br /></select><br /><input type="button" value=">>>>" onClick="gorightall()"><br /><input type="button" value="<<<<" onClick="goleftall()"><br /><br><br><br />----------------------------------------------------------------------------------------------------------<br />  //ajax<br />     var xmlHttp;<br />     function createXMLHttpRequest(){<br />      if(window.ActiveXObject){<br />         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");      <br />      }else if(window.XMLHttpRequest){<br />         xmlHttp = new XMLHttpRequest();<br />      }<br />   }<br />   function startRequest(){<br />      createXMLHttpRequest();<br />   xmlHttp.onreadystatechange = callback;   <br />      xmlHttp.open("POST","/LoadDpartmentServlet",true);<br />      xmlHttp.send();<br />   }<br />   function callback(){<br />      if(xmlHttp.readyState==4){<br />       if(xmlHttp.status ==200){<br />       alert("response.."+xmlHttp.responseText);<br />    }<br />   }<br />   }<br /></script><br /></p> <p> <br />----------------------------------------------------------------------------------------------------------<br />//æ ?w¨¨i)åŞ菜单初æŽ?br /><script language="javascript"><br />  function toggle(_dt){<br />    var _dl = _dt.parentNode;<br /> if(_dl.className=="collapse") _dl.className="expand";<br /> else _dl.className="collapse";<br />  }<br /></script><br /><style type="text/css"><br />  dl dt {cursor:pointer; padding:3px;}<br />  dl dd {padding:3px;}<br />  .expand {height:auto;}<br />  .collapse {height:20px; overflow:hidden}<br /></style><br /><dl><br />  <dt onClick="toggle(this)">root</dt><br />  <dd><a href="<a ><strong><font color="#006bad">http://blogjava.net/pear">child</a></dd</font></strong></a>><br />  <dd><a href="<a ><strong><font color="#006bad">http://blogjava.net/pear">child2</a></dd</font></strong></a>><br />  <dl><br />   <dt onClick="toggle(this)">root2</dt><br />   <dd><a href="<a ><strong><font color="#006bad">http://blogjava.net/pear">child3</a></dd</font></strong></a>><br />   <dd><a href="<a ><strong><font color="#006bad">http://blogjava.net/pear">child4</a></dd</font></strong></a>><br />  </dl><br /></dl><br /><dl><br />  <dt onClick="toggle(this)">root2</dt><br />  <dd>child3</dd><br />  <dd>child4</dd><br /></dl></p> <p><br><br><br /><br />----------------------------------------------------------------------------------------------------------<br /><br /><ul><br />  <li>text</li><br />  <li>text2</li><br />  <ul><br />    <li>text3</li><br /> <li>text4</li><br /> <ul><br />   <li>textpk</li><br /> </ul><br />  </ul><br />  <li>text5</li><br /></ul><br /></body><br /></html><br /><br />----------------------------------------------------------------------------------------------------------<br />//创徏一个节点的基本方式<br />           var newnode = document.createTextNode("meme");<br />           var element = document.createElement("option"); <br />           element.appendChild(newnode);<br />           leftt.appendChild(element); <br />-------------------------------<br />           leftt.options[leftt.options.length]=new Option(value,text)<br />----------------------------------------------------------------------------------------------------------<br />//实现列表诓中的字½W¦ä¸²˜qžæŽ¥<br /><script language="javascript"><br />   function goright(){<br />     var myleft = document.getElementById("left");<br />     var myright = document.getElementById("gogo");<br />     var len = myleft.options.length;<br />     for(var i=0; i<len; i++){<br />        alert(myleft.options[i].text);<br />        myright.value=myright.value+myleft.options[i].text+'#';<br />     }<br />   }</p> <p></script><br /><select id="left" name="left" size="4"><br />  <option value="fir">first</option><br />  <option value="value2">second</option><br /></select><br /><input type="button" value=">>" onClick="goright();"></p> <p><input type="text" id="gogo" name="gogo"><br /><br /><br /><br /><br />åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQï¼åQ?br /><html><br /><head><br /><title>maomao</title></p> <p></head><br /><body><br /><script language="javascript"><br />   function goright(){<br />     var name=new Array();<br />     var myleft = document.getElementById("left");<br />     var myright = document.getElementById("gogo");<br />     var right = document.getElementById("gg");<br />     var len = myleft.options.length;<br />     for(var i=0; i<len; i++){<br />        name.push(myleft.options[i].text);<br />        myright.value=myright.value+myleft.options[i].text+'#';<br />     }<br />      right.value=name;<br />     alert(right.value);<br />   }</p> <p></script><br /><select id="left" name="left" size="4"><br />  <option value="fir">first</option><br />  <option value="value2">second</option><br /></select><br /><input type="button" value=">>" onClick="goright();"></p> <p><input type="text" id="gogo" name="gogo"><br /><input type="text" id="gg" name="gg"></p> <p> </p> <p> <br /></body><br /></html></p> <img src ="http://www.aygfsteel.com/pear/aggbug/66726.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pear/" target="_blank">pear</a> 2006-08-30 22:10 <a href="http://www.aygfsteel.com/pear/archive/2006/08/30/66726.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 深浅拯‚´é—®é¢˜åQˆè{载)http://www.aygfsteel.com/pear/archive/2006/08/29/66441.htmlpearpearTue, 29 Aug 2006 07:04:00 GMThttp://www.aygfsteel.com/pear/archive/2006/08/29/66441.htmlhttp://www.aygfsteel.com/pear/comments/66441.htmlhttp://www.aygfsteel.com/pear/archive/2006/08/29/66441.html#Feedback0http://www.aygfsteel.com/pear/comments/commentRss/66441.htmlhttp://www.aygfsteel.com/pear/services/trackbacks/66441.html http://tomsui.blog.hexun.com/4308236_d.html
æ–ÒŽ(gu¨©)³•åQˆä¸€åQ?引用拯‚´

Employee original = new Employee ("tomsui",4000);

Employee copy = original ;

original 与copy仅仅是同一对象的不同引用�/p>

 

æ–ÒŽ(gu¨©)³•åQˆäºŒåQ?‹¹…å…‹éš?/strong>

直接利用Objectçš„clone()æ–ÒŽ(gu¨©)³•åQ?/p>

protected Objectclone()   throws CloneNotSupportedException

Employee copy = (Employee)original.clone();

注意两点åQ?/p>

1åQ?Objectçš„clone() 是protected. 只能在包内或子类调用.

2åQ?如果‹¹…克隆的对象中存在对象åŞ式的成员变量:

public class Employee

{

        String name;

        int salary;

        Date birthday;

}

那么:

  Employee copy = (Employee) original.clone();

只是拯‚´äº†original对象中的基本¾cÕdž‹å’Œä¸å˜é‡.可变的对象成员变量拷贝得到的仍然是引ç”?

不变量应该包æ‹?可以参见<java多线½E‹è®¾è®¡æ¨¡å¼?gt;Immutable模式中界定的情况):

a. String¾cÕd¯¹è±?/p>

b. 被final定义,子对象在生存周期中仅保存一些常�/p>

 

æ–ÒŽ(gu¨©)³•(ä¸? 深克éš?/strong>

例子:

class Employee implements Cloneable

{

        private String name;

        private double salary;

        private Date birthday;

        // setter �getter

        public Object clone()

        {

                try

                {

                        Employee cloned = (Employee ) super.clone();

                        cloned.birthday = (Date) birthday.clone();

                }catch(CloneNotSupportedException e) {

                return null;

                }

        }

}

 说明åQ?/p>

1åQ‰Employee 必须实现 Cloneable接口 åQˆæ ‡å¿—接口)

     标志接口åQšå®Œå…¨çš„½IºæŽ¥å£ã€‚这里的作用是告诉JåQӞ݋åQŒç±»çš„设计者理解了cloneable()æ–ÒŽ(gu¨©)³•åQŒå¯ä»¥é€šè¿‡isInstanceOf˜q›è¡Œ˜qè¡Œæ—¶æ£€æŸ¥ã€?/p>

2åQ‰è¦†å†™çš„clone()æ–ÒŽ(gu¨©)³•必须定义为public (原是protected)

3åQ‰clone()æ–ÒŽ(gu¨©)³•体必™åÕdœ¨try-catch {}中,捕获处理CloneNotSupportedException 。(防止¾cÀL²¡æœ‰å®žçްCloneable接口åQŒæ­£¼‹®å®žçŽîCº†æ·±å…‹éš†çš„话,˜q™ä¸ªå¼‚常肯定不会(x¨¬)抛出åQ?/p>

ps.   JDK中,StringBuffer没有覆写clone()æ–ÒŽ(gu¨©)³•åQŒè™½ç„¶å®ƒ¼‹®å®ž¾l§æ‰¿äº†Objectçš„clone()åQŒä½†åœ¨å®žé™…应用中åQŒã€€å› äØ“(f¨´)StringBuffer¾lä¸ä¼?x¨¬)有子类åQŒè€Œä¸”是在JDK外ä‹É用StringBufferåQŒæ‰€ä»¥è¢«protected界定的clone()æ–ÒŽ(gu¨©)³•是完全不可见的!

 

æ–ÒŽ(gu¨©)³•åQˆå››åQ‰ä‹É用序列化˜q›è¡Œå…‹éš†

˜q™ç§æ–ÒŽ(gu¨©)³•涉及(qi¨¢ng)IO操作åQŒæ‰€ä»¥ç›¸å¯ÒŽ(gu¨©)¥è®²è¦æ¯”方法(三)慢.

import java.io.*;
import java.util.*;

public class SerialCloneTest
{ 
   public static void main(String[] args)
   { 
      Employee harry = new Employee("Harry Hacker", 35000,
         1989, 10, 1);
      // clone harry
      Employee harry2 = (Employee)harry.clone();

      // mutate harry
      harry.raiseSalary(10);

      // now harry and the clone are different
      System.out.println(harry);
      System.out.println(harry2);
   }
}

/**
   A class whose clone method uses serialization.
*/
class SerialCloneable implements Cloneable, Serializable
{ 
   public Object clone()
   { 
      try
      { 
         // save the object to a byte array
         ByteArrayOutputStream bout = new
            ByteArrayOutputStream();
         ObjectOutputStream out
            = new ObjectOutputStream(bout);
         out.writeObject(this);
         out.close();

         // read a clone of the object from the byte array
         ByteArrayInputStream bin = new
            ByteArrayInputStream(bout.toByteArray());
         ObjectInputStream in = new ObjectInputStream(bin);
         Object ret = in.readObject();
         in.close();

         return ret;
      } 
      catch (Exception e)
      { 
         return null;
      }
   }
}

/**
   The familiar Employee class, redefined to extend the
   SerialCloneable class.
*/
class Employee extends SerialCloneable
{ 
   public Employee(String n, double s,
      int year, int month, int day)
   { 
      name = n;
      salary = s;
      GregorianCalendar calendar
         = new GregorianCalendar(year, month - 1, day);
         // GregorianCalendar uses 0 for January
      hireDay = calendar.getTime();
   }

   public String getName()
   { 
      return name;
   }

   public double getSalary()
   { 
      return salary;
   }

   public Date getHireDay()
   { 
      return hireDay;
   }

   public void raiseSalary(double byPercent)
   { 
      double raise = salary * byPercent / 100;
      salary += raise;
   }

   public String toString()
   { 
      return getClass().getName()
         + "[name=" + name
         + ",salary=" + salary
         + ",hireDay=" + hireDay
         + "]";
   }

   private String name;
   private double salary;
   private Date hireDay;
}

 

 æ–ÒŽ(gu¨©)³•åQˆäº”åQ?å…¶ä»–æ–ÒŽ(gu¨©)³•

可以通过java的反ž®„机制定义一个类ä¼égºŽå¯¹è±¡åºåˆ—化的万能克隆。改˜q›åŽå†è„“(chu¨¤ng)上来ã€?/p>

]]>
CHMæ–‡äšg被关联,不能打开的解军_Šžæ³? (˜q˜æœ‰: 备䆾一下DES½Ž—法)http://www.aygfsteel.com/pear/archive/2006/07/01/56111.htmlpearpearSat, 01 Jul 2006 13:37:00 GMThttp://www.aygfsteel.com/pear/archive/2006/07/01/56111.htmlhttp://www.aygfsteel.com/pear/comments/56111.htmlhttp://www.aygfsteel.com/pear/archive/2006/07/01/56111.html#Feedback0http://www.aygfsteel.com/pear/comments/commentRss/56111.htmlhttp://www.aygfsteel.com/pear/services/trackbacks/56111.html˜qè¡ŒåQšregsvr32 c:\windows\system32\hhctrl.ocx

package  des; 

import  java.io. * ; 
import  java.nio. * ; 
import  java.nio.channels.FileChannel; 

public   class  FileDES{ 
private   static   final   boolean  enc = true ;  // 加密 
private   static   final   boolean  dec = false ;  // 解密 

private  String srcFileName; 
private  String destFileName; 
private  String inKey; 
private   boolean  actionType; 
private  File srcFile; 
private  File destFile; 
private  Des des; 

private   void  analyzePath(){ 
String dirName; 
int  pos = srcFileName.lastIndexOf( " / " ); 
dirName
= srcFileName.substring( 0 ,pos); 
File dir
= new  File(dirName); 
if  ( ! dir.exists()){ 
System.err.println(dirName
+ "  is not exist " ); 
System.exit(
1 ); 
}
else   if ( ! dir.isDirectory()){ 
System.err.println(dirName
+ "  is not a directory " ); 
System.exit(
1 ); 
} 

pos
= destFileName.lastIndexOf( " / " ); 
dirName
= destFileName.substring( 0 ,pos); 
dir
= new  File(dirName); 
if  ( ! dir.exists()){ 
if ( ! dir.mkdirs()){ 
System.out.println (
" can not creat directory: " + dirName); 
System.exit(
1 ); 
} 
}
else   if ( ! dir.isDirectory()){ 
System.err.println(dirName
+ "  is not a directory " ); 
System.exit(
1 ); 
} 
} 

private   static   int  replenish(FileChannel channel,ByteBuffer buf)  throws  IOException{ 
long  byteLeft = channel.size() - channel.position(); 
if (byteLeft == 0L ) 
return   - 1 ; 
buf.position(
0 ); 
buf.limit(buf.position()
+ (byteLeft < 8   ?  ( int )byteLeft : 8 )); 
return  channel.read(buf); 
} 

private   void  file_operate( boolean  flag){ 
des
= new  Des(inKey); 
FileOutputStream outputFile
= null ; 
try  { 
outputFile
= new  FileOutputStream(srcFile, true ); 
}
catch  (java.io.FileNotFoundException e) { 
e.printStackTrace(System.err); 
} 
FileChannel outChannel
= outputFile.getChannel(); 

try { 
if (outChannel.size() % 2 != 0 ){ 
ByteBuffer bufTemp
= ByteBuffer.allocate( 1 ); 
bufTemp.put((
byte ) 32 ); 
bufTemp.flip(); 
outChannel.position(outChannel.size()); 
outChannel.write(bufTemp); 
bufTemp.clear(); 
} 
}
catch (Exception ex){ 
ex.printStackTrace(System.err); 
System.exit(
1 ); 
} 
FileInputStream inFile
= null ; 
try { 
inFile
= new  FileInputStream(srcFile); 
}
catch (java.io.FileNotFoundException e){ 
e.printStackTrace(System.err); 
// System.exit(1); 
} 
outputFile
= null ; 
try  { 
outputFile
= new  FileOutputStream(destFile, true ); 
}
catch  (java.io.FileNotFoundException e) { 
e.printStackTrace(System.err); 
} 

FileChannel inChannel
= inFile.getChannel(); 
outChannel
= outputFile.getChannel(); 


ByteBuffer inBuf
= ByteBuffer.allocate( 8 ); 
ByteBuffer outBuf
= ByteBuffer.allocate( 8 ); 

try { 
String srcStr; 
String destStr; 
while ( true ){ 

if  (replenish(inChannel,inBuf) ==- 1 )  break ; 
srcStr
= ((ByteBuffer)(inBuf.flip())).asCharBuffer().toString(); 
inBuf.clear(); 
if  (flag) 
destStr
= des.enc(srcStr,srcStr.length()); 
else  
destStr
= des.dec(srcStr,srcStr.length()); 
outBuf.clear(); 
if  (destStr.length() == 4 ){ 
for  ( int  i  =   0 ; i < 4 ; i ++ ) { 
outBuf.putChar(destStr.charAt(i)); 
} 
outBuf.flip(); 
}
else { 
outBuf.position(
0 ); 
outBuf.limit(
2 * destStr.length()); 
for  ( int  i  =   0 ; i < destStr.length(); i ++ ) { 
outBuf.putChar(destStr.charAt(i)); 
} 
outBuf.flip(); 
} 

try  { 
outChannel.write(outBuf); 
outBuf.clear(); 
}
catch  (java.io.IOException ex) { 
ex.printStackTrace(System.err); 
} 
} 
System.out.println (inChannel.size()); 
System.out.println (outChannel.size()); 
System.out.println (
" EoF reached. " ); 
inFile.close(); 
outputFile.close(); 
}
catch (java.io.IOException e){ 
e.printStackTrace(System.err); 
System.exit(
1 ); 
} 
} 

public  FileDES(String srcFileName,String destFileName,String inKey, boolean  actionType){ 
this .srcFileName = srcFileName; 
this .destFileName = destFileName; 
this .actionType = actionType; 
analyzePath(); 
srcFile
= new  File(srcFileName); 
destFile
= new  File(destFileName); 
this .inKey = inKey; 
if  (actionType == enc) 
file_operate(enc); 
else  
file_operate(dec); 
} 


public   static   void  main(String[] args){ 
String file1
= System.getProperty( " user.dir " ) + " /111.doc " ; 
String file2
= System.getProperty( " user.dir " ) + " /222.doc " ; 
String file3
= System.getProperty( " user.dir " ) + " /333.doc " ; 
String passWord
= " 1234ABCD " ; 
FileDES fileDes
= new  FileDES(file1,file2,passWord, true ); 
FileDES fileDes1
= new  FileDES(file2,file3,passWord, false ); 
}


]]>
备䆾一下主é”?id 映射: 和通用代码åQ?/title><link>http://www.aygfsteel.com/pear/archive/2006/06/19/53682.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Mon, 19 Jun 2006 00:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/pear/archive/2006/06/19/53682.html</guid><wfw:comment>http://www.aygfsteel.com/pear/comments/53682.html</wfw:comment><comments>http://www.aygfsteel.com/pear/archive/2006/06/19/53682.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pear/comments/commentRss/53682.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pear/services/trackbacks/53682.html</trackback:ping><description><![CDATA[ <p> <font face="宋体">Hibernate Synchronizer<br />下蝲地址:<br />http://sourceforge.net/project/showfiles.php?group_id=99370<br /></font> <br />备䆾一下主键id映射:   <br />int          native           int primary key identity(1,1)<br />String    uuid.hex       varchar(n)/char(n) primary key<br />int          assigned       int primary key<br /><br />//分页<br />Criteria criteria = session.createCriteria(Article.class);<br />criteria.setFirstResult(first);<br />criteria.setFetchSize(recordsNum);<br />//criteria.setMaxResults(recordsNum);<br />//分组和统è®?br />criteria.setProjection(Projections.groupProperty("age"));<br />//多条件的分组¾lŸè®¡<br />ProjectionList pList = Projections.projectionList();<br />pList.add(Projections.groupProperty("age"));<br />pList.add(Projections.rowCount());<br />criteria.setProjection(pList);<br />//排序<br />criteria.addOrder(Order.desc("id"));<br />criteria.addOrder(Order.asc("id"));<br /><br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">    Article article </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> Article();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">    article.setId(3);</span> <span style="COLOR: #008000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #000000">        article.setTitle(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">mytitle</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        article.setContent(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">mycontent</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        Configuration c </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> Configuration();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        c.configure();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        SessionFactory sf </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> c.buildSessionFactory();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        Session s </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> sf.openSession();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        s.beginTransaction();<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        s.save(article);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        s.flush();<br /><img id="Codehighlighter1_320_352_Open_Image" onclick="this.style.display='none'; Codehighlighter1_320_352_Open_Text.style.display='none'; Codehighlighter1_320_352_Closed_Image.style.display='inline'; Codehighlighter1_320_352_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_320_352_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_320_352_Closed_Text.style.display='none'; Codehighlighter1_320_352_Open_Image.style.display='inline'; Codehighlighter1_320_352_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />        </span> <span style="COLOR: #0000ff">try</span> <span id="Codehighlighter1_320_352_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"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_320_352_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            s.connection().commit();<br /><img id="Codehighlighter1_371_418_Open_Image" onclick="this.style.display='none'; Codehighlighter1_371_418_Open_Text.style.display='none'; Codehighlighter1_371_418_Closed_Image.style.display='inline'; Codehighlighter1_371_418_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_371_418_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_371_418_Closed_Text.style.display='none'; Codehighlighter1_371_418_Open_Image.style.display='inline'; Codehighlighter1_371_418_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />        }</span> </span> <span style="COLOR: #0000ff">catch</span> <span style="COLOR: #000000">(Exception e)</span> <span id="Codehighlighter1_371_418_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"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_371_418_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">Exceptionee<img src="http://www.aygfsteel.com/images/dot.gif" />..</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />        }</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        s.close();</span> </div> <br /> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">Resource ac </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> ClassPathResource(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">/applicationContext.xml</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        XmlBeanFactory xbf </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> XmlBeanFactory(ac);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        IManagerArticleDao dao </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> (IManagerArticleDao)xbf.getBean(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">DAO</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);</span> </div> <img src ="http://www.aygfsteel.com/pear/aggbug/53682.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pear/" target="_blank">pear</a> 2006-06-19 08:13 <a href="http://www.aygfsteel.com/pear/archive/2006/06/19/53682.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自己写了个ejb3的小例子代码 ( ä¹?å›?) http://www.aygfsteel.com/pear/archive/2006/06/18/53614.htmlpearpearSun, 18 Jun 2006 10:09:00 GMThttp://www.aygfsteel.com/pear/archive/2006/06/18/53614.htmlhttp://www.aygfsteel.com/pear/comments/53614.htmlhttp://www.aygfsteel.com/pear/archive/2006/06/18/53614.html#Feedback0http://www.aygfsteel.com/pear/comments/commentRss/53614.htmlhttp://www.aygfsteel.com/pear/services/trackbacks/53614.html今天,你消息驱动了å?
ejb3中的消息驱动Bean的例子�a >GO -->
下面是源代码 下蝲地址



]]>
用JavaScript实现½Ž€å•的表单验证. --作者:(x¨¬)我心依旧http://www.aygfsteel.com/pear/archive/2006/06/16/53398.htmlpearpearFri, 16 Jun 2006 12:42:00 GMThttp://www.aygfsteel.com/pear/archive/2006/06/16/53398.htmlhttp://www.aygfsteel.com/pear/comments/53398.htmlhttp://www.aygfsteel.com/pear/archive/2006/06/16/53398.html#Feedback0http://www.aygfsteel.com/pear/comments/commentRss/53398.htmlhttp://www.aygfsteel.com/pear/services/trackbacks/53398.html 因䨓(f¨´)ä»?2æœˆå¼€å§‹å…¬åæ€¸€ç›´åœ¨å¿™ä¸€ä¸ªé¡¹ç›?所以N个月没来自己的Blog写点东西了呵å‘?今天来发几个½Ž€å•的验证å?希望能帮助一些正在开发web的朋友节省点旉™—´HOHO.½{‰å…¬å¸çš„™å¹ç›®å¿™å®Œ,我还ä¼?x¨¬)在我的Blog上写å‡ÞZ¸€äº›å…³äºŽHibernate的心得和¾léªŒ,希望能帮助一些正在学ä¹?f¨¤n)Web框架的朋å?

// ˜q‡æ×o(h¨´)非法字符
function checkStr(s)
{
 var str0
= " <>'~!@#$%^&*()+=[]\\\ " ; ?/ :{} | .,`  “”‘’_ " ;
  for (var i = 0 ;i < str0.length;i ++ )
 {
  
if (s.indexOf(str0.substring(i,i + 1 )) !=- 1 )
  { alert(
" 输入字符串中包含非法字符(如:(x¨¬)<,>,%½{?! " );
   
return   false ;
  }
 }
 
return   true ;
}
// æ•°å­—
function isNumber(s)
{
  
for ( var loc = 0 ; loc < s.length; loc ++  )
   
if ( (s.charAt(loc)  <   ' 0 ' )  ||  (s.charAt(loc)  >   ' 9 ' ) ){
    alert(
" 误‚¾“入有效数å­?  " );
    
return   false ;
   }
  
return   true ; 
}
// 英文+数字
function isCharNumber(s)
{
  
for ( var loc = 0 ; loc < s.length; loc ++  )
   
if ( (s.charAt(loc)  <   ' 0 ' )  ||  (s.charAt(loc)  >   ' 9 ' ) )   
   
if ( (s.charAt(loc)  <   ' a ' )  ||  (s.charAt(loc)  >   ' z ' ) ) 
   
if ( (s.charAt(loc)  <   ' A ' )  ||  (s.charAt(loc)  >   ' Z ' ) ) 
    {
    alert(
" 只允许英文或数字åQ?/span> " ); 
    
return   false ;
    }
  
return   true ; 
}
// 不可为空
function isNull(s)
{
  
if (s.length  ==   0   ||  s  ==   "" ){
   alert(
" 请不要输入空å€û|¼ " ); 
   
return   false ;
  }
  
return   true ; 
}
// 效验长度
function isLength(s,i)
{
 
if (s.length  >  i){
  alert(
" 长度­‘…出了范å›?  " );
  
return   false ;
 }
 
return   true ;
}
// ç”?sh¨´)子邮äšg
function isEmail(s)
{
if  (s.length  >   50 ){
  alert(
" Email地址长度不能­‘…过50ä½? " )
  document.joinus.email.focus() 
  
return   false ;
}
var regu 
=   " ^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|com|gov|mil|org|cc|edu|biz|int|tv)$ "
var re 
=   new  RegExp(regu);
if  (s.search(re)  !=   - 1 ) {
  
return   true ;
} 
else  {
  alert (
" 误‚¾“入有效合法的E-mail地址åQ?/span> " )
  document.joinus.email.focus() 
  
return   false ;
}
} 


]]>
javamail深入‹¹…出 --作者:(x¨¬)我心依旧http://www.aygfsteel.com/pear/archive/2006/06/16/53396.htmlpearpearFri, 16 Jun 2006 12:37:00 GMThttp://www.aygfsteel.com/pear/archive/2006/06/16/53396.htmlhttp://www.aygfsteel.com/pear/comments/53396.htmlhttp://www.aygfsteel.com/pear/archive/2006/06/16/53396.html#Feedback2http://www.aygfsteel.com/pear/comments/commentRss/53396.htmlhttp://www.aygfsteel.com/pear/services/trackbacks/53396.html阅读全文

]]>
JavaMail中文附äšg处理(转蝲) http://www.aygfsteel.com/pear/archive/2006/06/16/53387.htmlpearpearFri, 16 Jun 2006 12:12:00 GMThttp://www.aygfsteel.com/pear/archive/2006/06/16/53387.htmlhttp://www.aygfsteel.com/pear/comments/53387.htmlhttp://www.aygfsteel.com/pear/archive/2006/06/16/53387.html#Feedback0http://www.aygfsteel.com/pear/comments/commentRss/53387.htmlhttp://www.aygfsteel.com/pear/services/trackbacks/53387.html阅读全文

]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ½ð´¨ÏØ| ¿â³µÏØ| ÁÙÕÄÏØ| Ë«ÅÆÏØ| ÃÅÔ´| ¾°µÂÕòÊÐ| ¶¨ÐËÏØ| ÄϳäÊÐ| ʯ¾°É½Çø| ¹ãÄþÏØ| ³¤ÄþÏØ| °¢À­ÉÆÃË| ºÓÄÏÊ¡| ÇàÉñÏØ| µ¤°ÍÏØ| Õý°²ÏØ| Ê©µéÏØ| Ó¢µÂÊÐ| °¢°ÓÏØ| »ªÈÝÏØ| ¶¨ÌÕÏØ| ¾¸½­ÊÐ| ʯÖù| ¡²ýÏØ| ºþ±±Ê¡| ²ÔÄÏÏØ| ¾ÅÁú³ÇÇø| »·áÏØ| µÂÖÝÊÐ| ³¤ÄþÇø| ÌìË®ÊÐ| ³½ÏªÏØ| ÓͼâÍúÇø| ¿­ÀïÊÐ| ¼¦ÔóÏØ| áéÖÝÊÐ| ÌÒÔ´ÏØ| ¶¼ÔÈÊÐ| ÎâÆìÏØ| ¶¼°²| ÂÀÁºÊÐ|