Programmer

          追逐夢想的人
          隨筆 - 6, 文章 - 0, 評論 - 5, 引用 - 0
          數據加載中……

          2010年3月24日

          部署spring2.56中的例子jpetstore

          部署環境:tomcat6.0.18   jdk5   mysql5.1

          1.   下載  到www.springsource.org/download 中 下載spring-framework-2.5.6.SEC01-with-dependencies
          2.   jpetstores說明(自己翻譯jpetstore中的readme.txt,本人英語不好 ,翻譯不到位請手下留情)
               配備spring管理的中間層和ibatis作為數據訪問策略數據層,與spring的事務 和抽象DAO相結合。能使用本地的JDBC或者JTA 和2個數據庫中的后者一起工作
               使用了相同的數據模型和演示內容來作為jpetstore的原型,可以分別的查看 "WEB-INF/dataAccessContext-local.xml","WEB-INF/dataAccessContext-jta.xml"
               上下文定義的細節。
               提供了相同的用戶界面兩種不同的Web層實現,一個基于spring mvc,一個基于struts1.1,后者與jpetstore關系密切,但是用JSTL重寫作為jsp的實現,
               盡可能的具有可比性。查看"WEB-INF/web.xml", "WEB-INF/petstore-servlet.xml",and "WEB-INF/struts-config.xml" 的細節。
               與原來的jpetstore原型相比,這個實現在內部結構和松耦合方面有了顯著的改善。支持的應用上下文的概念,現在核心就是構建 應用對象(application objects)
               最顯著的改善就是 PetStoreLogic,現在叫做PetStoreFacade,它不再與配置,資源,事務的細節相關
               注意以spring為基礎的web層實現是故意與以struts為基礎的相似并不是打算改進錯誤信息等方面的現狀。jpetstore包含2個不同實現的web層來概括除了不同
               之外在各自程序設計模型的相同點,也闡明不同風格的配置。
               這個版本的jpetstore也展示了spring遠程處理的可選項 如:Hessian, Burlap, RMI, and Web Services via Apache Axis.他們都提供了即插即用通過
               默認的web應用(注意RMI是添加注釋避免與EJB容器沖突)“客戶端”目錄包含了一個通過所有協議調用OoderService輸出的簡單控制行客戶端。
          3.   部署
          • 創建數據庫  先創建數據庫 執行\jpetstore\db\mysql里面 jpetstore-mysql-schema.sql,jpetstore-mysql-dataload.sql 用來建表和導入數據(不同數據庫自己對應查找)
          • 改數據庫配置文件  在\jpetstore\war\WEB-INF  修改jdbc.properties(自己對應自己的設置)
            1 jdbc.driverClassName=com.mysql.jdbc.Driver
            2 jdbc.url=jdbc:mysql://localhost/jpetstore?
            3 jdbc.username=root
            4 jdbc.password=root
            5 
          • web層實現的選擇  在\jpetstore\war\WEB_INF   web.xml代碼
            <servlet-mapping>
                     
            <!--使用spring mvc默認 -->
                
            <servlet-name>petstore</servlet-name>
                    
            <!--使用struts -->
            <!--<servlet-name>action</servlet-name>-->
                
            <url-pattern>*.do</url-pattern>
            </servlet-mapping>
          • 部署 /jpetstore 運行warfile.bat 生成一個文件夾dist 把里面的jpetstore.war復制到 tomcat目錄下的webapps  ,把對應的數據庫驅動放到tomcat\lib下
          • 運行tomcat 打開瀏覽器http://localhost:8080/jpetstore 可以看到jpetstore頁面  have fun!



          posted @ 2010-03-24 13:43 霜の哀傷 閱讀(1786) | 評論 (2)編輯 收藏

          2007年4月13日

          java學習筆記(xml解析)

          最近學習xml,把學習的代碼發上來   希望對新手有用
          這是note.xml
          <?xml version="1.0" encoding="gb2312" ?> 
          <notes>
          <note date="2007-4-12">
          <from>小紅</from> 
          <to>小林</to> 
          <message>周末一起去吃火鍋呀</message> 
          </note>
          </notes>

          這是dom解析xml代碼
          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileNotFoundException;
          import java.io.IOException;
          import java.io.InputStream;

          import javax.xml.parsers.DocumentBuilder;
          import javax.xml.parsers.DocumentBuilderFactory;
          import javax.xml.parsers.ParserConfigurationException;

          import org.w3c.dom.Document;
          import org.w3c.dom.Element;
          import org.w3c.dom.Node;
          import org.w3c.dom.NodeList;
          import org.xml.sax.SAXException;


          class  DomXMLTest
          {
              
          public static void main(String[] args)
              {   
                  
          try{
                   
          //(1)得到DOM解析器的工廠實例
                  DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();     
                    
          //(2)從DOM工廠獲得DOM解析器
                  DocumentBuilder  builder=factory.newDocumentBuilder(); 
                  File f
          =new File("note.xml");
                   
          //(3)把要解析的XML文檔轉化為輸入流,以便DOM解析器解析它
                  InputStream  is=new FileInputStream(f);  
                  
          //(4)解析XML文檔的輸入流,得到一個Document
                  Document doc=builder.parse(is);    
                  
          //(5)得到XML文檔的根節點
                  Element  root=doc.getDocumentElement(); 
                   
          //(6)得到節點的子節點
                  NodeList  notes=root.getChildNodes();   

                    
          for(int i=0;i<notes.getLength();i++)
                    {
                         Node note
          =notes.item(i);
                      
          if(note.getNodeType()==Node.ELEMENT_NODE)
                          {  
                              
          //(7)取得節點的屬性值
                              String date =note.getAttributes().getNamedItem("date").getNodeValue(); 
                              System.out.println(date);
                              
          // (8)輪循子節點
                              for(Node node=note.getFirstChild();node!=null;node=node.getNextSibling()) 
                                   {
                                          
          if(node.getNodeType()==Node.ELEMENT_NODE)
                                               {
                                                      
          if(node.getNodeName().equals("from"))
                                                      {
                                                           String from
          =node.getFirstChild().getNodeValue();
                                                           System.out.println(from);
                                                       }
                                                      
          if(node.getNodeName().equals("to"))
                                                       {
                                                            String to
          =node.getFirstChild().getNodeValue();
                                                             System.out.println(to);
                                                       }
                                                       
          if(node.getNodeName().equals("message"))
                                                       {
                                                             String message
          =node.getFirstChild().getNodeValue();
                                                             System.out.println(message);
                                                        }
                                                }
                                     }
                            }

                  }
                  }
                  
          catch(ParserConfigurationException e)
                  {
                      e.printStackTrace();
                  }
                  
          catch(SAXException e)
                  {
                      e.printStackTrace();
                  }
                  
          catch(IOException e)
                  {
                      e.printStackTrace();
                  }
               }                                  
          }

          還有 出現 下面的錯誤  是xml的格式不對 ,我就應為在 <?xml 前面多個空格 就找了好幾天的錯誤
          特別感謝那些幫我找問題的高手,用范偉的話說  謝謝啊
          The processing instruction target matching "[xX][mM][lL]" is not allowed.




          posted @ 2007-04-13 18:08 霜の哀傷 閱讀(444) | 評論 (1)編輯 收藏

          2007年4月10日

          學習筆記(java中的io操作)

          (1)File的操作
          import java.io.File;
          import java.io.IOException;
          class FileDemo{
           
          public static void main(String args[]){
            
          try{
             File f
          =new File("file1.txt");
             
             System.out.println(
          "文件是否存在: "+f.exists());
               
          if(!f.exists())
                {    
                     System.out.println(
          "文件不否存在,開始創建!");
                     f.createNewFile();
                }
             System.out.println(
          "文件是否存在: "+f.exists());
             System.out.println(
          "是文件嗎: "+f.isFile());
             System.out.println(
          "是文件夾嗎: "+f.isDirectory());   
             System.out.println(
          "可否讀取文件: "+f.canRead);
             System.out.println(
          "可否修改文件: "+f.canWrite());
             System.out.println(
          "是否隱藏: "+f.isHidden());
             System.out.println(
          "文件名稱: "+f.getName());
             System.out.println(
          "標準文件名: "+f.getCanonicalFile()); 
             System.out.println(
          "相對路徑: "+f.getPath());  
             System.out.println(
          "絕對路徑: "+f.getAbsolutePath());
             System.out.println(
          "標準路徑: "+f.getCanonicalPath());
             System.out.println(
          "最后修改時間: "+f.lastModified());
             System.out.println(
          "文件大小: "+f.length()+" 字節");        
            } 
            
          catch(IOException ex){
             ex.printStackTrace();
            }   
           }
          }

          (2)簡單文件讀寫
          import java.io.BufferedReader;
          import java.io.BufferedWriter;
          import java.io.FileWriter;
          import java.io.FileReader;
          import java.io.IOException;
          import java.io.File;
          class test{
           
          public static void main(String args[]){
            
          try{
             File f
          =new File("file1.txt");
             
          if(!f.exists())
                {
                     f.createNewFile();
                }
             FileWriter fw
          =new FileWriter(f);
             BufferedWriter bw
          =new BufferedWriter(fw);
             bw.write(
          "大家好,我正在學習Java");
             bw.newLine();
             bw.write(
          "請多多指教");
             System.out.println(
          "file1.txt寫入成功!***************開始讀..\n");
             bw.flush();
             bw.close();
             
             FileReader fr
          =new FileReader("file1.txt");
             BufferedReader br
          =new BufferedReader(fr);
             String temp
          =null;
             
          do{
              temp
          =br.readLine();
              System.out.println(temp
          ==null?"":temp);
             }
             
          while(temp!=null);
             fr.close();
             br.close();
             
             System.out.println(
          "file1.txt已經讀完!*************");
            }
            
            
          catch(IOException ex){
             ex.printStackTrace();
            }   
           }
          }


          (3)分隔符讀取
          import java.io.File;
          import java.io.FileWriter;
          import java.io.FileReader;
          import java.io.BufferedWriter;
          import java.io.BufferedReader;
          import java.io.IOException;
          import java.util.StringTokenizer;
          class StringTokenizerTest
          {
              
          public static void main(String[] args) 
              {   
                  
          try{
                           File f
          =new File("file1.txt");
                           
          if(!f.exists())
                          {
                             f.createNewFile();
                          }
                          FileWriter fw
          =new FileWriter(f);
                          BufferedWriter bw
          =new BufferedWriter(fw);
                          bw.write(
          "小明,男,1980-1-1,13624577654");
                          bw.newLine();
                          bw.write(
          "小強,男,1984-2-1,13634375634");
                          bw.newLine();
                          bw.write(
          "小紅,女,1986-1-5,13724777774");
                          System.out.println(
          "數據寫入成功!");
                          bw.flush();
                          bw.close();

                          FileReader fr
          =new FileReader(f);
                          BufferedReader br
          =new BufferedReader(fr);
                          String s
          =null;
                          
                          
          while  ((s  =br.readLine())!=  null)  
                          {  
                               StringTokenizer  st  
          =  new  StringTokenizer(s,",");  
                               System.out.println(s  
          ==  null?" " : s);  
                               
          while  (st.hasMoreTokens())  {  
                                 String  name  
          =  st.nextToken();  
                                 String  sex  
          =  st.nextToken();  
                                 String  birthday  
          =  st.nextToken();  
                                 String  tel  
          =  st.nextToken();  
                                 System.out.println(  
          "姓名:  "  +  name);  
                                 System.out.println(  
          "性別:  "  +  sex);  
                                 System.out.println(  
          "生日:  "  +  birthday);  
                                 System.out.println(  
          "電話:  "  +  tel);  
                                 System.out.println(  
          "_______________________________  ");  
                                    }  
                          }   
                          
          while(s!=null);
                          fr.close();
                          br.close();          
                     }
                     
          catch(IOException e){
                         e.printStackTrace();
                   }
              }
          }



          posted @ 2007-04-10 23:53 霜の哀傷 閱讀(1266) | 評論 (0)編輯 收藏

          2007年4月8日

          JavaScript 技巧


          1. oncontextmenu="window.event.returnValue=false" 將徹底屏蔽鼠標右鍵
          <table oncontextmenu=return(false)></table> 可用于Table

          2. <body onselectstart="return false"> 取消選取、防止復制

          3. onpaste="return false" 不準粘貼

          4. oncopy="return false;" oncut="return false;" 防止復制

          5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址欄前換成自己的圖標

          6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夾中顯示出你的圖標

          7. <input style="ime-mode:disabled"> 關閉輸入法

          8. 永遠都會帶著框架
          <script language="JavaScript"><!--
          if (window == top)top.location.href = "frames.htm"; //frames.htm為框架網頁
          // --></script>

          9. 防止被人frame
          <SCRIPT LANGUAGE=JAVASCRIPT><!--
          if (top.location != self.location)top.location=self.location;
          // --></SCRIPT>

          10. 網頁將不能被另存為
          <noscript><iframe src="/blog/*.html>";</iframe></noscript>

          11. <input type=button value=查看網頁源代碼
          onclick="window.location = "view-source:"+ "http://www.williamlong.info"">

          12.刪除時確認
          <a href="javascript:if(confirm("確實要刪除嗎?"))location="boos.asp?&areyou=刪除&page=1"">刪除</a>

          13. 取得控件的絕對位置
          //Javascript
          <script language="Javascript">
          function getIE(e){
          var t=e.offsetTop;
          var l=e.offsetLeft;
          while(e=e.offsetParent)
          alert("top="+t+"/nleft="+l);
          }
          </script>

          //VBScript
          <script language="VBScript"><!--
          function getIE()
          dim t,l,a,b
          set a=document.all.img1
          t=document.all.img1.offsetTop
          l=document.all.img1.offsetLeft
          while a.tagName<>"BODY"
          set a = a.offsetParent
          t=t+a.offsetTop
          l=l+a.offsetLeft
          wend
          msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
          end function
          --></script>

          14. 光標是停在文本框文字的最后
          <script language="javascript">
          function cc()
          {
          var e = event.srcElement;
          var r =e.createTextRange();
          r.moveStart("character",e.value.length);
          r.collapse(true);
          r.select();
          }
          </script>
          <input type=text name=text1 value="123" onfocus="cc()">

          15. 判斷上一頁的來源
          javascript:
          document.referrer


          16. 最小化、最大化、關閉窗口
          <object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
          <param name="Command" value="Minimize"></object>
          <object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
          <param name="Command" value="Maximize"></object>
          <OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
          <PARAM NAME="Command" VALUE="Close"></OBJECT>
          <input type=button value=最小化 onclick=hh1.Click()>
          <input type=button value=最大化 onclick=hh2.Click()>
          <input type=button value=關閉 onclick=hh3.Click()>
          本例適用于IE

          17.屏蔽功能鍵Shift,Alt,Ctrl
          <script>
          function look(){
          if(event.shiftKey)
          alert("禁止按Shift鍵!"); //可以換成ALT CTRL
          }
          document.onkeydown=look;
          </script>

          18. 網頁不會被緩存
          <META HTTP-EQUIV="pragma" CONTENT="no-cache">
          <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
          <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
          或者<META HTTP-EQUIV="expires" CONTENT="0">

          19.怎樣讓表單沒有凹凸感?
          <input type=text style="border:1 solid #000000">

          <input type=text style="border-left:none; border-right:none; border-top:none; border-bottom:

          1 solid #000000"></textarea>

          20.<div><span>&<layer>的區別?
          <div>(division)用來定義大段的頁面元素,會產生轉行
          <span>用來定義同一行內的元素,跟<div>的唯一區別是不產生轉行
          <layer>是ns的標記,ie不支持,相當于<div>

          21.讓彈出窗口總是在最上面:
          <body onblur="this.focus();">

          22.不要滾動條?
          讓豎條沒有:
          <body style="overflow:scroll;overflow-y:hidden">
          </body>
          讓橫條沒有:
          <body style="overflow:scroll;overflow-x:hidden">
          </body>
          兩個都去掉?更簡單了
          <body scroll="no">
          </body>

          23.怎樣去掉圖片鏈接點擊后,圖片周圍的虛線?
          <a href="#" onFocus="this.blur()"><img src="/blog/logo.jpg" border=0></a>

          24.電子郵件處理提交表單
          <form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain">
          <input type=submit>
          </form>

          25.在打開的子窗口刷新父窗口的代碼里如何寫?
          window.opener.location.reload()

          26.如何設定打開頁面的大小
          <body onload="top.resizeTo(300,200);">
          打開頁面的位置<body onload="top.moveBy(300,200);">

          27.在頁面中如何加入不是滿鋪的背景圖片,拉動頁面時背景圖不動
          <STYLE>
          body
          {background-image:url(/blog/logo.gif); background-repeat:no-repeat;
          background-position:center;background-attachment: fixed}
          </STYLE>

          28. 檢查一段字符串是否全由數字組成
          <script language="Javascript"><!--
          function checkNum(str){return str.match(//D/)==null}
          alert(checkNum("1232142141"))
          alert(checkNum("123214214a1"))
          // --></script>

          29. 獲得一個窗口的大小
          document.body.clientWidth; document.body.clientHeight

          30. 怎么判斷是否是字符
          if (/[^/x00-/xff]/g.test(s)) alert("含有漢字");
          else alert("全是字符");

          31.TEXTAREA自適應文字行數的多少
          <textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
          </textarea>

          32. 日期減去天數等于第二個日期
          <script language=Javascript>
          function cc(dd,dadd)
          {
          //可以加上錯誤處理
          var a = new Date(dd)
          a = a.valueOf()
          a = a - dadd * 24 * 60 * 60 * 1000
          a = new Date(a)
          alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
          }
          cc("12/23/2002",2)
          </script>

          33. 選擇了哪一個Radio
          <HTML><script language="vbscript">
          function checkme()
          for each ob in radio1
          if ob.checked then window.alert ob.value
          next
          end function
          </script><BODY>
          <INPUT name="radio1" type="radio" value="style" checked>Style
          <INPUT name="radio1" type="radio" value="barcode">Barcode
          <INPUT type="button" value="check" onclick="checkme()">
          </BODY></HTML>

          34.腳本永不出錯
          <SCRIPT LANGUAGE="JavaScript">
          <!-- Hide
          function killErrors() {
          return true;
          }
          window.onerror = killErrors;
          // -->
          </SCRIPT>

          35.ENTER鍵可以讓光標移到下一個輸入框
          <input onkeydown="if(event.keyCode==13)event.keyCode=9">


          36. 檢測某個網站的鏈接速度:
          把如下代碼加入<body>區域中:
          <script language=Javascript>
          tim=1
          setInterval("tim++",100)
          b=1
          var autourl=new Array()
          autourl[1]="www.njcatv.net"
          autourl[2]="javacool.3322.net"
          autourl[3]="www.sina.com.cn"
          autourl[4]="www.nuaa.edu.cn"
          autourl[5]="www.cctv.com"
          function butt(){
          document.write("<form name=autof>")
          for(var i=1;i<autourl.length;i++)
          document.write("<input type=text name=txt"+i+" size=10 value="/blog/測試中......>" =》<input type=text
          name=url"+i+" size=40> =》<input type=button value=GO

          onclick=window.open(this.form.url"+i+".value)><br/>")
          document.write("<input type=submit value=刷新></form>")
          }
          butt()
          function auto(url)
          else

          b++
          }
          function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1

          onerror=auto("http://"+autourl+"")>")}
          run()</script>

          37. 各種樣式的光標
          auto :標準光標
          default :標準箭頭
          hand :手形光標
          wait :等待光標
          text :I形光標
          vertical-text :水平I形光標
          no-drop :不可拖動光標
          not-allowed :無效光標
          help :?幫助光標
          all-scroll :三角方向標
          move :移動標
          crosshair :十字標
          e-resize
          n-resize
          nw-resize
          w-resize
          s-resize
          se-resize
          sw-resize

          38.頁面進入和退出的特效
          進入頁面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
          推出頁面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)">
          這個是頁面被載入和調出時的一些特效。duration表示特效的持續時間,以秒為單位。transition表示使用哪種特效,取值為1-23:
            0 矩形縮小
            1 矩形擴大
            2 圓形縮小
            3 圓形擴大
            4 下到上刷新
            5 上到下刷新
            6 左到右刷新
            7 右到左刷新
            8 豎百葉窗
            9 橫百葉窗
            10 錯位橫百葉窗
            11 錯位豎百葉窗
            12 點擴散
            13 左右到中間刷新
            14 中間到左右刷新
            15 中間到上下
            16 上下到中間
            17 右下到左上
            18 右上到左下
            19 左上到右下
            20 左下到右上
            21 橫條
            22 豎條
            23 以上22種隨機選擇一種

          39.在規定時間內跳轉
          <META http-equiv=V="REFRESH" content="5;URL=http://www.williamlong.info">

          40.網頁是否被檢索
          <meta name="ROBOTS" content="屬性值">
            其中屬性值有以下一些:
            屬性值為"all": 文件將被檢索,且頁上鏈接可被查詢;
            屬性值為"none": 文件不被檢索,而且不查詢頁上的鏈接;
            屬性值為"index": 文件將被檢索;
            屬性值為"follow": 查詢頁上的鏈接;
            屬性值為"noindex": 文件不檢索,但可被查詢鏈接;
            屬性值為"nofollow": 文件不被檢索,但可查詢頁上的鏈接。

          最大化窗口?
          <script language="JavaScript">
          <!--
          self.moveTo(0,0)
          self.resizeTo(screen.availWidth,screen.availHeight)
          //-->
          </script>




          解 決問題:由于層與下拉框之間的優先級是:下拉框 > 層,因此在顯示的時候,會因為優先級的次序而會出現如上問題。(如果幾個元素都是層的話,我們可以通過層的 z-index 屬性來設置)解決辦法就是:給層中放一個優先級比下拉框更高的元素(iframe),從而解決此問題!具體解決代碼如下:

          <div id="menu" style="position:absolute; visibility:hidden; top:20px; left:20px; width:100px; height:200px; background-color:#6699cc;">
          <table>
          <tr><td>item 1</td></tr>
          <tr><td>item 2</td></tr>
          <tr><td>item 3</td></tr>
          <tr><td>item 4</td></tr>
          <tr><td>item 5</td></tr>
          </table>
          <iframe src="/blog/javascript:false" style="position:absolute; visibility:inherit; top:0px; left:0px; width:100px; height:200px; z-index:-1; filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';"></iframe>
          </div>

          <a href="#" onclick="document.getElementById('menu').style.visibility='visible'">menu</a>

          <form>
          <select><option>A form selection list</option></select>
          </form>

          輸入框也可以做的很漂亮了
          <div align="center"><input type="hidden" name="hao" value="yes">
          外向數:<input
          name=answer
          style="color: #ff0000; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid #c0c0c0">
           沒回答的題數:<input
          name=unanswer id="unanswer"
          style="color: #ff0000; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid #c0c0c0">
          <br/>
          總得分:
          <input
          name=score id="score"
          style="color: #ff0000; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid #c0c0c0">
           結    論:
          <input
          name=xgjg id="xgjg"
          style="color: #ff0000; border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid #c0c0c0">
          <br/>
          <br/>

          <input onClick=processForm(this.form) style="FONT-FAMILY: 宋體; FONT-SIZE: 9pt" type=button value=查看結果 name="button">
          <input type="reset" name="Submit" value="重做">
          </div>
          注意:修改<body>為<body onload="max.Click()">即為打開最大

          化窗口,而如果改為<body onload="min.Click()">就變為窗口一打開就最小化

          <object id="min" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
          <param name="Command" value="Minimize">
          </object> <object id="max" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
          <param name="Command" value="Maximize">
          </object>
          </body>

          頁面自動刷新(說明)

          當你做網頁時,是不是有的時候想讓你的網頁自動不停刷新,或者過一段時間自動跳轉到另外一個你自己設定的頁面?其實實現這個效果非常地簡單,而且這個效果甚至不能稱之為特效。你只要把如下代碼加入你的網頁中就可以了。

          1,頁面自動刷新:把如下代碼加入<head>區域中<meta http-equiv="refresh" content="20">,其中20指每隔20秒刷新一次頁面.

          2, 頁面自動跳轉:把如下代碼加入<head>區域中<meta http-equiv="refresh" content="20;url=http://www.williamlong.info">,其中20指隔20秒后跳轉到http: //www.williamlong.info頁面。

          頁面自動關閉

          5000是指時間<body onLoad="setTimeout(window.close, 5000)">

          彈出窗口自動關閉

          10秒后彈出窗口自動關閉

          注意:在新的tan.htm的body中要加 <onLoad="closeit()">
          head

          <script language="JavaScript">

          <!--

          var gt = unescape('%3e');

          var popup = null;

          var over = "Launch Pop-up Navigator";

          popup = window.open('', 'popupnav', 'width=225,height=235,resizable=1,scrollbars=auto');

          if (popup != null) {

          if (popup.opener == null) {

          popup.opener = self;

          }

          popup.location.href = 'tan.htm';

          }

          // -->

          </script>
          <body>注意:這段代碼是在新建文件中的
          <script language="JavaScript">

          function closeit()

          </script>

          這個可不是<iframe>(引用)呀。是直接調用的。以下代碼加入<body>區域

          <object type="text/x-scriptlet" width="800" height="1000" data="../index.htm">
          </object>


          posted @ 2007-04-08 23:38 霜の哀傷 閱讀(277) | 評論 (0)編輯 收藏

          2007年4月3日

          EditPlus 用戶工具配置

           

          工具集成——編譯器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis)
          在“工具→參數選擇→用戶工具”選項頁設置,設置步驟
          ① 設置組名稱,這里也可以不設置
          ② 單擊“添加工具→應用程序”按鈕并進行如下設置
          ③ 各種類似"$(FilePath)"的參數可以在文本框右側的箭頭下拉菜單中獲取,具體含義如下
          參數 描述
          $(FilePath) 文件路徑(文件全名,含目錄和文件名)
          $(FileDir) 文件目錄(不帶文件名)
          $(FileName) 文件名(不帶目錄)
          $(FileNameNoExt) 不帶擴展名的文件名(不帶目錄)
          $(FileExt) 擴展名(當前文件)
          $(ProjectName) 工程名稱(當前工程名)
          $(CurLine) 當前行號(光標位置處的行號)
          $(CurCol) 當前列號(光標位置處的列號)
          $(CurSel) 當前文本(插入當前選定文本)
          $(CurWord) 當前單詞(插入當前單詞)
          $(WindowList) 顯示當前窗口列表并選擇特定文件


          例子 1. Java 編譯器

          菜單文本:Java 編譯器
          命令:c:\java\bin\javac.exe
          參數:"$(FilePath)"
          初始目錄:$(FileDir)
          捕獲輸出:開啟

          要運行已編譯的 Java 類文件,你可以進行如下設置:
          菜單文本:Java
          命令:c:\java\bin\java.exe
          參數:$(FileNameNoExt)
          初始目錄:$(FileDir)
          “命令”部分應當替換為實際的 Java 解釋器的路徑。

          例子 2. Borland C++

          菜單文本:Borland C
          命令:c:\bc\bin\bcc32.exe
          參數:-Ic:\bc\include -Lc:\bc\lib -n$(FileDir) $(FilePath)
          初始目錄:c:\bc\bin
          捕獲輸出:開啟

          例子 3. Visual C++

          菜單文本:Visual C++
          命令:c:\msdev\vc98\bin\cl.exe
          參數:"$(FilePath)"
          初始目錄:$(FileDir)
          捕獲輸出:開啟

          例子 4. Inno Setup
          菜單文本:編譯 Inno
          命令:C:\Program Files\Inno Setup 4\Compil32.exe”
          參數:/cc $(FileName)
          初始目錄:$(FileDir)
          捕獲輸出:開啟

          例子 5. nsis
          菜單文本:編譯 nsis
          命令:C:\NSIS\makensis.exe
          參數:$(FileName)
          初始目錄:$(FileDir)
          捕獲輸出:開啟

          例子 6. C#
          菜單文本:編譯 C#
          命令:C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\csc.exe
          參數:$(FileName)
          初始目錄:$(FileDir)
          捕獲輸出:開啟

          在上面設置中,在命令部分,必須使用系統中各自編譯器的絕對路徑。

          設置完畢后,你可以在“工具”菜單運行對應工具了,運行結果會顯示在底部的輸出窗口,你也可以通過快捷鍵(Ctrl + 0-9) 運行,或者是通過“用戶工具欄”的快捷按鈕運行。

          要運行已編譯的 *.exe 文件,你可以進行如下設置(此時可執行文件需要和編譯文件同名):
          菜單文本:Run
          命令:$(FileNameNoExt)
          參數:
          初始目錄:$(FileDir)

          原文章地址:http://www.cppblog.com/shyli/archive/2006/12/17/16531.aspx

          posted @ 2007-04-03 22:12 霜の哀傷 閱讀(580) | 評論 (0)編輯 收藏

          java排序常見算法

          • 選擇排序
          將要排序的對象分作兩部份,一個是已排序的,一個是未排序的,從後端未排序部份選擇一個最小值,並放入前端已排序部份的最後一個,例如:

          排序前:70 80 31 37 10 1 48 60 33 80

          1. [1] 80 31 37 10 70 48 60 33 80 選出最小值1
          2. [1 10] 31 37 80 70 48 60 33 80 選出最小值10
          3. [1 10 31] 37 80 70 48 60 33 80 選出最小值31
          4. [1 10 31 33] 80 70 48 60 37 80 ......
          5. [1 10 31 33 37] 70 48 60 80 80 ......
          6. [1 10 31 33 37 48] 70 60 80 80 ......
          7. [1 10 31 33 37 48 60] 70 80 80 ......
          8. [1 10 31 33 37 48 60 70] 80 80 ......
          9. [1 10 31 33 37 48 60 70 80] 80 ......

          • 插入排序
          像是玩樸克一樣,我們將牌分作兩堆,每次從後面一堆的牌抽出最前端的牌,然後插入前面一堆牌的適當位置,例如:

          排序前:92 77 67 8 6 84 55 85 43 67

          1. [77 92] 67 8 6 84 55 85 43 67 將77插入92前
          2. [67 77 92] 8 6 84 55 85 43 67 將67插入77前
          3. [8 67 77 92] 6 84 55 85 43 67 將8插入67前
          4. [6 8 67 77 92] 84 55 85 43 67 將6插入8前
          5. [6 8 67 77 84 92] 55 85 43 67 將84插入92前
          6. [6 8 55 67 77 84 92] 85 43 67 將55插入67前
          7. [6 8 55 67 77 84 85 92] 43 67 ......
          8. [6 8 43 55 67 77 84 85 92] 67 ......
          9. [6 8 43 55 67 67 77 84 85 92] ......

          • 氣泡排序法
          顧名思義,就是排序時,最大的元素會如同氣泡一樣移至右端,其利用比較相鄰元素的方法,將大的元素交換至右端,所以大的元素會不斷的往右移動,直到適當的位置為止。

          基本的氣泡排序法可以利用旗標的方式稍微減少一些比較的時間,當尋訪完陣列後都沒有發生任何的交換動作,表示排序已經完成,而無需再進行之後的迴圈比較與交換動作,例如:

          排序前:95 27 90 49 80 58 6 9 18 50

          1. 27 90 49 80 58 6 9 18 50 [95] 95浮出
          2. 27 49 80 58 6 9 18 50 [90 95] 90浮出
          3. 27 49 58 6 9 18 50 [80 90 95] 80浮出
          4. 27 49 6 9 18 50 [58 80 90 95] ......
          5. 27 6 9 18 49 [50 58 80 90 95] ......
          6. 6 9 18 27 [49 50 58 80 90 95] ......
          7. 6 9 18 [27 49 50 58 80 90 95] 由於接下來不會再發生交換動作,排序提早結束

          public class BasicSort {
          //選擇排序
          public static void selectionSort(int[] number) {
          for(int i = 0; i < number.length - 1; i++) {
          int m = i;
          for(int j = i + 1; j < number.length; j++)
          if(number[j] < number[m])
          m = j;

          if(i != m)
          swap(number, i, m);
          }
          }
          //插入排序
          public static void injectionSort(int[] number) {
          for(int j = 1; j < number.length; j++) {
          int tmp = number[j];
          int i = j - 1;
          while(tmp < number[i]) {
          number[i+1] = number[i];
          i--;
          if(i == -1)
          break;
          }

          number[i+1] = tmp;
          }
          }
          //冒泡排序
          public static void bubbleSort(int[] number) {
          boolean flag = true;

          for(int i = 0; i < number.length-1 && flag; i++) {
          flag = false;
          for(int j = 0; j < number.length-i-1; j++) {
          if(number[j+1] < number[j]) {
          swap(number, j+1, j);
          flag = true;
          }
          }
          }
          }

          private static void swap(int[] number, int i, int j) {
          int t;
          t = number[i];
          number[i] = number[j];
          number[j] = t;
          }
          }

          posted @ 2007-04-03 10:40 霜の哀傷 閱讀(2023) | 評論 (2)編輯 收藏

          主站蜘蛛池模板: 四会市| 临泽县| 宁武县| 凤山县| 大埔县| 湟中县| 江津市| 凤城市| 彭州市| 育儿| 建德市| 广汉市| 普兰县| 绥化市| 巴东县| 比如县| 海原县| 湟中县| 共和县| 平乐县| 岳池县| 靖安县| 乐业县| 汝南县| 安陆市| 芮城县| 滨州市| 普兰店市| 高青县| 永宁县| 江川县| 临江市| 邛崃市| 涞水县| 淮北市| 营口市| 天台县| 株洲市| 安化县| 嘉峪关市| 茌平县|