posts - 122,  comments - 25,  trackbacks - 0
          1、SSH
          遠程登錄遠程服務器:ssh root@192.168.1.100,按提示輸入密碼,即可登錄遠程服務器進行操作。

          2、SCP
          scp 就是 secure copy, 是用來進行遠程文件拷貝。數(shù)據(jù)傳輸使用ssh1,并且和ssh1使用相同的認證方式提供相同的安全保證rcp不同的是,scp會要求你輸入密碼。命令格式如下:

          scp 本地用戶名@IP地址:文件名遠程用戶名@IP地址:文件名2

          選項說明(詳細的可用 man scp查詢):

              -v 和大多數(shù) linux 命令中的 -v 意思一樣 , 用來顯示進度 . 可以用來查看連接 , 認證 , 或是配置錯誤 .

              -C 使能壓縮選項 .

              -P 選擇端口 . 注意 -p 已經(jīng)被 rcp 使用 .

              -4 強行使用 IPV4 地址 .

              -6 強行使用 IPV6 地址 .

               -r Recursively copy entire directories.

          注:ip地址和文件名之間有":",且兩臺服務器的ssh1版本不一致的話可能會有問題。



          posted @ 2008-01-23 10:38 josson 閱讀(515) | 評論 (0)編輯 收藏
          tcpdump是一個Sniffer工具,實際上就是一個網(wǎng)絡上的抓包工具,同時還可以對抓到的包進行分析。一般系統(tǒng)都默認安裝。相關介紹及安裝說明可參見: Tcpdump的安裝和使用。


              tcpdump命令說明:
          tcpdump采用命令行方式,它的命令格式為:
          tcpdump [ -adeflnNOpqStvx ] [ -c 數(shù)量 ] [ -F 文件名 ]
          [ -i 網(wǎng)絡接口 ] [ -r 文件名] [ -s snaplen ]
          [ -T 類型 ] [ -w 文件名 ] [表達式 ]

          tcpdump的選項介紹:
          -a    將網(wǎng)絡地址和廣播地址轉(zhuǎn)變成名字;
          -d    將匹配信息包的代碼以人們能夠理解的匯編格式給出;
          -dd    將匹配信息包的代碼以c語言程序段的格式給出;
          -ddd    將匹配信息包的代碼以十進制的形式給出;
          -e    在輸出行打印出數(shù)據(jù)鏈路層的頭部信息;
          -f    將外部的Internet地址以數(shù)字的形式打印出來;
          -l    使標準輸出變?yōu)榫彌_行形式;
          -n    不把網(wǎng)絡地址轉(zhuǎn)換成名字;
          -t    在輸出的每一行不打印時間戳;
          -v    輸出一個稍微詳細的信息,例如在ip包中可以包括ttl和服務類型的信息;
          -vv    輸出詳細的報文信息;
          -c    在收到指定的包的數(shù)目后,tcpdump就會停止;
          -F    從指定的文件中讀取表達式,忽略其它的表達式;
          -i    指定監(jiān)聽的網(wǎng)絡接口;
          -r    從指定的文件中讀取包(這些包一般通過-w選項產(chǎn)生);
          -w    直接將包寫入文件中,并不分析和打印出來;
          -T    將監(jiān)聽到的包直接解釋為指定的類型的報文,常見的類型有rpc (遠程過程 調(diào)用)和snmp(簡單       網(wǎng)絡管理協(xié)議;)

                -s      設置抓包大小限制,默認抓包大小限制在96個BYTE(包括以太網(wǎng)幀)。修改參數(shù)為:-s 0。0 則忽略包的大小限制,按包的長度實際長度抓取。

              例:tcpdump -vv tcp port 5270 -c 100 -s 1500 -w /opt/sniffer.pack
          posted @ 2008-01-21 15:39 josson 閱讀(8766) | 評論 (0)編輯 收藏

          1、模態(tài)窗口自適應:
          在Internet Explorer中定義window.open 和 window.showModalDialog以打開一個網(wǎng)頁對話框的時候,在不同版本的Windows和不同版本的IE中,窗口的大小和樣式都是不同的。
          在IE7中更是有了很大的不同,狀態(tài)欄,主要內(nèi)容被默認保留(下詳),還加了一個只讀狀態(tài)的地址欄.窗口的最小尺寸被限定在了250*150:


          如上圖所示:在ie7中,定義的高度僅僅是窗體內(nèi)容高度,狀態(tài)欄及地址欄的高度都不算在內(nèi)的;而ie6則包含了狀態(tài)欄及地址欄的高度。所以,我們需要依據(jù)不同的操作系統(tǒng)及ie版本,高度自適應的js代碼如下:

          /**
           * 模態(tài)窗口高度調(diào)整.
           * 根據(jù)操作系統(tǒng)及ie不同版本,重新設置窗口高度,避免滾動條出現(xiàn).
           
          */
          function resetDialogHeight(){
            
          if(window.dialogArguments == null){
              
          return//忽略非模態(tài)窗口
            }

            
          var ua = navigator.userAgent;
            
          var height = document.body.offsetHeight;
            
          if(ua.lastIndexOf("MSIE 6.0"!= -1){
            
          if(ua.lastIndexOf("Windows NT 5.1"!= -1){
              
          //alert("xp.ie6.0");
              var height = document.body.offsetHeight;
              window.dialogHeight
          =(height+102)+"px";
            }
            
          else if(ua.lastIndexOf("Windows NT 5.0"!= -1){
              
          //alert("w2k.ie6.0");
              var height = document.body.offsetHeight;
              window.dialogHeight
          =(height+49)+"px";
            }
          }
          }

          模態(tài)窗口頁面加上如下代碼:
          //窗口加載后,判斷系統(tǒng)及其ie版本調(diào)整高度
          window.onload = resetDialogHeight;


          2、ie7中模態(tài)窗口提交時新開窗口問題:
          IE 7.0對模態(tài)窗口<base target='_self'>屬性的放置位置更加嚴格。<base>標簽必須放置在<head>標簽對中,否則提交表單時總是會新開窗口。示例如下 :
          <html>
          <head>
          <title>標題</title>
          <base target="_self"/>
          .. .. ..
          </head>
          <body onload="pageClose();" scroll="no">
          .. .. ..
          </body>
          </html>

          posted @ 2008-01-21 09:46 josson 閱讀(1275) | 評論 (1)編輯 收藏

            JSON,JavaScript Object Notation,一種更輕、更友好的用于接口(AJAX、REST等)數(shù)據(jù)交換的格式。作為XML的一種替代品,用于表示客戶端與服務器間數(shù)據(jù)交換有效負載的格式。

             
              關于json的文章:JSON 簡介
          posted @ 2008-01-17 14:36 josson 閱讀(3824) | 評論 (0)編輯 收藏
          1、目的
          系統(tǒng)通過一內(nèi)嵌頁面(iframe) 來展現(xiàn)網(wǎng)頁內(nèi)容(也包括內(nèi)嵌頁中再嵌一個網(wǎng)頁),這將會引起如下幾個問題:
          a.不同的網(wǎng)頁內(nèi)容多少不一致,導致iframe的高度無法與實現(xiàn)內(nèi)容或瀏覽器高度相匹配。
          b.窗口縮放時,不能iframe不能進行自動調(diào)整。

          針對這兩個問題,寫了一些js方法,使iframe自動適應內(nèi)容或瀏覽器高度。

          2、js代碼
          在主框回頁面中包括如下js方法:
          /**
           * 內(nèi)嵌頁面的高度設置
           
          */
          function handleFrameLoad() {
           
          var hDoc = getBodyHeight(document);
           
          var tblmain =  document.getElementById('tblMain');
           
          var mFrame = window.mainFrame;
           
          var hFrameDoc = getFrameHeight(mFrame);
           
          var hTable = hDoc-80; //減去該頁面除iframe外其他控件所占的高度.
           
          if(hFrameDoc > hTable) hTable = hFrameDoc;
           tblmain.style.height 
          = hTable;
           mFrame.height 
          = hTable;
           
          if(window.mainFrame.moduleRight != null){
             
          //表示該內(nèi)嵌頁,包含內(nèi)嵌的頁面,頁iframe的id固定為moduleRight。
              initFrameHeight(mFrame,hTable);
           }
          }

          /**
           * 獲取當前頁面的高度
           
          */
          function getBodyHeight(doc){
            
          if(doc.all) return doc.body.offsetHeight;
            
          else return doc.body.scrollHeight;
          }

          /**
           * 獲取內(nèi)嵌頁中的高度.
           * 若另含子內(nèi)嵌(
          moduleRight)頁時,應考慮該頁面的高度.
           
          */
          function getFrameHeight(mFrame){
            
          var h1 = mFrame.document.body.offsetHeight;
            
          var h2 = mFrame.document.body.scrollHeight;
            
          if(mFrame.moduleRight != null){
                
          var h3 = mFrame.moduleRight.document.body.scrollHeight;
              
          if(h3 > h2) h2 = h3;
            }
            
          return h2;
          }

          /**
           * 設置子內(nèi)嵌頁面的高度.
           * 通過設置iframe所在table的高度來調(diào)整。
           
          */
          function initFrameHeight(frame,hFrame){
            
          var tbl = frame.document.getElementById('tblMainFrame');
            tbl.style.height 
          = hFrame;
          }

          3、其他設置
          主頁面(main.jsp),在加載完畢(onload)、窗口大小調(diào)整(onresize),以及iframe的加載完畢時,需調(diào)用:handleFrameLoad,代碼如下:
          <html>
             
            
          <body onload="handleFrameLoad();" onResize="handleFrameLoad();">
             
            
          <iframe src="" id="mainFrame" name="mainFrame" border=0 width=100% height=100% frameborder="0" marginwidth="0" hspace="0" scrolling="no" onload="handleFrameLoad();"/>
             
            
          </body>
          </html

          其他內(nèi)嵌頁如下(注:此處的iframe高度設為100%,其高度由父頁面通過設置table<tblMainFrame>的高度來進行調(diào)整):
          <html>
             
            
          <body class="body" style="overflow:hidden;margin:0px;padding:0px">
              
          <table width="100%" height="100%" id="tblMainFrame" border="0" align="center" cellpadding="0" cellspacing="0">
               
          <tr>
                 
          <td id='content' height=100%>
                   
          <iframe src="about:blank" width="100%" height="100%" name="moduleRight" id="moduleRight" frameborder="0" hspace="0"/>
                 
          </td>
               
          </tr>
              
          </table>
            
          </body>
          </html

          4、樣例下載: sample
          posted @ 2008-01-17 13:56 josson 閱讀(9302) | 評論 (2)編輯 收藏
          文摘摘錄如下:

          1. LDAP是什么東西,我需要它么?
          2. 我需要LDAP還是數(shù)據(jù)庫?
          3. LDAP精煉總結
          posted @ 2008-01-15 10:57 josson 閱讀(380) | 評論 (0)編輯 收藏
          XML/JSON的操作類庫,codehaus的xstream,很簡單的在xml/json和java對象間轉(zhuǎn)換。

          1、所需jar包:xstream-[version].jarxpp3-[version].jar 。xpp3不是必須的,也可以用標準的JAXP DOM parser 來代替,如:
          XStream xstream = new XStream(new DomDriver()); // does not require XPP3 library

          另外,通過alias可實現(xiàn)xml屬性的支持。更多功能,請參閱 Tutorial

          2、XML轉(zhuǎn)換代碼片段:
          Class 轉(zhuǎn)換為 xml 的代碼片段:
          XStream xstream = new XStream();
          xstream.alias("person", Person.class);
          xstream.alias("phonenumber", PhoneNumber.class);
          Person joe = new Person("Joe""Walnes");
          joe.setPhone(
          new PhoneNumber(123"1234-456"));
          joe.setFax(
          new PhoneNumber(123"9999-999"));
          String xml 
          = xstream.toXML(joe);

          The resulting XML looks like this:
          <person>
            
          <firstname>Joe</firstname>
            
          <lastname>Walnes</lastname>
            
          <phone>
              
          <code>123</code>
              
          <number>1234-456</number>
            
          </phone>
            
          <fax>
              
          <code>123</code>
              
          <number>9999-999</number>
            
          </fax>
          </person>

          xml轉(zhuǎn)換為java類的代碼片段:
          Person newJoe = (Person)xstream.fromXML(xml);

          3、JSON
          另需jar包:jettison.jar 、stax-api.jar。JSON Turorial

          Write to json:

          package org.sensatic.json.test;

          import com.thoughtworks.xstream.XStream;
          import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;

          public class WriteTest {
              
          public static void main(String[] args) {
                  Product product 
          = new Product("Banana""123"23.00);
                  XStream xstream 
          = new XStream(new JettisonMappedXmlDriver());
                  xstream.alias(
          "product", Product.class);
                  System.out.println(xstream.toXML(product));    
              }
          }

          Read from json:
          package org.sensatic.json.test;

          import com.thoughtworks.xstream.XStream;
          import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;

          public class ReadTest {
              
          public static void main(String[] args) {
                  String json 
          = "{\"product\":{\"name\":\"Banana\",\"id\":\"123\""
                      
          + ",\"price\":\"23.0\"}}";
                      
                  XStream xstream 
          = new XStream(new JettisonMappedXmlDriver());
                  xstream.alias(
          "product", Product.class);
                  Product product 
          = (Product)xstream.fromXML(json);
                  System.out.println(product.getName());
              }
          }

          And that's how simple XStream is!
          posted @ 2008-01-15 10:11 josson 閱讀(941) | 評論 (0)編輯 收藏
          使用 Apache MINA 開發(fā)高性能網(wǎng)絡應用程序:
          http://www.ibm.com/developerworks/cn/opensource/os-cn-apmina/
          posted @ 2008-01-14 10:21 josson 閱讀(463) | 評論 (0)編輯 收藏
          1、web.xml設置
            <servlet>
              
          <servlet-name>dwr-invoker</servlet-name>
              
          <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
              
          <init-param>
                
          <param-name>activeReverseAjaxEnabled</param-name>
                
          <param-value>true</param-value>
              
          </init-param>
            
          </servlet>
            
            
          <servlet-mapping>
              
          <servlet-name>dwr-invoker</servlet-name>
              
          <url-pattern>/dwr/*</url-pattern>
            
          </servlet-mapping>

          2、client端將 setActiveReverseAjax設為true
          dwr.engine.setActiveReverseAjax(true);

          使用Reverse AJAX,client端就不用指定call back function,當執(zhí)行server端的method時,會自動調(diào)用client端javascript來執(zhí)行。

          3、Server端通過ScriptSession,找到對到的client端JS方法
          //取得當前執(zhí)行頁面
          WebContext wctx = WebContextFactory.get();
          String currentPage 
          = wctx.getCurrentPage();
          //取得目前執(zhí)行中的ScriptSession
          ScriptSession scriptSession = wctx.getScriptSession();
          //或是取得某page開啟中的client ScriptSession
          Collection sessions = wctx.getScriptSessionsByPage("/ajax/client.jsp");

          //根據(jù)ScriptSession來執(zhí)行client端的 DWRUtil
          Util utilThis = new Util(wctx.getScriptSession());

          //調(diào)用WRUtil,在客戶端生成相應的腳本,實現(xiàn)消息的輸出
          utilAll.removeAllOptions("chatlog");
          utilAll.addOptions(
          "chatlog", messages, "text");

          4、網(wǎng)上的范例
          chat.jsp頁面,點擊發(fā)送按鈕,調(diào)用javascript的sendMessage()方法將消息發(fā)送出(注意這里沒有指定call back function。)。
          function sendMessage() {
              JavaChat.addMessage();
          }

          服務端JavaChat代碼,調(diào)用DWRUtil,在客戶端生成腳本,將消息輸出到頁面中。
          //JavaChat.java
          public void addMessage(String messsage){
              Util utilAll 
          = new Util(sessions);
              utilAll.addScriptSessions(wctx.getScriptSessionsByPage(
          "/chat.jsp"));
              utilAll.removeAllOptions("chatlog");        
              utilAll.addOptions(
          "chatlog", message, "text");
          }

          posted @ 2008-01-04 12:37 josson 閱讀(1758) | 評論 (4)編輯 收藏
          http://dhtmlx.com/

          包括樹、菜單、表格、工具條等。。。
          posted @ 2008-01-04 12:11 josson 閱讀(1176) | 評論 (1)編輯 收藏
          僅列出標題
          共11頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 Last 
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 兴安盟| 祥云县| 山阴县| 宁乡县| 岚皋县| 缙云县| 章丘市| 昭觉县| 盐津县| 达拉特旗| 祁门县| 黑河市| 岫岩| 长宁县| 抚州市| 公主岭市| 嘉义市| 铜鼓县| 龙胜| 莱阳市| 泾源县| 陵川县| 平江县| 深泽县| 白河县| 南涧| 旌德县| 泽库县| 桓仁| 闻喜县| 河津市| 长宁区| 黑龙江省| 常德市| 望奎县| 清徐县| 聂荣县| 肇庆市| 襄垣县| 库车县| 南陵县|