System.getProperty()參數(shù)大全
posted @ 2008-02-18 17:43 binge 閱讀(701) | 評(píng)論 (0) | 編輯 收藏
拾貝殼走過(guò)的路
隨筆 - 39, 文章 - 1, 評(píng)論 - 14, 引用 - 0
|
System.getProperty()參數(shù)大全
System.getProperty()參數(shù)大全
posted @ 2008-02-18 17:43 binge 閱讀(701) | 評(píng)論 (0) | 編輯 收藏 axis userguide(3)服務(wù)類型 在axis中有4中服務(wù)類型 RPC服務(wù) 相關(guān)的PurchaseOrder類型定義如下: <schema targetNamespace="http://commerce.com/PO"> 對(duì)于一個(gè)document服務(wù)來(lái)說(shuō),他將對(duì)應(yīng)到這樣的方法 換句話說(shuō),整個(gè)PurchaseOrder元素將被處理為一個(gè)單一的對(duì)象,包含3個(gè)屬性。 posted @ 2008-02-17 20:31 binge 閱讀(626) | 評(píng)論 (0) | 編輯 收藏 axis userguide(2)發(fā)布service <!-- define the service, using the log handler we just defined --> <parameter name="className" value="samples.userguide.example4.Service"/> <service name="AdminService" provider="java:MSG"> posted @ 2008-02-17 12:17 binge 閱讀(606) | 評(píng)論 (0) | 編輯 收藏 osworkflow幾個(gè)主要組件和概念原文見(jiàn): posted @ 2008-02-17 10:36 binge 閱讀(778) | 評(píng)論 (0) | 編輯 收藏 Javascript 的dtree說(shuō)dtree是使用最廣泛的目錄樹(shù)javascript應(yīng)該也不為過(guò).這得意于他簡(jiǎn)單的使用方式和良好的結(jié)構(gòu). 可能這里是他最早的發(fā)源地之一http://www.destroydrop.com/javascripts/tree/ 上面有他的示例和api文檔. dtree使用簡(jiǎn)單,使用起來(lái)就是引入一個(gè)dtree.js,dtree.css和一些小圖片文件。.在需要顯示樹(shù)的地方,插入類似下面的代碼 可以參照這里做些配置,觀看效果.可選的選項(xiàng)有folderLinks, useIcons, useLines, useSelection, useStatusText, closeSameLevel http://www.destroydrop.com/javascripts/tree/example/ 你可以放置radio或者checkbox在相應(yīng)的節(jié)點(diǎn)上,或者在節(jié)點(diǎn)上加上鏈接. posted @ 2008-02-17 10:35 binge 閱讀(1533) | 評(píng)論 (0) | 編輯 收藏 用opencms java API獲取資源信息原文見(jiàn) posted @ 2008-02-17 10:34 binge 閱讀(738) | 評(píng)論 (0) | 編輯 收藏 opencms分頁(yè)opencms列表顯示 <% pageContext.setAttribute("pageIndex", iPageIndex+""); 參考資料: http://www.javaedu.com/bbs/viewthread?thread=128 http://wangyi878750.blog.sohu.com/41725191.html http://l--w.blog.sohu.com/47996664.html http://wangyi878750.blog.sohu.com/41378072.html
posted @ 2008-02-17 10:31 binge 閱讀(1642) | 評(píng)論 (0) | 編輯 收藏 Ruby之Blocks&Iterator
Ruby之Blocks,Iterator
-------讀《Programming Ruby 2nd》 posted @ 2007-08-09 10:22 binge 閱讀(363) | 評(píng)論 (0) | 編輯 收藏 Ruby簡(jiǎn)介Ruby是”一種用于迅速和簡(jiǎn)便的面向?qū)ο缶幊痰慕忉屝阅_本語(yǔ)言”;這意味著什么?
迅速和簡(jiǎn)便:
面向?qū)ο缶幊?/p>
以及:
如果你對(duì)上面的那些概念還不熟悉,繼續(xù)讀,別擔(dān)心.Ruby的箴言是”迅速和簡(jiǎn)便”. posted @ 2007-08-02 10:16 binge 閱讀(446) | 評(píng)論 (0) | 編輯 收藏 ruby日記ruby初體驗(yàn) ror 制作簡(jiǎn)單網(wǎng)頁(yè) posted @ 2007-07-31 16:40 binge 閱讀(598) | 評(píng)論 (0) | 編輯 收藏 javascript操作word控件<script language="javascript"> word.CommandBars("File").Controls(6).Enabled= false; word.visible = true; posted @ 2007-07-25 10:54 binge 閱讀(3165) | 評(píng)論 (0) | 編輯 收藏 DB2原文: posted @ 2007-07-09 16:20 binge 閱讀(343) | 評(píng)論 (0) | 編輯 收藏 AXIS User Guide(1)
摘要: AXIS User Guide(1) 閱讀全文
posted @ 2007-01-03 20:54 binge 閱讀(1175) | 評(píng)論 (0) | 編輯 收藏 Sliding into WebDAV
摘要: Sliding into WebDAV 閱讀全文
posted @ 2007-01-03 20:49 binge 閱讀(2423) | 評(píng)論 (0) | 編輯 收藏 HibernateTemplate方法
摘要: HibernateTemplate方法索引 閱讀全文
posted @ 2006-12-26 15:47 binge 閱讀(4397) | 評(píng)論 (0) | 編輯 收藏 小心對(duì)js函數(shù)命名,避免和它的內(nèi)置函數(shù)重名最近又遇到個(gè)對(duì)js取名不帥導(dǎo)致錯(cuò)誤的問(wèn)題,特開(kāi)此貼,以示警戒: window得resizeto和resizeby方法對(duì)模式窗口無(wú)效。 posted @ 2006-12-10 13:25 binge 閱讀(720) | 評(píng)論 (0) | 編輯 收藏 webdav使用指南 最近研究了一下webdav,關(guān)于webdav的詳細(xì)信息可以在 google上搜索或者參看官方網(wǎng)站 筆者簡(jiǎn)單的嘗試了它下面的slide和mod_dav. DAVLockDB /usr/local/apache/var/DAVLock" posted @ 2006-12-10 12:40 binge 閱讀(6009) | 評(píng)論 (0) | 編輯 收藏 mvnforum權(quán)限系統(tǒng)分析?? mvnforum是一個(gè)開(kāi)源的論壇軟件.網(wǎng)址如下:
數(shù)據(jù)流程:
posted @ 2006-09-19 10:07 binge 閱讀(1548) | 評(píng)論 (0) | 編輯 收藏 Log4j/common log和各種服務(wù)器集成的問(wèn)題
? 目前的很多商業(yè)和非商業(yè)的服務(wù)器中間件都默認(rèn)集成了common-log甚至是log4j.因此當(dāng)我門把我們的應(yīng)用發(fā)布在上面的時(shí)候,都會(huì)遇到關(guān)于log方面的問(wèn)題.
? 1.webshpere下面集成log4j. ? "WebSphere的類裝入器方式有兩種方式:PARENT_FIRST和PARENT_LAST。默認(rèn)值是PARENT_FIRST,這種方式在載入當(dāng)前classpath的類之前先載入其上一級(jí)classloader能夠裝入的類。這是標(biāo)準(zhǔn)的JVM classloader的默認(rèn)策略。如果采用PARENT_LAST,則過(guò)程正好相反,即先載入當(dāng)前classpath的類,再載入其上一級(jí)classloader能夠裝入的類,這樣可以用當(dāng)前classpath中更新的類覆蓋其上一級(jí)classloader的相同類。受類裝入器方式影響的classloader包括application classloader、WAR classloader以及共享類庫(kù)的classloader。" ?因?yàn)閣ebsphere在共享類庫(kù)的classloader中有一套common logging,但是確沒(méi)有合適配置文件.如果我們把配置正確的log4j.properties文件放在共享類庫(kù)下,我們會(huì)發(fā)現(xiàn)log4j可以運(yùn)行.但還有另外一個(gè)很通用的方式--改變webshpere的類庫(kù)加載順序.我們讓他先加載我們web應(yīng)用所需的類庫(kù).即我們把web應(yīng)用的加栽方式改為PARENT_LAST. ? 哎,盡管我小心的提防,今天還是中招了,在我的配置里,log4j的配置文件只能讀取一次,不能一個(gè)應(yīng)用一個(gè)配置文件.為了讓它加載自己的配置,可以自己寫(或者用spring的)servlet/listener去手動(dòng)加載這個(gè)配置文件. ?2.jboss下面的集成log4j ? 大家可能都曾在為jboss下面配置log4j郁悶過(guò).jboss比webshpere走的還遠(yuǎn).無(wú)論你的項(xiàng)目是否使用了log4j,jboss在自己?jiǎn)?dòng)的時(shí)候就已經(jīng)運(yùn)行他了.也就是說(shuō)在jboss加載自己共享類庫(kù)的時(shí)候,已經(jīng)讀取了自己log4j.xml文件配置.這個(gè)文件在conf中可以找到.如果你需要為你的應(yīng)用單獨(dú)配置一個(gè)catagory,你需要直接在這里配置. ???在webloader裝載應(yīng)用的時(shí)候,如果應(yīng)用中有l(wèi)og4j的包,似乎總出現(xiàn)appender已被占用的問(wèn)題.筆者把log4j的包連帶應(yīng)用中的log4j配置文件一并移去,世界清凈了. 關(guān)于為了讓應(yīng)用自帶的log4j配置文件生效,有人建議修改 ?<attribute name="Java2ClassLoadingCompliance">false</attribute> 和 ?<attribute name="UseJBossWebLoader">false</attribute> 這兩個(gè)屬性. 3.sunone下面集成log4j ??? 距離上次用SunOne服務(wù)器已經(jīng)好長(zhǎng)時(shí)間了,似乎sunOne的log有些類似jboss,也是一個(gè)服務(wù)器的log集中管理.由于使用的不是很多,暫且在這里站個(gè)位子. 隨手貼點(diǎn)關(guān)于log的信息: http://wiki.apache.org/jakarta-commons/Logging/FrequentlyAskedQuestions http://www-128.ibm.com/developerworks/cn/websphere/library/techarticles/0408_baigang/part3.html ? posted @ 2006-09-05 17:23 binge 閱讀(1490) | 評(píng)論 (1) | 編輯 收藏 OpenLDAP快速上手OpenLDAP 快速上手 ?? Ben 的項(xiàng)目里面要用到 OpenLDAP, 我的項(xiàng)目里面也要用到 LDAP, 所以這 2 天集中看了一下 LDAP 相關(guān)的內(nèi)容。做了個(gè)筆記,也算是為人類知識(shí)的積累做點(diǎn)或有或無(wú)的貢獻(xiàn)。 ?? OpenLDAP 的官方站點(diǎn)是 http://www.openldap.org 。 ?????? 上面有個(gè) QuickStart, 我將大致按照這個(gè)來(lái)講解。
一、
安裝
二、 配置 OpenLDAP 有 2 個(gè)用戶最關(guān)注的配置文件。
一個(gè)是
slapd.conf
,
在他里面定義了最基本的
DN
以及管理員的賬號(hào)和密碼。
另一個(gè)是
LDIF
的文件。在它里面可以配置所有的用戶和組織。
1、?
我們先來(lái)了解
LDAP
的相關(guān)概念。
Ldap
是怎樣的一個(gè)結(jié)構(gòu)呢
?用官方的話說(shuō):“
In LDAP, directory entries are arranged in a hierarchical tree-like structure. Traditionally, this structure reflected the geographic and/or organizational boundaries. Entries representing countries appear at the top of the tree. Below them are entries representing states and national organizations. Below them might be entries representing organizational units, people, printers, documents, or just about anything else you can think of..
”他是一個(gè)樹(shù)狀的結(jié)構(gòu)。每一個(gè)節(jié)點(diǎn)被稱為一個(gè)
Entry
。這些
Entry
有著有趣的含義。
下面是他的
2
個(gè)實(shí)例。一個(gè)反映了
geographic
,一個(gè)反映了
organizational
。
每個(gè)
Entry
都有一個(gè)自己得一個(gè)標(biāo)示
,我們把他叫
DN(Distinguished Name)
,這個(gè)
dn
包含了一個(gè)
RDN
(
Relative Distinguished Name
)。在上面的第二個(gè)圖例
中,Barbara Jensen的RDN是
uid=babs,他的dn是
uid=babs,ou=People,dc=example, dc=com。
每個(gè)節(jié)點(diǎn)都需要一個(gè)類別
,
這個(gè)類別信息用objectClass來(lái)表示。ObjectClass就是該節(jié)點(diǎn)的schema,他定義了該節(jié)點(diǎn)該有和不該有的屬性。默認(rèn)的objectClass都在schema/core.schema中有定義。如果在你的配置過(guò)程中出現(xiàn)了關(guān)于找不到objectClass的問(wèn)題,您不妨參看一下這里面有沒(méi)有你用到的objectClass
. 在schema文件夾下還有其他一些schema文件,你也可以定義自己的schema.想要加載其他的schema,你可以在slapd.conf文件中用include加入.如:include??./schema/core.schema.
為了方便識(shí)別,其實(shí)我們?cè)?span lang="EN-US">DN里面用的都是objectClass的簡(jiǎn)寫形式。如:ou代表organizationUnit,c代表country,st代表state,dc代表??等。
2、?
來(lái)看看
slapd.conf
這個(gè)文件
database bdb
suffix "dc=<MY-DOMAIN>,dc=<COM>"
rootdn "cn=Manager,dc=<MY-DOMAIN>,dc=<COM>"
rootpw secret
directory /usr/local/var/openldap-data
定義了數(shù)據(jù)庫(kù),最基本的后綴,管理員的
dn
和密碼,以及數(shù)據(jù)存放路徑。
編輯好這個(gè)文件,我們就可以啟動(dòng)了。
如果你把
ldap
安裝為
windows
服務(wù),你可以像我一樣啟動(dòng):
net start OpenLDAP-slapd
?
3、?
我們主要操作的就是這個(gè)
LDIF
文件
注意,因?yàn)槲覀冊(cè)?/span>
slapd.conf
中定義了一個(gè)
base dn
和一個(gè)管理員
dn
,所以我們需要首先把這
2
個(gè)
dn
加進(jìn)來(lái)。
dn: dc=<MY-DOMAIN>,dc=<COM>
objectclass: dcObject
objectclass: organization
o: <MY ORGANIZATION>
dc: <MY-DOMAIN>
?
dn: cn=Manager,dc=<MY-DOMAIN>,dc=<COM>
objectclass: organizationalRole
cn: Manager
保存為
ldif
后綴的文件。然后我們用命令把這些信息加到
ldap
中去:
ldapadd -x -D "cn=Manager,dc=<MY-DOMAIN>,dc=<COM>" -W -f example.ldif
讓我們來(lái)查看以下我們的設(shè)置是否出現(xiàn)問(wèn)題:
ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)'
上面的是
linux/unix
下的命令,
windows
下我們需要做點(diǎn)更改:
ldapsearch -x -b dc=example,dc=com (objectclass=*)
對(duì),就是去掉引號(hào)。
為了察看方便,筆者建議使用
GUI
工具來(lái)查看,比如筆者使用的
Softerra LDAP Browser 2.6
。
?
三、
和
java
集成
Openldap.org 上有沒(méi)有講?有講?下面介紹的 JLDAP 就是干這個(gè)的。 我們需要看一下“ Java LDAP Overview ”里面的內(nèi)容。內(nèi)容不是很多,但很實(shí)用。 要在 java 中訪問(wèn) ldap ,我們需要一套 api, 你可以在下面的網(wǎng)站上獲得: http://developer.novell.com/wiki/index.php/LDAP_Classes_for_Java 在下在的文件里面有許多的例子,在 novell 的網(wǎng)站上也有很多的例子。我就不講了。 Try yourself 。 posted @ 2006-08-26 08:37 binge 閱讀(9161) | 評(píng)論 (7) | 編輯 收藏 JUDE還是很好用的
?? 沒(méi)有華麗的Rose,也沒(méi)有Togather,用JUDE的感覺(jué)也不錯(cuò).剛剛把PicoContainer反向了.可惜,好東西都陸續(xù)要收費(fèi)了.只能用用Community /Free 版.
? JUDE的一個(gè)下載地址: ?? http://jude.change-vision.com/jude-web/product/community.html posted @ 2006-07-23 15:27 binge 閱讀(898) | 評(píng)論 (1) | 編輯 收藏 PicoContainer源碼導(dǎo)讀
摘要: 一、簡(jiǎn)介?? 感謝“簡(jiǎn)易java框架”分享的學(xué)習(xí)心得。循著他的足跡,我把picocontainer讀了一遍。源代碼的版本是1.2-RC-2。?? pico的官方站點(diǎn):http://www.picocontainer.org/?? 由于它是一個(gè)專門的ioc容器,所以使用起來(lái)沒(méi)有spring那么麻煩。關(guān)于他的文檔,在官方站點(diǎn)上有一篇《5分鐘搞定pico》的文章。國(guó)人似乎也有很多的翻譯版本。講解得很詳細(xì)... 閱讀全文
posted @ 2006-07-23 14:30 binge 閱讀(3019) | 評(píng)論 (0) | 編輯 收藏 一個(gè)簡(jiǎn)單的ThreadPool分析
一個(gè)簡(jiǎn)單的ThreadPool
? 原文來(lái)自http://www.informit.com/articles/printerfriendly.asp?p=30483&r1=1&rl=1 ? 項(xiàng)目是多線程的,所以引入了線程池這個(gè)東西。池子是個(gè)老美寫的。在項(xiàng)目中表現(xiàn)的還不錯(cuò)。所以把它摘出來(lái),介紹給以后或許需要用到它的同行們。 ? 關(guān)于為什么要采用ThreadPool,原文已經(jīng)提到了:創(chuàng)建一個(gè)線程是需要開(kāi)銷的;如果線程數(shù)量過(guò)大的話,cpu就會(huì)浪費(fèi)很大的精力做線程切換。 ? ThreadPool的實(shí)現(xiàn)過(guò)程就是對(duì)WorkerThread的同步和通信的管理過(guò)程。 ? 我們來(lái)看代碼。 ? 首先,在ThreadPool構(gòu)造的時(shí)候,創(chuàng)建10個(gè)WorkerThread(size=10)并讓他們運(yùn)行。每個(gè)WorkerThread線程都有個(gè)ThreadPool的引用,用于查詢ThreadPool的狀態(tài)和獲得同步鎖.WorkerThread運(yùn)行以后,循環(huán)調(diào)用ThreadPool的方法進(jìn)行查詢,如果沒(méi)有發(fā)現(xiàn)任務(wù),ThreadPool告訴正在查詢的線程進(jìn)入休眠狀態(tài),WorkerThread釋放對(duì)查詢方法的鎖定.這樣在還沒(méi)有任務(wù)的時(shí)候,所有的10個(gè)WorkerThread都會(huì)進(jìn)入休眠狀態(tài),進(jìn)入等待ThreadPool對(duì)象的等待鎖定池,只有ThreadPool對(duì)象發(fā)出notify方法(或notifyAll)后WorkerThread線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。 代碼片斷: while ( !assignments.iterator().hasNext() ) ??? wait(); 如果你有jprofile或者其他的觀察線程的工具,你可以看到有10個(gè)線程都在休眠狀態(tài). ? 接著,我們向ThreadPool中加入任務(wù),這些任務(wù)都實(shí)現(xiàn)了Runnable的run方法.(至于為什么把任務(wù)都做成Runnable,譯者至今也有些疑問(wèn)?預(yù)定俗成?TimerTask也是實(shí)現(xiàn)自Runnable,弄得初學(xué)者經(jīng)常把真正運(yùn)行的線程搞混).ThreadPool每assign一個(gè)任務(wù),就會(huì)發(fā)出一條消息,通知它的等待鎖定池中的線程.各個(gè)線程以搶占的方式獲得對(duì)象鎖,然后很順利的獲得一條任務(wù).并把此任務(wù)從ThreadPool里面刪除.沒(méi)有搶到的繼續(xù)等待. Runnable r = (Runnable)assignments.iterator().next(); ?? assignments.remove(r); WorkerThread從ThreadPool那里獲得了任務(wù),繼續(xù)向下執(zhí)行。 target = owner.getAssignment(); ?? if (target!=null) { ??? target.run();????? ??? owner.done.workerEnd(); ?? } 記住,這里調(diào)用的是target.run();而不是調(diào)用的線程的start()方法。也就是說(shuō)在這里表現(xiàn)出的WorkerThread和task之間的關(guān)系僅僅是簡(jiǎn)單的方法調(diào)用的關(guān)系,并沒(méi)有額外產(chǎn)生新線程。(這就是我上面納悶為什么大家都實(shí)現(xiàn)Runnable來(lái)做task的原因) ?大家可能注意到,WorkerThread并沒(méi)有對(duì)異常作處理。而我們知道發(fā)生在線程上的異常會(huì)導(dǎo)致線程死亡。解決的辦法有2中,一種是通過(guò)threadpool的管理來(lái)重新激起一個(gè)線程,一種是把異常在線程之內(nèi)消滅。在項(xiàng)目中,我采用的是第二中,因此這個(gè)片斷改稱這樣: if (target!=null) { ? try{ ??? target.run();????? ?? } ? catch(Throwable t){ ?....... ?? } ??? owner.done.workerEnd(); } 在WorkerThread完成一個(gè)task以后,繼續(xù)循環(huán)作同樣的流程. 在這個(gè)ThreadPool的實(shí)現(xiàn)里面,Jeff Heaton用了一個(gè)Done類來(lái)觀察WorkerThread的執(zhí)行情況.和ThreadPoool的等待鎖定池不同,Done的等待鎖定池里面放的是初始化ThreadPool的線程(可能是你的主線程),我們叫他母線程. ? 在給出的測(cè)試?yán)又?母線程在調(diào)用complete()方法后進(jìn)入休眠(在監(jiān)視中等待),一開(kāi)始是waitBegin()讓他休眠,在assign加入task以后,waitDone()方法讓他休眠.在WorkerThread完成一個(gè)task以后,通知waitDone()起來(lái)重新檢查activeThreads的數(shù)值.若不為0,繼續(xù)睡覺(jué).若為0,那么母線程走完,死亡(這個(gè)時(shí)候該做的task已經(jīng)做完了).母線程走完,ThreadPool還存在嗎?答案是存在,因?yàn)閃orkerThread還沒(méi)有消亡,他們?cè)诘却乱慌蝿?wù),他們有ThreadPool的引用,保證ThreadPool依然存在.大家或許已經(jīng)明白Done這個(gè)類的作用了. ? 細(xì)心的讀者或許會(huì)發(fā)現(xiàn),發(fā)生在Done實(shí)例上的notify()并不是像ThreadPool上的notify()那樣每次都能完成一項(xiàng)工作.比如除了第一個(gè)被assign的task,其他的task在assign進(jìn)去的時(shí)候,發(fā)出的notify()對(duì)于waitDone()來(lái)說(shuō)是句"狼來(lái)了". ?最后在ThreadPool需要被清理得時(shí)候,使每一個(gè)WorkerThread中斷(這個(gè)時(shí)候或許所有的WorkerThread都在休眠)并銷毀.記住這里也是一個(gè)異步的過(guò)程.等到每一個(gè)WorkerThread都已經(jīng)銷毀,finalize()的方法體走完.ThreadPool被銷毀. ?for (int i=0;i<threads.length;i++) { ?? threads[i].interrupt(); ?? done.workerBegin(); ?? threads[i].destroy(); ? } ? done.waitDone(); 為什么有句done.workerBegin();?不明白. 參考文章: http://www.zdnet.com.cn/developer/common/printfriend/printfriendly.htm?AT=39276905-3800066897t-20000560c posted @ 2006-07-16 20:07 binge 閱讀(7188) | 評(píng)論 (1) | 編輯 收藏 關(guān)于作者
??? 呂華兵,男,24歲。
??? 2000-2004年,在中國(guó)民航大學(xué)讀書。學(xué)習(xí)期間,筆者以技術(shù)部長(zhǎng)身份參與了校易航工作室暨易航網(wǎng)站的創(chuàng)建和發(fā)展工作,參與和獨(dú)立完成了多個(gè)項(xiàng)目的設(shè)計(jì)和開(kāi)發(fā)。 ?? 2004年5月到2006年5月,在北京環(huán)亞時(shí)代(港新合資)天津軟件中心從事Java的開(kāi)發(fā)工作。參與了CMCC的OA的實(shí)施工作,主力開(kāi)發(fā)了MOCHA AM的前端顯示和MOCHA ITAM的報(bào)表系統(tǒng)。 ? 2006年5月至今,在美國(guó)易達(dá)軟件有限公司工作。設(shè)計(jì)并開(kāi)發(fā)了Information Publisher的多線程后端程序。 ?? ? 筆者長(zhǎng)期從事j2se,j2ee的開(kāi)發(fā)工作,對(duì)各種設(shè)計(jì)模式亦有豐富的使用經(jīng)驗(yàn)。 ? 筆者從來(lái)重視規(guī)范的軟件流程,對(duì)RUP有很深的理解。 ? 對(duì)于javascript,dhtml,ajax,筆者有著豐富的經(jīng)驗(yàn)。 ? 筆者也是“拿來(lái)主義”的擁躉,不遺余力的翻譯、學(xué)習(xí)、使用和宣傳各種開(kāi)源項(xiàng)目。目前使用過(guò)的開(kāi)源項(xiàng)目有:spring、picocontainer、hibernate、ibatis、struts、webwork等框架系列,DOM系列,commons系列,Quartz,log4j,ant,oscache,proxool以及各種報(bào)表工具等等。 ?筆者從來(lái)重視知識(shí)的提取和積累,這也是筆者開(kāi)此blog的主要原因,同時(shí),也希望通過(guò)此blog結(jié)交更多的朋友。 posted @ 2006-07-16 10:15 binge 閱讀(416) | 評(píng)論 (0) | 編輯 收藏 關(guān)于GWT的第一手經(jīng)驗(yàn)譯者安:你敢大膽采用最新的技術(shù)嗎?你顧慮哪些方面?下面的采訪將給我們提供一個(gè)參考。 posted @ 2006-07-08 13:47 binge 閱讀(1172) | 評(píng)論 (0) | 編輯 收藏 java.util.Date和java.sql.Date
java.sql.Date,java.sql.Time和java.sql.Timestamp三個(gè)都是java.util.Date的子類(包裝類)。
但是為什么java.sql.Date類型的值插入到數(shù)據(jù)庫(kù)中Date字段中會(huì)發(fā)生數(shù)據(jù)截取呢? java.sql.Date是為了配合SQL DATE而設(shè)置的數(shù)據(jù)類型?!耙?guī)范化”的java.sql.Date只包含年月日信息,時(shí)分秒毫秒都會(huì)清零。格式類似:YYYY-MM-DD 當(dāng)我們調(diào)用ResultSet的getDate()方法來(lái)獲得返回值時(shí),java程序會(huì)參照"規(guī)范"的java.sql.Date來(lái)格式化數(shù)據(jù)庫(kù)中的數(shù)值。因此,如果 數(shù)據(jù)庫(kù)中存在的非規(guī)范化部分的信息將會(huì)被劫取。在sun提供的ResultSet.java中這樣對(duì)getDate進(jìn)行注釋的: Retrieves the value of the designated column in the current row of this <code>ResultSet</code> object as a “java.sql.Date” object in the Java programming language. 同理。如果我們把一個(gè)java.sql.Date值通過(guò)PrepareStatement的setDate方法存入數(shù)據(jù)庫(kù)時(shí),java程序會(huì)對(duì)傳入的java.sql.Date規(guī)范化 ,非規(guī)范化的部分將會(huì)被劫取。 ?然而,我們java.sql.Date一般由java.util.Date轉(zhuǎn)換過(guò)來(lái),如:java.sql.Date sqlDate=new java.sql.Date(new java.util.Date().getTime()). ?顯然,這樣轉(zhuǎn)換過(guò)來(lái)的java.sql.Date往往不是一個(gè)規(guī)范的java.sql.Date. ?在http://www.thunderguy.com/semicolon/2003/08/14/java-sql-date-is-not-a-real-date/ 文章中提到,要保存java.util.Date的精確值, ?我們需要利用java.sql.Timestamp. ?感謝這篇文章的鋪墊:http://community.csdn.net/Expert/topic/4354/4354971.xml?temp=.5256616 posted @ 2006-07-06 16:51 binge 閱讀(4288) | 評(píng)論 (0) | 編輯 收藏 log4j配置概要
官方網(wǎng)址:
http://logging.apache.org/log4j/docs/index.html 一個(gè)中文翻譯的文檔: http://www.jaxwiki.org/zh/project/logging.apache.org/log4j/docs/manual.html 我摘出黃色字體表明幾條列在下面,也是筆者認(rèn)為log4j最主要特點(diǎn)的濃縮: 1.階層式的命名: 如果一個(gè)logger 的名字后面跟著一個(gè)點(diǎn)號(hào)(dot),它就是點(diǎn)號(hào)(dot)后面的那個(gè)logger的前輩( ancestor),是這個(gè)晚輩(descendant) 的前綴。如果在它自己和這個(gè)晚輩之間沒(méi)有其它的前輩,它和這個(gè)晚輩之間就是父子關(guān)系。 2.級(jí)別繼承 對(duì)于一個(gè)給定的logger C,它繼承的級(jí)別等于logger階層里,從C開(kāi)始往 3.執(zhí)行規(guī)則 在一個(gè)級(jí)別為q(被指定的或繼承的)的logger里,一個(gè)級(jí)別為p的日志請(qǐng)求,只有在p >= q 時(shí)才能夠被執(zhí)行。 Logger C的log輸出信息將被輸出到C的所有appenders和它的前輩的 appenders。這就是"appender additivity"的意思。但是,如果logger C的前輩,比如說(shuō)P,P的additivity flag被設(shè)置為 log4j.appender.A1.layout.ConversionPattern=%d %-5p [%t] %-c (%13F:%L) %3x - %m%n 在配置文件中,log4j可以訪問(wèn)到系統(tǒng)環(huán)境變量。具體的變量參考相關(guān)資料。 posted @ 2006-07-04 10:07 binge 閱讀(533) | 評(píng)論 (0) | 編輯 收藏 Mysql數(shù)據(jù)庫(kù)使用技巧 我承認(rèn)我用mysql有很長(zhǎng)時(shí)間了,不過(guò)似乎我仍然很白。好吧,還是寫寫吧。 posted @ 2006-07-03 23:16 binge 閱讀(1446) | 評(píng)論 (2) | 編輯 收藏 關(guān)于異常Exception1。什么是異常 posted @ 2006-06-29 11:40 binge 閱讀(1407) | 評(píng)論 (1) | 編輯 收藏 XMLBeans
?XmlBeans由 BEA公司發(fā)明,后捐贈(zèng)給Apache基金會(huì)的。
?在項(xiàng)目中遇到這樣的需求,根據(jù)已有的schema對(duì)xml進(jìn)行格式校驗(yàn),并讀取出xml得數(shù)據(jù)。 ?在大搜一番后,我最終把目光停留在xmlbeans上面。被淘汰的是digester. ?下面是一篇dev2dev得文章: ??http://dev2dev.bea.com/pub/a/2006/05/xmlbeans-2.html?page=4 ?我就不炒飯了。 ?好心的人給簡(jiǎn)單翻譯了一下: http://dev2dev.bea.com.cn/techdoc/200403127.html ?翻譯得內(nèi)容很少,有空本人補(bǔ)上。 ibm dw上也有個(gè)豆腐塊: http://www-128.ibm.com/developerworks/cn/xml/x-beans1/ 關(guān)于digester的內(nèi)容,只選了一篇文章:來(lái)自devx得 http://www.devx.com/Java/Article/21832/1763 關(guān)于2中方法的對(duì)比,他們的文章已經(jīng)說(shuō)的很詳細(xì)了。 xmlbeans采用的是sax來(lái)讀取數(shù)據(jù)。2004年,由bea公司發(fā)明的stax(stream API for XML)已經(jīng)被jcp列為標(biāo)準(zhǔn)jsr-173,在jdk6.0中會(huì)出現(xiàn)。 ? 關(guān)于stax,sax和dom的對(duì)比超出本篇范圍,在此略過(guò)。 后記: ? 在正在完成的項(xiàng)目中,我采用了xmlbeans,它的引入給我?guī)?lái)了很大的方便. posted @ 2006-06-21 13:50 binge 閱讀(632) | 評(píng)論 (0) | 編輯 收藏 Ten Reasons Why Blogging is Good For Your Career
posted @ 2006-06-16 15:25 binge 閱讀(315) | 評(píng)論 (0) | 編輯 收藏 JAVA開(kāi)發(fā)者應(yīng)該去的20個(gè)英文網(wǎng)站??? Java開(kāi)發(fā)者年鑒一書的在線版本. 要想快速查到某種Java技巧的用法及示例代碼, 這是一個(gè)不錯(cuò)的去處. ??? O'Reilly的Java網(wǎng)站. 每周都有新文章 ??? 官方的Java開(kāi)發(fā)者網(wǎng)站 - 每周都有新文章發(fā)表 ??? 由Gamelan.com 維護(hù)的Java技術(shù)文章網(wǎng)站 ??? Sun公司維護(hù)的一個(gè)Java社區(qū)網(wǎng)站 ??? Cnet的Builder.com網(wǎng)站 - 所有的技術(shù)文章, 以Java為主. http://www.ibm.com/developerworks/java ??? IBM的Developerworks技術(shù)網(wǎng)站; 這是其中的Java技術(shù)主頁(yè) ??? 最早的一個(gè)Java站點(diǎn). 每周更新Java技術(shù)文章 ??? DevX維護(hù)的一個(gè)Java技術(shù)文章網(wǎng)站 http://www.fawcette.com/javapro ??? JavaPro在線雜志網(wǎng)站. ??? Java Developers Journal的在線雜志網(wǎng)站. ??? 位于Java.net的一個(gè)Java桌面技術(shù)社區(qū)網(wǎng)站. ??? 這是一個(gè)討論所有Java服務(wù)器端技術(shù)的網(wǎng)站. ??? 提供Java評(píng)論服務(wù). 包括各種framework和應(yīng)用程序 ??? 一個(gè)非常棒的采用Q&A形式的Java技術(shù)資源社區(qū). ???? 一個(gè)論壇,得到Java問(wèn)題答案的地方,初學(xué)者的好去處。 http://www.ibiblio.org/javafaq/javafaq.html ??? comp.lang.java的FAQ站點(diǎn) - 收集了來(lái)自comp.lang.java新聞組的問(wèn)題和答案的分類目錄. http://java.sun.com/docs/books/tutorial/ ??? 來(lái)自SUN公司的官方Java指南 - 對(duì)于了解幾乎所有的java技術(shù)特性非常有幫助. ??? 互聯(lián)網(wǎng)上最活躍的一個(gè)Java Blog網(wǎng)站.
http://java.about.com/
posted @ 2006-06-16 14:11 binge 閱讀(789) | 評(píng)論 (0) | 編輯 收藏 |
|