@OverWrite BlogJava

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 29 評論 :: 0 Trackbacks

          #

          dojo.lang.string
          dojo.string.substituteParams 類似C#中的String.Format函數(shù)
          %{name}要保證與傳入的對象的名稱大小寫一致,否則會出異常
          Usage Example:
          dojo.string.substituteParams("%{0} - %{1} - %{2}", "a", "b", "c"); //will return "a - b - c"
          dojo.string.substituteParams("%{name}: %{value}", {name:"名稱",value:"值"}); //will return "名稱: 值"
          dojo.string.capitalize 把每一個單詞的首字母大寫
          Usage Example:
          dojo.string.capitalize("show me love"); //will return "Show Me Love"
          dojo.string.isBlank 判斷輸入字符串是否為空或全是空白字符,如果傳入對象為非字符串則也會返回true
          Usage Example:
          dojo.string.isBlank(" 1 "); //will return false
          dojo.string.escape 參數(shù)1為type,可傳值為: xml/html/xhtml, sql, regexp/regex, javas cript/js cript/js, ascii
          將按照所傳type對字符串進(jìn)行編碼
          Usage Example:
          dojo.string.escape("html", "<input type='text' value='' />"); //will return "<input
          type='text' value='' />"
          dojo.string.encodeAscii
          dojo.string.escapeXml
          dojo.string.escapeSql
          dojo.string.escapeRegExp
          dojo.string.escapeJavas cript
          dojo.string.escapeString
          這些函數(shù)也就是 dojo.string.escape 所調(diào)用的,這里無需多說
          dojo.string.summary 取得輸入字符串的縮略版本
          Usage Example:
          dojo.string.summary("1234567890", 5); //will return "12345..."
          dojo.string.endsWith 判斷輸入字符串是否以指定的字符串結(jié)尾
          Usage Example:
          dojo.string.endsWith("abcde", "E"); //will return false
          dojo.string.endsWith("abcde", "E", true); //will return true
          dojo.string.endsWithAny 判斷輸入字符串是否以指定的任意字符串結(jié)尾
          Usage Example:
          dojo.string.endsWithAny("abcde", "E", "e"); //will return true
          dojo.string.startsWith 判斷輸入字符串是否以指定的字符串開頭
          Usage Example:
          dojo.string.startsWith("abcde", "A"); //will return false
          dojo.string.startsWith("abcde", "A", true); //will return true
          dojo.string.startsWithAny 判斷輸入字符串是否以指定的任意字符串開頭
          Usage Example:
          dojo.string.startsWithAny("abcde", "A", "a"); //will return true
          dojo.string.has 判斷輸入字符串是否含有任意指定的字符串
          Usage Example:
          dojo.string.has("abcde", "1", "23", "abc"); //will return true
          dojo.string.normalizeNewlines 按要求轉(zhuǎn)換回車換行的格式
          Usage Example:
          dojo.string.normalizeNewlines("a\r\nb\r\n", "\r"); //will return "a\rb\r"
          dojo.string.splitEscaped 將字符串按分隔符轉(zhuǎn)換為數(shù)組
          Usage Example:
          dojo.string.splitEscaped("a\\_b_c", '_'); //will return ["a\\_b", "c"]

          模塊:dojo.lang.func
          dojo.lang.hitch 將指定的方法掛在指定的對象下并返回該方法
          Usage Example:
          func = {test: function(s) {alert(s)}};
          dojo.lang.mixin(func, {demo: dojo.lang.hitch(func, "test")});
          func.demo("demo and test are same method");
          dojo.lang.forward 返回自身對象的指定名稱的方法引用
          Usage Example:
          func = {test: function(s) {alert(s)}, demo: dojo.lang.forward("test")};
          func.demo("demo and test are same method");
          dojo.lang.curry What is curry? 請參閱這篇文章:http://www.svendtofte.com/code/curried_javas cript/
          Usage Example:
          function add(a, b)
          {
          return a + b;
          }
          dojo.lang.curry(null, add, 2, 3); //will return 5
          dojo.lang.curry(null, add, 2)(3); //will return 5

          dojo.lang.curry(null, add)(2)(3); //will return 5
          dojo.lang.curry(null, add)()(2)(3); //will return 5
          dojo.lang.curryArguments 與dojo.lang.curry類似,但是可以選擇忽略掉前n個參數(shù)
          Usage Example:
          function add(a, b)
          {
          return a + b;
          }
          dojo.lang.curryArguments(null, add, [1,2,3,4,5], 2); //will return 7 (= 3 + 4)

          處理數(shù)組相關(guān)api

          dojo.lang.has 判斷對象是否具有指定屬性,不過這個方法有用嗎,不如直接使用 if(name in obj)
          Usage Example:
          dojo.lang.has(dojo.lang, "has"); //will return true
          dojo.lang.isEmpty 判斷對象或數(shù)組是否為空
          Usage Example:
          dojo.lang.isEmpty({a: 1}); //will return false
          dojo.lang.isEmpty([]); //will return true
          dojo.lang.map 調(diào)用指定的方法處理指定的數(shù)組或字符串
          Usage Example:
          dojo.lang.map([1,2,3,4,5], function(x) { return x * x;}); //will return [1,4,9,16,25]
          dojo.lang.forEach 遍歷指定的數(shù)組或字符串,并對其中的元素調(diào)用指定的方法
          Usage Example:
          dojo.lang.forEach("abc", function(x) { alert(x); });
          dojo.lang.every 檢查指定的數(shù)組是否全部滿足指定方法的條件
          Usage Example:
          dojo.lang.every([1,-2,3], function(x) { return x > 0; }); //指定的數(shù)組不是全大于0的,因此返回false
          dojo.lang.some 檢查指定的數(shù)組是否部分滿足指定方法的條件
          Usage Example:
          dojo.lang.some([1,-2,3], function(x) { return x > 0; }); //指定的數(shù)組有大于0的元素,因此返回true
          dojo.lang.filter 根據(jù)指定的方法來過濾指定的數(shù)組
          Usage Example:
          dojo.lang.filter([1,-2,3], function(x) { return x > 0; }); //will return [1, 3]
          dojo.lang.unnest 把指定的參數(shù)或數(shù)組轉(zhuǎn)換為一維數(shù)組
          Usage Example:
          dojo.lang.unnest(1, 2, 3); //will return [1, 2, 3]
          dojo.lang.unnest(1, [2, [3], [[[4]]]]); //will return [1, 2, 3, 4]
          dojo.lang.toArray 將輸入轉(zhuǎn)換為數(shù)組
          Usage Example:
          function test()
          {
          return dojo.lang.toArray(arguments, 1);
          }
          test(1,2,3,4,5); //will return [2,3,4,5]
          posted @ 2008-02-13 17:00 vesung 閱讀(1809) | 評論 (0)編輯 收藏

          以下內(nèi)容轉(zhuǎn)自新浪網(wǎng) 
           
          春節(jié)期間科技要聞回顧(2.6-2.12):     
                產(chǎn)業(yè)政策:
               
                信產(chǎn)部稱07年我國電信價格同比下降13.6%  

            我國固話用戶40年來首度負(fù)增長

            調(diào)查顯示中國用戶更愿意通過手機(jī)聽音樂

            廣州300元共享器可讓多臺電視共用機(jī)頂盒

            歐洲取代美國成垃圾郵件最大發(fā)源地

            今年我國95%以上鄉(xiāng)鎮(zhèn)將開通寬帶

            信息產(chǎn)業(yè)部稱仍有千萬通信用戶受雪災(zāi)影響

            北京除夕短信發(fā)出6億條 廣東突破7億條

            2008年我國電話用戶總數(shù)將達(dá)9.76億戶

            文化部推薦第三批適合未成年人網(wǎng)絡(luò)游戲產(chǎn)品

            2007年我國共過濾網(wǎng)上有害信息2億多條

            春節(jié)假期全國手機(jī)短信發(fā)送量有望超過170億條

            企業(yè)消費:

            華為07年無線收入達(dá)70億美元

            花旗分析師預(yù)計3G版iPhone年中上市

            傳iPhone和iPod Touch將降價100美元

            傳摩托羅拉和北電將組建無線設(shè)備合資公司

            2300多企業(yè)列入首批完成軟件正版化名單

            消息稱谷歌有意收購CNET股份

            以色列推出7.8毫米厚世界最小最輕手機(jī)

            戴爾停止通過網(wǎng)站銷售AMD PC

            Google Android手機(jī)原型將亮相3GSM大會

            微軟市值過去一周縮水400億美元

            傳谷歌或MySpace將斥資15億美元收購Bebo

            報告稱蘋果成為全球第三大智能手機(jī)廠商

            消息稱微軟兩名重要高管即將離職

            大眾科技:

            俄科學(xué)家稱原子撞擊實驗可創(chuàng)造時空裂縫

            美宇航局因宇航員健康問題推遲太空行走

            法國設(shè)計豪華飛艇十天可環(huán)繞地球一周(組圖)

            鼠年說鼠:不怕貓的老鼠(組圖)

            研究稱美麗藍(lán)眼睛源自一萬年前基因突變(圖)

            52國氣候?qū)<衣?lián)合為全球氣候變化敲警鐘

          posted @ 2008-02-13 09:56 vesung 閱讀(340) | 評論 (0)編輯 收藏

               摘要: dojo.io.bind :處理請求取回需要的數(shù)據(jù)并處理。         這個函數(shù)是AJAX中最為重要和有用的函數(shù),dojo.io.bind這個類是用來處理客戶端與服務(wù)器間通訊的,需要通訊的參數(shù)由對象dojo.io.Request所定義,具體通訊的方法則由另外一個對象Transport所提供。Dojo里提供了一個同...  閱讀全文
          posted @ 2008-01-31 16:52 vesung 閱讀(2882) | 評論 (0)編輯 收藏

               摘要: 今天看到一篇php分頁的文章,雖然簡單但非常實用,稍作編輯貼出來(原文地址http://www.chinaunix.net/jh/27/181584.html)

          所謂分頁顯示,也就是將數(shù)據(jù)庫中的結(jié)果集人為的分成一段一段的來顯示,這里需要兩個初始的參數(shù):

          每頁多少條記錄($PageSize)?
          當(dāng)前是第幾頁($CurrentPageID)?
          至于其他的參數(shù),比如:上一頁($PreviousPageID)、下一頁($NextPageID)、總頁數(shù)($numPages)等等,都可以根據(jù)前邊這幾個東西得到。
          現(xiàn)在只要再給我一個結(jié)果集,我就可以顯示某段特定的結(jié)果出來。
          以mysql數(shù)據(jù)庫為例,如果要從表內(nèi)截取某段內(nèi)容,sql語句可以用:select * from table limit offset, rows。看看下面一組sql語句,嘗試一下發(fā)現(xiàn)其中的規(guī)率。

          前10條記錄:select * from table limit 0,10
          第11至20條記錄:select * from tabl  閱讀全文
          posted @ 2008-01-31 15:59 vesung 閱讀(827) | 評論 (0)編輯 收藏

               摘要: 2006年初,dojo還是0.22的時候就很關(guān)注它的發(fā)展,可一直沒有在實際項目中使用。一來是由于文檔的缺少,而來是dojo的相關(guān)介紹總是讓人望而生畏。到現(xiàn)在都如此,第一個hello world就搞了一大堆東西,比如widget組件,自定義的script標(biāo)簽等,加上要引入什么css文件,djConfig、dojo.require等等,讓人很迷惑,這么復(fù)雜,到底dojo該怎么使用呢?我只是想把dojo當(dāng)作一個普通的js類庫,就像prototype那樣?OK,閑話少說,來看看如何使用dojo。

          第一步,引入dojo.js
          dojo的發(fā)行包里有4個子目錄,要引入的文件是名叫"dojo"的子目錄里的dojo.js。
          假設(shè)你是這樣的目錄結(jié)構(gòu):
            閱讀全文
          posted @ 2008-01-28 15:43 vesung 閱讀(12684) | 評論 (4)編輯 收藏

          dojo.collections 很有用的集合數(shù)據(jù)結(jié)構(gòu)(List、Query、Set、Stack、Dictionary...)
          dojo.crypto 實現(xiàn)加密功能的API(Blowfish、MD5、Rijndael、SHA...)
          dojo.date 無須編寫丑陋的代碼來解析日期格式。
          dojo.dnd 拖放功能的輔助API。
          dojo.event 事件驅(qū)動的API,支持AOP開發(fā),以及主題/隊列的功能。
          dojo.lfx HTML和SVG效果庫。
          dojo.animation 基于Dan Pupius在動畫方面的工作(http://pupius.co.uk/js/Toolkit.Drawing.js)的動畫package(不再支持,應(yīng)首選dojo.lfx)
          dojo.fx 不再支持,應(yīng)首選dojo.lfx
          dojo.io 不同的IO管道。cookie、IFrame、發(fā)布/訂閱功能等等。所有神奇的Ajax工作都在這里完成。
          dojo.lang 對于整個JavaScript環(huán)境進(jìn)行增強(qiáng)的功能。包括你所希望擁有的很多特征,例如mixin、基于閉包(closure)的函數(shù),以及大量的其他功能。
          dojo.logging 提供日志功能的框架
          dojo.math 數(shù)學(xué)函數(shù)(曲線、點、矩陣)
          dojo.reflect 提供反射功能的函數(shù)庫
          dojo.rpc 與后端服務(wù)(例如理解JSON語法的Web服務(wù))進(jìn)行通信
          dojo.storage 將數(shù)據(jù)保存在本地存儲中(例如,在瀏覽器中利用Flash的本地存儲來實現(xiàn))
          dojo.string 現(xiàn)在你可以對字符串進(jìn)行如下的處理,修整、轉(zhuǎn)換為大寫、編碼、esacpe、填充(pad)等等。
          dojo.undo 用來撤銷用戶操作的棧管理器
          dojo.uri 處理URI的函數(shù)庫
          dojo.widget 一個widget框架,允許你建造可重用的HTML/JavaScript widget,可以與簡單的HTML標(biāo)記共同使用(例如,<div class=”dojo-MyWidgetType”>)。支持基于標(biāo)記的應(yīng)用開發(fā)(例如:XAML、XUL)
          dojo.xml、dojo.dom 幫助你處理DOM的輔助函數(shù),以及其他的XML輔助函數(shù)。
          dojo.style CSS功能,例如訪問style的大小、與瀏覽器的盒模型配合工作,以及更多的功能。

          posted @ 2008-01-28 10:29 vesung 閱讀(1272) | 評論 (0)編輯 收藏

          原文地址:http://datum.studyget.com/sh/200703/20070328_46338.shtml
          SSL 是Secure socket Layer英文縮寫,它的中文意思是安全套接層協(xié)議,指使用公鑰和私鑰技術(shù)組合的安全網(wǎng)絡(luò)通訊協(xié)議。SSL協(xié)議是網(wǎng)景公司(Netscape)推出的基于 WEB應(yīng)用的安全協(xié)議,SSL協(xié)議指定了一種在應(yīng)用程序協(xié)議(如Http、Telenet、NMTP和FTP等)和TCP/IP協(xié)議之間提供數(shù)據(jù)安全性分層的機(jī)制,它為TCP/IP連接提供數(shù)據(jù)加密、服務(wù)器認(rèn)證、消息完整性以及可選的客戶機(jī)認(rèn)證,主要用于提高應(yīng)用程序之間數(shù)據(jù)的安全性,對傳送的數(shù)據(jù)進(jìn)行加密和隱藏,確保數(shù)據(jù)在傳送中不被改變,即確保數(shù)據(jù)的完整性。

              SSL 以對稱密碼技術(shù)和公開密碼技術(shù)相結(jié)合,可以實現(xiàn)如下三個通信目標(biāo):

          (1)秘密性: SSL客戶機(jī)和服務(wù)器之間傳送的數(shù)據(jù)都經(jīng)過了加密處理,網(wǎng)絡(luò)中的非法竊聽者所獲取的信息都將是無意義的密文信息。

          (2)完整性: SSL利用密碼算法和散列(HASH)函數(shù),通過對傳輸信息特征值的提取來保證信息的完整性,確保要傳輸?shù)男畔⑷康竭_(dá)目的地,可以避免服務(wù)器和客戶機(jī)之間的信息受到破壞。

          (3)認(rèn)證性:利用證書技術(shù)和可信的第三方認(rèn)證,可以讓客戶機(jī)和服務(wù)器相互識別對方的身份。為了驗證證書持有者是其合法用戶(而不是冒名用戶), SSL要求證書持有者在握手時相互交換數(shù)字證書,通過驗證來保證對方身份的合法性。

          3.SSL協(xié)議的體系結(jié)構(gòu)

              SSL協(xié)議位于TCP/IP協(xié)議模型的網(wǎng)絡(luò)層和應(yīng)用層之間,使用TCP來提供一種可靠的端到端的安全服務(wù),它是客戶/服務(wù)器應(yīng)用之間的通信不被攻擊竊聽,并且始終對服務(wù)器進(jìn)行認(rèn)證,還可以選擇對客戶進(jìn)行認(rèn)證。SSL協(xié)議在應(yīng)用層通信之前就已經(jīng)完成加密算法、通信密鑰的協(xié)商以及服務(wù)器認(rèn)證工作,在此之后,應(yīng)用層協(xié)議所傳送的數(shù)據(jù)都被加密。SSL實際上是共同工作的兩層協(xié)議組成,如圖1所示。從體系結(jié)構(gòu)圖可以看出SSL安全協(xié)議實際是SSL握手協(xié)議、SSL修改密文協(xié)議、SSL警告協(xié)議和SSL記錄協(xié)議組成的一個協(xié)議族。

          握手
          協(xié)議
          修改密  
          文協(xié)議
          報警
          協(xié)議
                  SSL記錄協(xié)議
                     TCP
                     IP


                    
                   圖1  SSL體系結(jié)構(gòu)

              SSL記錄協(xié)議為SSL連接提供了兩種服務(wù):一是機(jī)密性,二是消息完整性。為了實現(xiàn)這兩種服務(wù), SSL記錄協(xié)議對接收的數(shù)據(jù)和被接收的數(shù)據(jù)工作過程是如何實現(xiàn)的呢? SSL記錄協(xié)議接收傳輸?shù)膽?yīng)用報文,將數(shù)據(jù)分片成可管理的塊,進(jìn)行數(shù)據(jù)壓縮(可選),應(yīng)用MAC,接著利用IDEA、DES、3DES或其他加密算法進(jìn)行數(shù)據(jù)加密,最后增加由內(nèi)容類型、主要版本、次要版本和壓縮長度組成的首部。被接收的數(shù)據(jù)剛好與接收數(shù)據(jù)工作過程相反,依次被解密、驗證、解壓縮和重新裝配,然后交給更高級用戶。

              SSL修改密文協(xié)議是使用SSL記錄協(xié)議服務(wù)的SSL高層協(xié)議的3個特定協(xié)議之一,也是其中最簡單的一個。協(xié)議由單個消息組成,該消息只包含一個值為1的單個字節(jié)。該消息的唯一作用就是使未決狀態(tài)拷貝為當(dāng)前狀態(tài),更新用于當(dāng)前連接的密碼組。為了保障SSL傳輸過程的安全性,雙方應(yīng)該每隔一段時間改變加密規(guī)范。

              SSL告警協(xié)議是用來為對等實體傳遞SSL的相關(guān)警告。如果在通信過程中某一方發(fā)現(xiàn)任何異常,就需要給對方發(fā)送一條警示消息通告。警示消息有兩種:一種是 Fatal錯誤,如傳遞數(shù)據(jù)過程中,發(fā)現(xiàn)錯誤的MAC,雙方就需要立即中斷會話,同時消除自己緩沖區(qū)相應(yīng)的會話記錄;第二種是Warning消息,這種情況,通信雙方通常都只是記錄日志,而對通信過程不造成任何影響。SSL握手協(xié)議可以使得服務(wù)器和客戶能夠相互鑒別對方,協(xié)商具體的加密算法和MAC算法以及保密密鑰,用來保護(hù)在SSL記錄中發(fā)送的數(shù)據(jù)。

              SSL握手協(xié)議允許通信實體在交換應(yīng)用數(shù)據(jù)之前協(xié)商密鑰的算法、加密密鑰和對客戶端進(jìn)行認(rèn)證(可選)的協(xié)議,為下一步記錄協(xié)議要使用的密鑰信息進(jìn)行協(xié)商,使客戶端和服務(wù)器建立并保持安全通信的狀態(tài)信息。SSL握手協(xié)議是在任何應(yīng)用程序數(shù)據(jù)傳輸之前使用的。SSL握手協(xié)議包含四個階段:第一個階段建立安全能力;第二個階段服務(wù)器鑒別和密鑰交換;第三個階段客戶鑒別和密鑰交換;第四個階段完成握手協(xié)議。

          posted @ 2008-01-25 17:10 vesung 閱讀(952) | 評論 (0)編輯 收藏

          一個簡單的需求的實現(xiàn):
          在程序中調(diào)用某類的某方法,并將返回結(jié)果println() 出來。
          實現(xiàn)方法:

          MethodTest.java
          import java.util.ArrayList;
          import java.util.List;
          import java.lang.reflect.Method;
          import java.lang.reflect.InvocationTargetException;

          /**
           * 功能描述:
           *
           * 
          @author <a href='mailto:vesung@gmail.com'>wangjing</a>
           * Copyright: Copyright (c) 2006-2008 by vesung.cn.
           * Date: 2008-1-23 14:13:26
           
          */

          public class MethodTest{
              TestVO vo 
          = new TestVO();

              
          /**
               * 初始化vo
               
          */

              
          protected void setUp(){
                  vo.setInvoiceSortCode(
          "InvoiceSortCode");
                  vo.setInvoiceSortName(
          "InvoiceSortName");
                  vo.setOperaddress(
          "Operaddress");
                  vo.setStockStatus(
          "StockStatus");
                  vo.setStockStatusCode(
          "StockStatusCode");
                  List list 
          = new ArrayList();
                  list.add(
          "StockStatusList");
                  vo.setStockStatusList(list);
                  vo.setTaxpayerName(
          "TaxpayerName");
                  vo.setTaxRegCode(
          "TaxRegCode");
              }


              
          public static void main(String[] args) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {
                  MethodTest m 
          = new MethodTest();
                  m.setUp();
                  
          //待執(zhí)行的方法名稱注意沒有()
                  String methodName = "getInvoiceSortCode";

                  
          //先獲取相應(yīng)的method對象
                  
          //getMethod第一個參數(shù)是方法名,第二個參數(shù)是該方法的參數(shù)類型,
                  
          //因為存在同方法名不同參數(shù)這種情況,所以只有同時指定方法名和參數(shù)類型才能唯一確定一個方法
                  Method method = m.vo.getClass().getMethod(methodName,new Class[0]);
                  
          //接下來就該執(zhí)行該方法了,解釋一下參數(shù)
                  
          //第一個參數(shù)是具體調(diào)用該方法的對象
                  
          //第二個參數(shù)是執(zhí)行該方法的具體參數(shù)
                  System.out.println(methodName+"():"+method.invoke(m.vo,new Object[0]));
              }

          }

          TestVO.java
          import java.util.List;

          /**
           * 功能描述:
           *
           * 
          @author <a href='mailto:vesung@gmail.com'>wangjing</a>
           * Copyright: Copyright (c) 2006-2008 by vesung.cn.
           * Date: 2008-1-23 14:17:14
           
          */

          public class TestVO {
              
          private String taxRegCode;
              
          private String stockStatusCode;
              
          private String stockStatus;
              
          private List stockStatusList;
              
          private String taxpayerName;
              
          private String operaddress;
              
          private String invoiceSortCode;
              
          private String invoiceSortName;
              
          public String pub;

                  public String getInvoiceSortCode(){
                          return InvoiceSortCode;
                  }
          //省略getter(),setter()
          //  
          }
          posted @ 2008-01-24 11:28 vesung 閱讀(22324) | 評論 (0)編輯 收藏

          # Set root logger level to WARN and append to stdout
          log4j.rootLogger=WARN, stdout, error
          #WARN為log輸出級別,stdout,error為該log的別名,下面將用到
          log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          log4j
          .appender.stdout.layout=org.apache.log4j.PatternLayout

          # Pattern to output the caller's file name and line number.
          log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L- %m%n

          # Print only messages of level ERROR or above in the package noModule.
          log4j.logger.noModule=FATAL

          # OpenSymphony Stuff
          log4j.logger.com.opensymphony=INFO
          log4j
          .logger.com.opensymphony.webwork=DEBUG

          # Spring Stuff
          log4j.logger.org.springframework=INFO

          #################################
          #                       錯誤信息 #
          #################################

          log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
          log4j
          .appender.error.File=E:/MyDoc/WorkSpace/webworkroot/logs/errors.log
          log4j
          .appender.error.layout=org.apache.log4j.PatternLayout
          log4j
          .appender.error.layout.ConversionPattern=[%d]-%-5p (%F:%L)|%m%n
          log4j
          .appender.error.DatePattern='.'yyyy-MM-dd
          log4j
          .appender.error.Threshold=ERROR

          ###################################
          #                       CONSOLE #
          #################################


          log4j
          .appender.console=org.apache.log4j.ConsoleAppender
          log4j
          .appender.console.layout=org.apache.log4j.PatternLayout
          log4j
          .appender.console.layout.ConversionPattern=(%F:%L)|%m%n

          log4j
          .appender.errorcsle=org.apache.log4j.ConsoleAppender
          log4j
          .appender.errorcsle.layout=org.apache.log4j.PatternLayout
          log4j
          .appender.errorcsle.layout.ConversionPattern=%-5p (%F:%L)|%m%n
          log4j
          .appender.errorcsle.Threshold=ERROR

          ##################################
          #                       業(yè)務(wù)系統(tǒng) #
          #################################

          log4j.logger.cn.vesung=DEBUG, logic

          log4j
          .appender.logic=org.apache.log4j.DailyRollingFileAppender
          log4j
          .appender.logic.File=E:/MyDoc/WorkSpace/webworkroot/logs/logic.log
          log4j
          .appender.logic.layout=org.apache.log4j.PatternLayout
          log4j
          .appender.logic.layout.ConversionPattern=[%d]-%-5p (%F:%L)|%m%n
          log4j
          .appender.logic.DatePattern='.'yyyy-MM-dd

          其實業(yè)務(wù)系統(tǒng)和錯誤信息的輸出定義對開發(fā)人員來說是最重要的。
          posted @ 2008-01-22 15:28 vesung 閱讀(28669) | 評論 (0)編輯 收藏

               摘要: 剛剛有消息報道MySQL要IPO,結(jié)果就來一顆炸彈,被SUN給收購了,那么,我們是否可以這樣推測,哪些同樣處在IPO上市名單前列的OpenSource公司是否也同樣的處在大鱷們的收購名單中?
          雖然,我們不否認(rèn),被大鱷們收購的OpenSource公司因為在資金上獲得了充足的支持,可以為我們提供更好的服務(wù),但是也不得不看到--前一階段外電報道IBM重新審視Gluecode的定位問題,Webshpere社區(qū)版的活力和技術(shù)特性已經(jīng)沖擊到Webshpere收費版本,和IBM的戰(zhàn)略構(gòu)成沖突--大鱷們收購OpenSource公司會為相關(guān)產(chǎn)品的服務(wù)的可持續(xù)性帶來巨大的問號,開源本來就與商務(wù)存在著天然的不和諧,而商務(wù)公司的直接插手,更是讓OpenSource的未來陷入迷霧。

          --------------------------------------------------------------------------------
          太震撼了!真的還是假的??

          ----------------------------------------------  閱讀全文
          posted @ 2008-01-21 18:42 vesung 閱讀(390) | 評論 (0)編輯 收藏

          僅列出標(biāo)題
          共6頁: 上一頁 1 2 3 4 5 6 下一頁 
          主站蜘蛛池模板: 贵港市| 陇川县| 宁夏| 宁明县| 黔西县| 衡东县| 松阳县| 长武县| 莱芜市| 大邑县| 保山市| 子洲县| 长子县| 龙山县| 海淀区| 望江县| 辽源市| 靖宇县| 林西县| 闵行区| 漳浦县| 武乡县| 治多县| 磐安县| 吉林省| 永靖县| 商河县| 南木林县| 高密市| 弥勒县| 兴和县| 遂昌县| 普格县| 宜川县| 故城县| 怀宁县| 金门县| 安吉县| 沅江市| 岑溪市| 竹山县|