隨筆-204  評論-90  文章-8  trackbacks-0
           
          1.下載jsch-0.1.24.jar及commons-net-ftp-2.0.jar
          2.設置eclipse:    window -- preferences  -- ant -- Runtime -- Ant Home Entries (Default)下填加上面兩個包即可在eclipse 的所有工程里使用這些功能,挺爽
          3.ant task 網上很多,搜一下,推薦參考:http://www.aygfsteel.com/Good-Game/archive/2009/03/13/248113.html
          4.ftp task:
          <target name="ftp" depends="compile">
            <ftp server="192.168.223" port="21" userid="work" password="abc123" remotedir="/home/work/coin/WEB-INF/lib/" depends="yes" verbose="yes">
             <fileset dir="dist">
              <include name="*.jar" />
             </fileset>
            </ftp>
           </target>
          posted @ 2009-07-01 16:36 一凡 閱讀(856) | 評論 (0)編輯 收藏
          import java.lang.reflect.InvocationTargetException;
          import java.lang.reflect.Method;

          import org.apache.commons.lang.StringUtils;

          import com.sun.org.apache.commons.beanutils.PropertyUtils;


          /**
           * create_date : 2009-6-16
           
          */

          public class TestBean {

              
          private String uid;
              
          private String uname;
              
          private String sex;

              
          public String getUid() {
                  
          return uid;
              }


              
          public void setUid(String uid) {
                  
          this.uid = uid;
              }


              
          public String getUname() {
                  
          return uname;
              }


              
          public void setUname(String uname) {
                  
          this.uname = uname;
              }


              
          public String getSex() {
                  
          return sex;
              }


              
          public void setSex(String sex) {
                  
          this.sex = sex;
              }


              
          public String check() {
                  Method[] methods 
          = this.getClass().getMethods();
                  
          for (int i = 0; i < methods.length; i++{
                      Method method 
          = methods[i];
                      
          if (method.getName().startsWith("get")) {
                          
          try {
                              
          if(StringUtils.isBlank((String)method.invoke(this))){
                                  
          return method.getName().substring(3);
                              }

                          }
           catch (IllegalArgumentException e) {
                              e.printStackTrace();
                          }
           catch (IllegalAccessException e) {
                              e.printStackTrace();
                          }
           catch (InvocationTargetException e) {
                              e.printStackTrace();
                          }

                      }

                  }

                  
          return null;
              }

              
              
          public static void main(String[] args) {
                  TestBean tBean 
          = new TestBean();
                  tBean.setUid(
          "1234");
                  System.out.println(tBean.check());
              }

          }

          posted @ 2009-06-16 15:35 一凡 閱讀(525) | 評論 (0)編輯 收藏

                  在awk中使用shell變量的情況經常出現 , 使用 awk -v實現, 代碼如下:

          var="abc"
          awk 
          -"fst=$var" '{print fst}'
          posted @ 2009-06-09 16:29 一凡 閱讀(273) | 評論 (0)編輯 收藏

          人生, 讓房貸給廢了
          一手字,讓鍵盤給廢了
          電視劇,讓廣告給廢了
          廣告, 讓腦白金給廢了
          豬肉, 讓瘦肉精給廢了
          英雄, 讓美人給廢了
          女孩, 讓大款給廢了
          帥哥, 讓富婆給廢了
          干部, 讓人民幣給廢了
          醫德, 讓醫藥代表給廢了
          書信, 讓電話給廢了
          飯店, 讓政府簽單給廢了
          國足, 讓足協給廢了
          運動員,讓興奮劑給廢了
          生命, 讓醫療費給廢了
          胃,  讓酒給廢了
          肺,  讓香煙給廢了
          兒子, 讓媳婦給廢了
          農民, 讓欠薪給廢了
          法律, 讓法院給廢了
          睡眠, 讓夜總會給廢了
          景點, 讓黃金周給廢了
          小孩, 讓三鹿給廢了
          一個群,讓不說話的給廢了!

          posted @ 2009-04-29 13:56 一凡 閱讀(361) | 評論 (0)編輯 收藏
              在eclipse中,只有按下"."才會有代碼提示功能,通過修改配置來實現多種條件觸發代碼提示:
              1、進入window --> preferences --> java --> Editor --> Content Assist
                 改一下Auto activation triggers for java: 將"."改為".abc"
              2、導出eclipse的Preferences:file->export->General->Preferences 保存為pre.epf
              3、打開pre.epf文件,查找“content_assist_autoactivation”,將“.”改為“.abcdefghijklmnopqrstuvwxyz(,”保存
              4、導入Preferences:file->import 選文件pre.epf
              你會發現,在編輯器里輸入剛才加入的任何一個字都會有代碼提示,哈哈!

          posted @ 2009-03-24 14:45 一凡 閱讀(426) | 評論 (2)編輯 收藏
              問題:在firefox中相同URL不去訪問,所以在刷新驗證碼時就出問題了,不去訪問servlet。
              解決辦法如下:
              
          function refresh(){    
                  
          //重新獲取驗證碼圖片的src屬性
                  document.getElementById("imageField").src='/servlet/MyGraphics'+'?r='+Math.random();
              }
              
              注意:"+'?r='+Math.random()"是必須的
          posted @ 2009-02-17 16:04 一凡 閱讀(1048) | 評論 (4)編輯 收藏

          Ctrl+D   刪除當前行  

            Ctrl+Alt+↓   復制當前行到下一行(復制增加)  

            Ctrl+Alt+↑   復制當前行到上一行(復制增加)  

            Alt+↓   當前行和下面一行交互位置(特別實用,可以省去先剪切,再粘貼了)  

            Alt+↑   當前行和上面一行交互位置(同上)  

            Alt+←   前一個編輯的頁面  

            Alt+→   下一個編輯的頁面(當然是針對上面那條來說了)  

            Alt+Enter   顯示當前選擇資源(工程,or   文件   or文件)的屬性  

            Shift+Enter   在當前行的下一行插入空行(這時鼠標可以在當前行的任一位置,不一定是最后)  

            Shift+Ctrl+Enter在當前行插入空行(原理同上條)  

            Ctrl+Q   定位到最后編輯的地方  

            Ctrl+L   定位在某行   (對于程序超過100的人就有福音了)  

            Ctrl+M   最大化當前的Edit或View   (再按則反之)  

            Ctrl+/   注釋當前行,再按則取消注釋  

            Ctrl+O   快速顯示   OutLine  

            Ctrl+T   快速顯示當前類的繼承結構  

            Ctrl+W   關閉當前Editer  

            Ctrl+K   參照選中的Word快速定位到下一個  

            Ctrl+E   快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)  

            Ctrl+/(小鍵盤)   折疊當前類中的所有代碼  

            Ctrl+×(小鍵盤)   展開當前類中的所有代碼  

            Ctrl+Space   代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)  

            Ctrl+Shift+E   顯示管理當前打開的所有的View的管理器(可以選擇關閉,激活等操作)  

            Ctrl+J   正向增量查找(按下Ctrl+J后,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,

                     則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了)  

            Ctrl+Shift+J   反向增量查找(和上條相同,只不過是從后往前查)  

            Ctrl+Shift+F4   關閉所有打開的Editer  

            Ctrl+Shift+X   把當前選中的文本全部變為小寫  

            Ctrl+Shift+Y   把當前選中的文本全部變為小寫  

            Ctrl+Shift+F   格式化當前代碼  

            Ctrl+Shift+P   定位到對于的匹配符(譬如{})   (從前面定位后面時,光標要在匹配符里面,后面到前面,則反之)  

          posted @ 2009-02-11 14:09 一凡 閱讀(258) | 評論 (0)編輯 收藏
            由于lucene2.0+heritrix一書示例用的網站(http://mobile.pconline.com.cn/,http: //mobile.163.com/)改版了,書上實例不能運行,我又找了一個http://mobile.younet.com/進行開發并成功實現示 例,希望感興趣的同學,近快實踐,如果此網站也改了就又得改extractor了,哈哈!
          search的Extractor代碼如下,(別和書上實例相同)供大家參考:附件里有完整代碼
          package com.luceneheritrixbook.extractor.younet;

          import java.io.BufferedWriter;
          import java.io.File;
          import java.io.FileWriter;
          import java.io.IOException;
          import java.util.Date;

          import org.htmlparser.Node;
          import org.htmlparser.NodeFilter;
          import org.htmlparser.Parser;
          import org.htmlparser.filters.AndFilter;
          import org.htmlparser.filters.HasAttributeFilter;
          import org.htmlparser.filters.HasChildFilter;
          import org.htmlparser.filters.TagNameFilter;
          import org.htmlparser.tags.ImageTag;
          import org.htmlparser.util.NodeIterator;
          import org.htmlparser.util.NodeList;

          import com.luceneheritrixbook.extractor.Extractor;
          import com.luceneheritrixbook.util.StringUtils;

          /**
           * <p></p>
           * 
          @author cnyqiao@hotmail.com
           * @date   Feb 6, 2009 
           
          */

          public class ExtractYounetMoblie extends Extractor {

              @Override
              
          public void extract() {
                  BufferedWriter bw 
          = null;
                  NodeFilter title_filter 
          = new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("class""mo_tit"));
                  NodeFilter attribute_filter 
          = new AndFilter(new TagNameFilter("p"), new HasChildFilter(new AndFilter(new TagNameFilter("span"), new HasAttributeFilter("class""gn_sp1 blue1"))));
                  NodeFilter img_filter 
          = new AndFilter(new TagNameFilter("span"), new HasChildFilter(new TagNameFilter("img")));
                  
                  
          //提取標題信息
                  try {
                      
          //Parser根據過濾器返回所有滿足過濾條件的節點
                      
          // 迭代逐漸查找
                      NodeList nodeList=this.getParser().parse(title_filter);
                      NodeIterator it 
          = nodeList.elements();
                      StringBuffer title 
          = new StringBuffer();
                      
          while (it.hasMoreNodes()) {
                          Node node 
          = (Node) it.nextNode();
                          String[] names 
          = node.toPlainTextString().split(" ");
                          
          for(int i = 0; i < names.length; i++)
                              title.append(names[i]).append(
          "-");
                          title.append(
          new Date().getTime());
                          
          //創建要生成的文件
                          bw = new BufferedWriter(new FileWriter(new File(this.getOutputPath() + title + ".txt")));
                          
          //獲取當前提取頁的完整URL地址
                          int startPos = this.getInuputFilePath().indexOf("mirror"+ 6;
                          String url_seg 
          = this.getInuputFilePath().substring(startPos);
                          url_seg 
          = url_seg.replaceAll("\\\\""/");
                          String url 
          = "http:/" + url_seg;
                          
          //寫入當前提取頁的完整URL地址
                          bw.write(url + NEWLINE);
                          bw.write(names[
          0+ NEWLINE);
                          bw.write(names[
          1+ NEWLINE);
                          
                      }
                      
          // 重置Parser
                      this.getParser().reset();
                      Parser attNameParser 
          = null;
                      Parser attValueParser 
          = null;
                      
          //Parser parser=new Parser("http://www.sina.com.cn");
                      NodeFilter attributeName_filter = new AndFilter(new TagNameFilter("span"), new HasAttributeFilter("class""gn_sp1 blue1"));
                      NodeFilter attributeValue_filter 
          = new AndFilter(new TagNameFilter("span"), new HasAttributeFilter("class""gn_sp2"));
                      String attName 
          = "";
                      String attValue 
          = "";
                      
          // 迭代逐漸查找
                      nodeList=this.getParser().parse(attribute_filter);
                      it 
          = nodeList.elements();
                      
          while (it.hasMoreNodes()) {                
                          Node node 
          = (Node) it.nextNode();
                          attNameParser 
          = new Parser();
                          attNameParser.setEncoding(
          "GB2312");
                          attNameParser.setInputHTML(node.toHtml());
                          NodeList attNameNodeList 
          = attNameParser.parse(attributeName_filter);
                          attName 
          = attNameNodeList.elements().nextNode().toPlainTextString();
                          
                          attValueParser 
          = new Parser();
                          attValueParser.setEncoding(
          "GB2312");
                          attValueParser.setInputHTML(node.toHtml());
                          NodeList attValueNodeList 
          = attValueParser.parse(attributeValue_filter);
                          attValue 
          = attValueNodeList.elements().nextNode().toPlainTextString();
                          bw.write(attName.trim() 
          + attValue.trim());
                          bw.newLine();
                      }
                      
          // 重置Parser
                      this.getParser().reset();
                      String imgUrl 
          = "";
                      String fileType 
          ="";
                      
          // 迭代逐漸查找
                      nodeList=this.getParser().parse(img_filter);
                      it 
          = nodeList.elements();
                      
          while (it.hasMoreNodes()) {                
                          Node node 
          = (Node) it.nextNode();
                          
                          ImageTag imgNode 
          = (ImageTag)node.getChildren().elements().nextNode();
                          imgUrl 
          = imgNode.getAttribute("src");                
                          fileType 
          = imgUrl.trim().substring(imgUrl
                                  .lastIndexOf(
          "."+ 1);
                          
          //生成新的圖片的文件名
                          String new_iamge_file = StringUtils.encodePassword(imgUrl, HASH_ALGORITHM) + "." + fileType;
                          
          //imgUrl = new HtmlPaserFilterTest().replace(new_iamge_file, "+", " ");
                          
          //利用miorr目錄下的圖片生成的新的圖片
                          this.copyImage(imgUrl, new_iamge_file);
                          bw.write(SEPARATOR 
          + NEWLINE);
                          bw.write(new_iamge_file 
          + NEWLINE);
                      }
                      
                      
                  } 
          catch(Exception e) {
                      e.printStackTrace();
                  } 
          finally {
                      
          try{
                          
          if (bw != null)
                              bw.close();
                      }
          catch(IOException e){
                          e.printStackTrace();
                      }
                  }
                  
              }
          }
          運行書上的heritrix實例,并按書上的默認設置進行抓取如下URI:(請自己分析整理)
          http://mobile.younet.com/files/list_1.html
          http://mobile.younet.com/files/list_2.html
          http://mobile.younet.com/files/list_3.html

          posted @ 2009-02-09 15:44 一凡 閱讀(2371) | 評論 (5)編輯 收藏
          轉自:http://feirou520.javaeye.com/blog/290311
          不同的Linux之間copy文件常用有3種方法 ,第一種就是ftp,也就是其中一臺Linux安裝ftp Server,這樣可以另外一臺使用ftp的client程序來進行文件的copy。第二種方法就是采用samba服務,類似Windows 文件copy的方式來操作,比較簡潔方便,第三種就是利用scp命令來進行文件復制。

          scp是有Security的文件copy,基于ssh登錄。操作起來比較方便,比如要把當前一個文件copy到遠程另外一臺主機上,可以如下命令。

           

          scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root

          然后會提示你輸入另外那臺172.19.2.75主機的root用戶的登錄密碼,接著就開始cp和ungzip了

          如果想反過來操作,把文件從遠程主機copy到當前系統,也很簡單。

          scp root@172.19.2.75:/home/root /home/daisy/full.tar.gz
           

          例如:
          copy 本地的檔案到遠程的機器上
          scp /etc/lilo.conf k@net67.ee.oit.edu.tw:/home/k
          會將本地的 /etc/lilo.conf 這個檔案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目錄下。
          copy遠程機器上的檔案到本地來
          scp k@net67.ee.oit.edu.tw:/etc/lilo.conf /etc
          會將 net67.ee.oitdu.tw 中 /etc/lilo.conf 檔案 copy 到本地的 /etc 目錄下。
          保持從來源 host 檔案的屬性
          scp –p k@net67.ee.tw:/etc/lilo.conf /etc
          在此必須注意使用者的權限是否可讀取遠程上的檔案,若想知道更多關于 scp 的使用方法,可去看看 scp 的使用手冊。
          ssh-keygen
          產生公開鑰 (pulib key) 和私人鑰 (private key),以保障 ssh 聯機的安性, 當 ssh 連 shd 服務器,會交換公開鑰上,系統會檢查 /etc/ssh_know_hosts 內儲存的 key,如果找到客戶端就用這個 key 產生一個隨機產生的session key 傳給服務器,兩端都用這個 key 來繼續完成 ssh 剩下來的階段。

          它會產生 identity.pub、identity 兩個檔案,私人鑰存放于identity,公開鑰 存放于 identity.pub 中,接下來使用 scp 將 identity.pub copy 到遠程機器的家目錄下.ssh下的authorized_keys。 .ssh/authorized_keys(這個 authorized_keys 檔案相當于協議的 rhosts 檔案),之后使用者能夠不用密碼去登入。RSA的認證絕對是比 rhosts 認證更來的安全可靠。
          執行:
          scp identity.pub k@linux1.ee.oit.edu.tw:.ssh/authorized_keys

          若在使用 ssh-keygen 產生鑰匙對時沒有輸入密碼,則如上所示不需輸入密碼即可從 net67.ee.oit.edu.tw 去登入 linux1.ee.oit.edu.tw。在此,這里輸入的密碼可以跟帳號的密碼不同,也可以不輸入密碼。

          posted @ 2008-12-30 18:44 一凡 閱讀(413) | 評論 (0)編輯 收藏
              1、查看CPU位數:getconf LONG_BIT或arch或file /sbin/init或cat /proc/cpuinfo | grep "model name" | cut -d ':' -f 2

              2、查看CPU信息:more /proc/cpuinfo

          posted @ 2008-12-11 12:01 一凡 閱讀(222) | 評論 (0)編輯 收藏
          僅列出標題
          共21頁: First 上一頁 6 7 8 9 10 11 12 13 14 下一頁 Last 
          主站蜘蛛池模板: 凤城市| 沾益县| 凉城县| 黄石市| 丹阳市| 宁国市| 四川省| 万宁市| 横山县| 七台河市| 黎川县| 石屏县| 商洛市| 佳木斯市| 北宁市| 和顺县| 突泉县| 元氏县| 手机| 太原市| 盐源县| 五指山市| 鄢陵县| 本溪市| 北川| 奎屯市| 彝良县| 濮阳市| 陇川县| 京山县| 吉木乃县| 云浮市| 且末县| 安徽省| 双桥区| 新巴尔虎右旗| 盱眙县| 新昌县| 团风县| 钦州市| 葵青区|