http://www.jdon.com/idea/j2eebasic.htm
J2EE容器分為WEB容器和EJB容器,Tomcat/Resin是Web容器;JBoss是EJB容器+Web容器等,其中Web容器直接使用Tomcat實現的。所以你開發的Web應用程序可以在上面兩種容器運行,而你開發的Web+EJB應用則只可以在JBoss服務器上運行,商業產品Websphere/Weblogic等和JBoss屬于同一種性質。
J2EE容器也稱為J2EE服務器,大部分時它們概念是一致的。
http://www.douzhe.com/jerry/archive/archive1_cn.htm
容器:充當中間件的角色
WEB容器:給處于其中的應用程序組件(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接更容器中的環境變量接口交互,不必關注其它系統問題。主要有WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規范中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。
EJB容器:Enterprise Java bean 容器。更具有行業領域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規范的EJB放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現成的接口來獲得系統級別的服務。例如郵件服務、事務管理。
WEB容器和EJB容器在原理上是大體相同的,更多的區別是被隔離的外界環境。WEB容器更多的是跟基于HTTP的請求打交道。而EJB容器不是。它是更多的跟數據庫、其它服務打交道。但他們都是把與外界的交互實現從而減輕應用程序的負擔。例如SERVLET不用關心HTTP的細節,直接引用環境變量session,request,response就行、EJB不用關心數據庫連接速度、各種事務控制,直接由容器來完成。
RMI/IIOP:遠程方法調用/internet對象請求中介協議,他們主要用于通過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,我們可以在本地計算機上實現對其直接調用。當然這是要通過一定的規范才能在異構的系統之間進行通信。RMI是Java特有的。
JNDI:Java命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應用程序的功能。
JMS:Java消息服務。主要實現各個應用程序之間的通訊。包括點對點和廣播。
JavaMAIL:Java郵件服務。提供郵件的存儲、傳輸功能。他是Java編程中實現郵件功能的核心。相當MS中的EXCHANGE開發包。
JTA:Java事務服務。提供各種分布式事務服務。應用程序只需調用其提供的接口即可。
JAF:Java安全認證框架。提供一些安全控制方面的框架。讓開發者通過各種部署和自定義實現自己的個性安全控制策略。
EAI:企業應用集成。是一種概念,從而牽涉到好多技術。J2EE技術是一種很好的集成實現。
EJB容器
EJB容器用來容納業務邏輯,并為業務邏輯截取請求。EJB容器支持EJB訪問JMS、JAAS、JTA、JavaMail、JAXP、JDBC和連接器(Connector)。
Web容器
Web容器截取通過HTTP、FTP、SMTP或其他協議發送的請求。Web應用容器為Servlet和JSP頁面提供的資源與EJB容器提供的資源相同。
應用客戶端容器
客戶端應用是獨立的Java應用,它們在遠程的獨立JVM上運行(與Web容器和EJB容器所運行的JVM不同)。應用客戶端容器為這些應用截取請求。
運行在應用客戶端容器上的程序非常類似于帶有main()方法的Java程序,不過,程序不再由JVM控制,而是由一個容器(也就是應用客戶端容器)控制。
在應用客戶端容器內運行的程序能夠訪問遠程應用服務器上的JAXP、JDBC、JMS和JAAS資源。
Applet容器
Applet容器是一個特殊的容器,它為在瀏覽器內運行的Java程序截取請求。Applet容器不提供任何對其他資源(比如JDBC或JMS)的訪問。在Applet容器內運行的Applet必須自己直接向應用服務器請求資源(而不是把請求發送給容器,然后由容器發送請求給應用服務器)。
對于Applet如何與EJB容器進行通信,EJB規范沒有作出任何規定,但J2EE規范有這方面的規定。對于那些想要直接使用EJB的Applet,J2EE規范要求它們使用HTTP隧道。許多應用服務器提供某種形式的HTTP隧道,支持Applet直接使用EJB。
posted @
2006-10-18 10:05 Lizzie 閱讀(332) |
評論 (0) |
編輯 收藏
[
肥肥世家]Linux由于開放源碼衍生出大量的發行版,為用戶提供豐富選擇的同時又給初學者造成困惑,這么多發行版應該選擇哪種才適合自已呢?下面這個網址會給出答案,它會向你提出一些有關Linux和你應用環境的問題,你只要一步步回答,最后它就會根據你的回答為你選擇幾款最適合你的發行版。
http://www.zegeniestudios.net/ldc/index.php?firsttime=true
posted @
2006-10-08 15:43 Lizzie 閱讀(442) |
評論 (1) |
編輯 收藏
第一句話是:優秀是一種習慣。
這句話是古希臘哲學家亞里士多德說的。如果說優秀是一種習慣,那么懶惰也是一種習慣。人出生的時候,除了脾氣會因為天性而有所不同,其他的東西基本都是后天形成的,是家庭影響和教育的結果。所以,我們的一言一行都是日積月累養成的習慣。我們有的人形成了很好的習慣,有的人形成了很壞的習慣。所以我們從現在起就要把優秀變成一種習慣,使我們的優秀行為習以為常,變成我們的第二天性。讓我們習慣性地去創造性思考,習慣性地去認真做事情,習慣性地對別人友好,習慣性地欣賞大自然。
注解:要會“裝”,要持續的、不間斷的“裝”,裝久了就成了真的了,就成了習慣了,比如準時到會,每次都按時到會,你裝裝看,你裝30年看看,裝的時間長了就形成了習慣。:)
第二句話是:生命是一種過程。
事情的結果盡管重要,但是做事情的過程更加重要,因為結果好了我們會更加快樂,但過程使我們的生命充實。人的生命最后的結果一定是死亡,我們不能因此說我們的生命沒有意義。世界上很少有永恒。大學生談戀愛,每天都在信誓旦旦地說我會愛你一輩子,這實際上是不真實的。統計數據表明,大學生談戀愛的100對里有 90對最后會分手,最后結婚了的還有一半會離婚。你說愛情能永恒嗎?所以最真實的說法是:“我今天,此時此刻正在真心地愛著你。”明天也許你會失戀,失戀后我們會體驗到失戀的痛苦。這種體驗也是豐富你生命的一個過程。
注解:生命本身其實是沒有任何意義的,只是你自己賦予你的生命一種你希望實現的意義,因此享受生命的過程就是一種意義所在。
第三句話是:兩點之間最短的距離并不一定是直線。
在人與人的關系以及做事情的過程中,我們很難直截了當就把事情做好。我們有時需要等待,有時需要合作,有時需要技巧。我們做事情會碰到很多困難和障礙,有時候我們并不一定要硬挺、硬沖,我們可以選擇有困難繞過去,有障礙繞過去,也許這樣做事情更加順利。大家想一想,我們和別人說話還得想想哪句話更好聽呢。尤其在中國這個比較復雜的社會中,大家要學會想辦法諒解別人,要讓人覺得你這個人很成熟,很不錯,你才能把事情做成。
注解:如果你在考數學試題,一定要答兩點之間直線段最短,如果你在走路,從A到B,明明可以直接過去,但所有人都不走,你最好別走,因為有陷阱。在中國辦事情,直線性思維在很多地方要碰壁,這是中國特色的中國處事方式。
第四句話是:只有知道如何停止的人才知道如何加快速度。
我在滑雪的時候,最大的體會就是停不下來。我剛開始學滑雪時沒有請教練,看著別人滑雪,覺得很容易,不就是從山頂滑到山下嗎?于是我穿上滑雪板,哧溜一下就滑下去了,結果我從山頂滑到山下,實際上是滾到山下,摔了很多個跟斗。我發現根本就不知道怎么停止、怎么保持平衡。最后我反復練習怎么在雪地上、斜坡上停下來。練了一個星期,我終于學會了在任何坡上停止、滑行、再停止。這個時候我就發現自己會滑雪了,就敢從山頂高速地往山坡下沖。因為我知道只要我想停,一轉身就能停下來。只要你能停下來,你就不會撞上樹、撞上石頭、撞上人,你就不會被撞死。因此,只有知道如何停止的人,才知道如何高速前進。
注解:用汽車來比喻,寶馬可以上200公里,奇瑞卻只能上120公里,為什么?發動機估計不相上下,差距在剎車系統,上了200公里剎不了車,呵呵,我的天!
第五句話是:放棄是一種智慧,缺陷是一種恩惠。
當你擁有六個蘋果的時候,千萬不要把它們都吃掉,因為你把六個蘋果全都吃掉,你也只吃到了六個蘋果,只吃到了一種味道,那就是蘋果的味道。如果你把六個蘋果中的五個拿出來給別人吃,盡管表面上你丟了五個蘋果,但實際上你卻得到了其他五個人的友情和好感。以后你還能得到更多,當別人有了別的水果的時候,也一定會和你分享,你會從這個人手里得到一個橘子,那個人手里得到一個梨,最后你可能就得到了六種不同的水果,六種不同的味道,六種不同的顏色,六個人的友誼。人一定要學會用你擁有的東西去換取對你來說更加重要和豐富的東西。所以說,放棄是一種智慧。
posted @
2006-10-08 15:40 Lizzie 閱讀(181) |
評論 (0) |
編輯 收藏
1、 羅密歐與朱麗葉效應
羅密歐與朱麗葉相愛,但由于雙方世仇,他們的愛情遭到了極力阻礙。但壓迫并沒有使他們分手,反而使他們愛得更深,直到殉情。這樣的現象我們叫它羅密歐與朱麗葉效應。所謂羅密歐與朱麗葉效應,就是當出現干擾戀愛雙方愛情關系的外在力量時,戀愛雙方的情感反而會加強,戀愛關系也因此更加牢固。
2、 從眾現象
一則笑話這樣說到:一日閑逛街頭,忽見一長隊綿延,趕緊站到隊后排隊,唯恐錯過什么購買緊缺必需品的機會。等到隊伍拐過墻角,發現大家原來是排隊上廁所,才不禁啞然失笑。這就是從眾鬧出的笑話。從眾指個人的觀念與行為由于群體的引導或壓力,而向與多數人一致的方向變化的現象。用通俗的話說,從眾就是“隨大流”。可以表現為在臨時的特定情境中對占優勢的行為方式的采納,也可以表現為長期性的對占優勢的觀念與行為方式的接受。
3、 暈輪效應
許多青少年因崇拜某位明星的某些特征,比如長相啊,歌聲啊,于是就不顧一切模仿明星的行為,搜集他們用過的一切東西。這其實就是暈輪效應在作怪。暈輪效應就是一種以偏概全的傾向,即人們在對一個人的某種特征形成好的或壞的印象后,傾向于據此推論該人的其他方面的特征。平時說的“愛屋及烏”就是暈輪效應的一個突出表現。
4、 鲇魚效應
水池里養著一群魚,由于缺乏外界刺激,這些魚變得死氣沉沉,容易死亡。漁民偶然把幾條鲇魚放在這群魚里,卻發現一個奇怪的現象:由于鲇魚喜歡擠來擠去,整個水池里的魚都被帶動起來而顯得生機勃勃,所以漁民喜歡放幾條鲇魚在里面增加全體魚的活力與壽命。
在經濟、文化等活動中引入競爭機制,也會產生鲇魚效應。
5、 馬太效應
《圣經·馬太福音》有這樣一則故事:一個富翁給他的三個仆人每人一錠銀子去做生意。一年后他召集仆人想知道他們各自賺了多少,其中第一個人賺了十錠,第二個人賺了五錠,最后一個人用手巾包了那錠銀子,捂了一年沒賺一個子兒,這位富翁就命令后者把那錠銀子交給賺錢最多者。該書第二十五章說:“凡有的,還要加給他叫他多余;沒有的,連他所有的也要奪過來。”1973年,美國科學史研究者莫頓用這句話概括了一種社會心理現象:“對已有相當聲譽的科學家作出的科學貢獻給予的榮譽越來越多,而對那些未出名的科學家則不承認他們的成績。”莫頓將這種社會心理現象命名為“馬太效應”。
6、 期望效應(皮格馬利翁效應、羅森塔爾效應)
皮格馬利翁是古代塞浦路斯的一位善于雕刻的國王,由于他把全部熱情和希望放在自己雕刻的少女雕像身上,后來竟使這座雕像活了起來。心理學家羅森塔爾(R. Rosenthal)和雅各布森L. F. Jacobson)稱之為“皮格馬利翁效應”。
羅森塔爾及其同事,要求教師們對他們所教的小學生進行智力測驗。他們告訴教師們說,班上有些學生屬于大器晚成(lateblooming) 者,并把這些學生的名字念給老師聽。羅森塔爾認為,這些學生的學習成績可望得到改善。自從羅森塔爾宣布大器晚成者的名單之后,羅森塔爾就再也沒有和這些學生接觸過,老師們也再沒有提起過這件事。事實上所有大器晚成者的名單,是從一個班級的學生中隨機挑選出來的,他們與班上其他學生沒有顯著不同。可是當學期之末,再次對這些學生進行智力測驗時,他們的成績顯著優于第一次測得的結果。這種結局是怎樣造成的呢?羅森塔爾認為,這可能是因為老師們認為這些晚器大成的學生,開始嶄露頭角,予以特別照顧和關懷,以致使他們的成績得以改善。
皮格馬利翁效應和羅森塔爾效應都反映了期望的作用,所以又稱為期望效應。
7、 安慰劑效應
所謂安慰劑,是指既無藥效、又無毒副作用的中性物質構成的、形似藥的制劑。安慰劑多由葡萄糖、淀粉等無藥理作用的惰性物質構成。安慰劑對那些渴求治療、對醫務人員充分信任的病人能產生良好的積極反應,出現希望達到的藥效,這種反應就稱為安慰劑效應。
使用安慰劑時容易出現相應的心理和生理反應的人,稱為“安慰劑反應者”。這種人的特點是:好與人交往、有依賴性、易受暗示、自信心不足,經常注意自身的各種生理變化和不適感,有疑病傾向和神經質。
8、 首因效應與近因效應
首因效應:人與人第一次交往中給人留下的印象,在對方的頭腦中形成并占據著主導地位,這種效應即為首因效應。
近因效應:與首因效應相反,是指交往中最后一次見面給人留下的印象,這個印象在對方的腦海中也會存留很長時間。在學習和人際交往中,這兩種現象很常見。
9、 霍桑效應
為了調查研究各種工作條件對生產率的影響,美國西方電器公司霍桑工廠一個大車間的六名女工被選為實驗的被試者。實驗持續了一年多。這些女工的工作是裝配電話機中的繼電器。首先讓她們在一個一般的車間里工作兩星期,測出她們的正常生產率。然后把她們安排到一個特珠的測量室工作五星期,這里除了可以測量每個女工的生產情況外,其他條件都與一般車間相同,即工作條件沒有變化。接著進入第三個時期,改變了對 女工們支付工資的方法。以前女工的薪水依賴于整個車間工人的生產量,現在只依賴于她們六個人的生產量。在第四個時期,在工作中安排女工上午、下午各一次5分鐘的工問休息。第五個時期,把工間休息延長為10分鐘。第六個時期,建立了六個5分鐘休息時間制度。第七個時期,公司為女工提供一頓簡單的午餐。在隨后的三個時期每天讓女工提前半小時下班。第十一個時期,建立了每周工作五天的制度。最后第十二個時期,原來的一切工作條件又全恢復了,重新回到第一個時期。老板是想通過這一實驗未尋找一種提高工人生產效率的生產方式。的確,工作效率會受工作條件的影響,然而,出乎意料的是不管條件怎么改變,如增加或減少工間休息,延長或縮短工作日,每一個實驗時期的生產率都比前一個時期要高,女工們的工作越來越努力,效率越來越高,根本就沒關注過生產條件的變化。
之所以會這樣,一個重要的原因就是女工們感到自己是特殊人物,受到了格外好的待遇,她們引起了人們極大的注意,因而感到愉快,便遵照老板想要她們做的那樣去做。她們知道這樣做主要是為了測量她們的生產效率,這是人們關注的事情,因此,生產條件發生什么變化無關緊要,她們總把這些變化設想成為有利的,所以,她們工作越來越努力,每一次的改變都刺激著她們去提高生產效率。
通過操縱一個人的環境,讓他與眾人分離,特別密切地關注他,使他感到很特別,都會對他產生很大的壓力。如果他知道人們期望他干什么,只要沒有想要拒絕的特別理由,他會盡一切努力按人們的期望去干好每一件事。霍桑工廠的女工們知道自己正在被研究,盡管她們想到的并不是老板期望的,但她們會盡自己最大的努力產生適當的效果。所以對個人施加壓力說服他去做某件事的最有效方法之一就是使他愉快,向他顯示出他正被關心著,被期待看做好某件事。這在心理學上被稱為霍桑效應。
霍桑試驗的研究結果否定了傳統管理理論對于人的假設,表明了工人不是被動的、孤立的個體,他們的行為不僅僅受工資的刺激;影響生產效率的最重要因素不是待遇和工作條件,而是工作中的人際關系。
posted @
2006-09-22 12:40 Lizzie 閱讀(232) |
評論 (0) |
編輯 收藏
摘要: J2EE/XML
開發者通常都是使用文檔對象模型
(DOM)API
或簡單的
API for XML(SAX) API
來分析
XML
文檔。然而,這些
API
都有其缺點。其中,
DOM API
的缺點之一是消耗大量的內存,因為在該
XML
文檔可以被導航之前,必須創...
閱讀全文
posted @
2006-09-17 22:24 Lizzie 閱讀(435) |
評論 (1) |
編輯 收藏
All about JAXP
http://www-128.ibm.com/developerworks/java/library/x-jaxp
Brett McLaughlin
?
Document Object Model (DOM)
Simple API for XML (SAX)
?
JDK1.4
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stream
?
JDK5.0
javax.xml
javax.xml.datatype
javax.xml.namespace
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stream
javax.xml.validation
javax.xml.xpath
?
?
嚴格來說,
JAXP
并沒有提供新的解析
XML
的方法,但是它使得我們更容易地使用
DOM
或者
SAX
來進行解析任務,更能以一種
vendor-neutral
的方式來使用
DOM
和
SAX
。
?
JAXP
與
SAX, DOM, JDOM
和
dom4j
(這四個都可以解析
XML
)沒有可比較性,它并沒有提供一個新的解析
XML
的方法。
?
JAXP API, located in the
javax.xml.parsers
package. All of these classes sit on top of an existing parser.
其中的
6
個類都是建立在已有的解析上面的。
?
JDOM
與
dom4j
都提供不同的模型來接受來自
SAX/DOM
的數據,他們從內部來講都是使用了
SAX
,不過是做了些修改。
?
此外,
Java 1.5
中
Xerces
的包
org.apache.xerces
被放到了
com.sun.org.apache.xerces.internal
?
First, com.sun.xml.tree.XMLDocument class is not part of JAXP. It is part of Sun's Crimson parser, packaged in earlier versions of JAXP.
?
Second, a major purpose of JAXP is to provide vendor independence when dealing with parsers. With JAXP, you can use the same code with Sun's XML parser, Apache's Xerces XML parser, and Oracle's XML parser.
?
先從
SAX
說起,我們只用繼承
DefaultHandler
類
(org.xml.sax.helpers
包中
)
就能獲得所有的
callbacks
,只用在需要的方法中加入實現的代碼。
?
Here's the typical SAX routine:
1
.
Create a SAXParser instance using a specific vendor's parser implementation.
2
.
Register callback implementations (by using a class that extends DefaultHandler, for example).
3
.
Start parsing and sit back as your callback implementations are fired off.
?
SAX
必須
指定
XML
驅動(如
org.apache.xerces.parsers.SAXParser
),而
JAXP
提供了更好的選擇,只要我們提供什么
XML
驅動(在
classpath
中配置),它就調用什么驅動,不需要改動代碼。
?
?
new SAXParserFactory.newSAXParser()
就返回
JAXP
SAXParser
類,這個類包裝了
SAX parser (an instance of the SAX class
org.xml.sax.XMLReader
)
。
?
In Listing 1, you can see that two JAXP-specific problems can occur in using the factory: the inability to obtain or configure a SAX factory, and the inability to configure a SAX parser.
The first of these problems, represented by a FactoryConfigurationError, usually occurs when the parser specified in a JAXP implementation or system property cannot be obtained.
The second problem, represented by a ParserConfigurationException, occurs when a requested feature is not available in the parser being used. Both are easy to deal with and shouldn't pose any difficulty when using JAXP.
?
SAXParser
的
parse
方法可以接受
SAX InputSource
,
Java InputStream
或者
URL in String form
?
可以通過
SAXParser
的
getXMLReader()
方法來獲得底層的
SAX parser
(
org.xml.sax.XMLReader
的實例),這樣就可以使用各個
SAXParser
方法。
[
參照
Listing2]
??
?
?
使用
DOM??
The only difference between DOM and SAX in this respect is that with DOM you substitute DocumentBuilderFactory for SAXParserFactory, and DocumentBuilder for SAXParser.
?
The major difference is that variations of the parse() method do not take an instance of the SAX DefaultHandler class. Instead they return a DOM Document instance representing the XML document that was parsed. The only other difference is that two methods are provided for SAX-like functionality:
-
setErrorHandler(), which takes a SAX ErrorHandler implementation to handle problems that might arise in parsing
-
setEntityResolver(), which takes a SAX EntityResolver implementation to handle entity resolution
1. Source for input
The
javax.xml.transform.Source
interface is the basis for all input into JAXP and the transformation API. This interface defines only two methods --
getSystemId()
and
setSystemId(String systemId)
.
?
?
JAXP
提供了三個實現
Source
接口的類:
-
javax.xml.transform.dom.DOMSource
passes a DOM
Node
(and its children) into JAXP.
-
javax.xml.transform.sax.SAXSource
passes the results of SAX callbacks (from an
XMLReader
) into JAXP.
-
javax.xml.transform.stream.StreamSource
passes XML wrapped in a
File
,
InputStream
, or
Reader
into JAXP.?
?
?
javax.xml.transform.Result
也有兩個方法:
getSystemId()
和
setSystemId(String systemId)
。
同樣有三個實現類:
-
javax.xml.transform.dom.DOMResult
passes transformed content into a DOM
Node
.
-
javax.xml.transform.sax.SAXResult
passes the results of a transformation to a SAX
ContentHandler
.
-
javax.xml.transform.stream.StreamResult
passes the transformed *ML into a
File
,
OutputStream
, or
Writer
.
3. Performing transformations with JAXP
2)Creating a Transformer?
?
3)Performing the transformation??
?
4)Caching XSL stylesheets
JAXP this way has two significant limitations:
-
The
Transformer
object processes the XSL stylesheet each and every time
transform()
is executed.
-
Instances of
Transformer
are not thread-safe. You can't use the same instances across multiple threads.
Transformer
實例不是線程安全的,不能通過多線程去使用同一個
Transformer
實例。
javax.xml.transform.Templates
.
?
The
Templates
interface is thread-safe (addressing the second limitation) and represents a compiled stylesheet (addressing the first limitation).
Templates
實例是線程安全的,可以處理一堆
XSL
,解決了上述兩個限制。
如果只要對一個
stylesheet
進行一個
transformation
,那么用
Transformer
比較快,沒有必要選擇
Templates
對象。但是考慮到線程安全問題,還是推薦使用
Templates
。
JAXP
默認使用
Xalan-J
,如果要使用其它
parser
,可以通過
javax.xml.transform.TransformerFactory
修改。
java -D javax.xml.transform.TransformerFactory=[transformer.impl.class] TestTransformations?
simple.xml simple.xsl
?
posted @
2006-09-08 13:15 Lizzie 閱讀(548) |
評論 (1) |
編輯 收藏
Document E09
SourceForge.net: Subversion (Version Control for Source Code)
?
http://sourceforge.net/docman/display_doc.php?docid=31070&group_id=1
?
功能特性:
Subversion
官方網站,查看
http://subversion.tigris.org/
?
欣慰的是這里有個網站提供一本免費的、非常棒的
SVN
圖書,可以選擇在線查看或者下載
PDF
,
SVN
使用者必讀。
http://svnbook.red-bean.com/
?
各個版本控制系統功能比較的文章
http://better-scm.berlios.de/comparison/comparison.html
?
Subversion
使用手記
中文英文對照
http://robinlet.bokee.com/2866408.html
?
一篇文章介紹如何將
CVS
的
Repository
轉換成
SNV
http://up-u.com/?q=node/232
轉換方法來自這個程序
http://cvs2svn.tigris.org/
?
官方的那本書是最好的教程,網上還有大量的安裝和使用的文章可以借鑒,這里簡單羅列幾個
SVN
輔助的軟件:
?
1
、
SubVersion
,從
http://subversion.tigris.org/
下載,是實現服務系統的軟件,必裝的。
?
2
、
TortoiseSVN
,從
http://tortoisesvn.tigris.org/
下載,是很不錯的
SVN
客戶端程序,為
windows
外殼程序集成到
windows
資源管理器和文件管理系統的
Subversion
客戶端,用起來很方便。
?
3
、
SVNService.exe
,從
http://dark.clansoft.dk/~mbn/svnservice/
下載,是專為
SubVersion
開發的一個用來作為
Win32
服務掛接的入口程序。
?
4
、
AnkhSVN
,從
http://ankhsvn.tigris.org/
下載,這是一個專為
Visual Studio
提供
SVN
的插件。
?
5
、
Subversive
,從
http://www.polarion.org/p_subversive.php
下載,一個為
Eclipse
提供
SVN
的插件,據說已經和
Eclipse
自帶的
CVS
功能有一拼。
?
6
、還有很多很多
SVN
相關的工具以及使用
TIP
介紹,大家可以上官方的相關鏈接頁面中查看,地址:
http://subversion.tigris.org/links.html
posted @
2006-08-28 12:07 Lizzie 閱讀(454) |
評論 (0) |
編輯 收藏
在
Linux
下有一個功能強大的軟件安裝卸載工具,名為
RPM
。它可以用來建立、安裝、查詢、更新、卸載軟件。該工具是在命令行下使用的。在
Shell
的提示符后輸入
rpm
,就可獲得該命令的幫助信息。
Linux
下軟件的安裝主要有三種不同的形式。
第一種安裝文件名為
xxx.tar.gz
;
第二種安裝文件名為
xxx.i386.rpm
,
還有一種是
xxx.src.rpm
。
?
以第一種方式發行的軟件多為以源碼形式發送的;
第二種方式則是直接以二進制形式發送的;
第三種是
rpm
格式發布的源碼。
對于第一種
[xxx.tar.gz]
,安裝方法如下:
1 .
首先,將安裝文件拷貝至你的目錄中。例如,如果你是以
root
身份登錄上的,就將軟件拷貝至
/root
中。
#cp xxx.tar.gz /root
2 .
由于該文件是被壓縮并打包的
,
應對其解壓縮。命令為:
#tar xvzf filename.tar.gz
3.
執行該命令后,安裝文件按路徑,解壓縮在當前目錄下。用
ls
命令可以看到解壓縮后的文件。通常在解壓縮后產生的文件中,有
“Install”
的文件。該文件為純文本文件,詳細講述了該軟件包的安裝方法。
4.
執行解壓縮后產生的一個名為
configure
的可執行腳本程序。它是用于檢查系統是否有編譯時所需的庫,以及庫的版本是否滿足編譯的需要等安裝所需要的系統信息。為隨后的編譯工作做準備。命令為:
#./configure
5.
檢查通過后,將生成用于編譯的
MakeFile
文件。此時,可以開始進行編譯了。編譯的過程視軟件的規模和計算機性能的不同,所耗費的時間也不同。命令為:
#make
。
6.
成功編譯后,鍵入如下的命令開始安裝:
#make install
7.
安裝完畢,應清除編譯過程中產生的臨時文件和配置過程中產生的文件。鍵入如下命令:
#make clean
#make distclean
至此,軟件的安裝結束。
對于第二種
[xxx.i386.rpm]
,其安裝方法要簡單得多。
同第一種方式一樣,將安裝文件拷貝至你的目錄中。然后使用
rpm
來安裝該文件。命令如下:
#rpm -i filename.i386.rpm
rpm
將自動將安裝文件解包,并將軟件安裝到缺省的目錄下。并將軟件的安裝信息注冊到
rpm
的數據庫中。參數
i
的作用是使
rpm
進入安裝模式。
?
軟件的卸載
1.
軟件的卸載主要是使用
rpm
來進行的。卸載軟件首先要知道軟件包在系統中注冊的名稱。鍵入命令:
#rpm -q -a
即可查詢到當前系統中安裝的所有的軟件包。
2.
確定了要卸載的軟件的名稱,就可以開始實際卸載該軟件了。鍵入命令:
#rpm -e [package name]
即可卸載軟件。參數
e
的作用是使
rpm
進入卸載模式。對名為
[package name]
的軟件包進行卸載。由于系統中各個軟件包之間相互有依賴關系。如果因存在依賴關系而不能卸載,
rpm
將給予提示并停止卸載。你可以使用如下的命令來忽略依賴關系,直接開始卸載:
#rpm -e [package name] -nodeps
?
忽略依賴關系的卸載可能會導致系統中其它的一些軟件無法使用
對于第三種
[xxx.src.rpm]
,安裝也很簡單
拷貝到目標目錄,然后執行
#rpmbuild --rebuild xxx.src.rpm
編譯文件
然后進入
#cd /usr/src/redhat(or other)/RPMS/i386/
執行
#rpm -ivh xxxxx.rpm
安裝
上面的方法是對
Redhat 8.0
以及
Mandrake9.0
來說的,如果是低于這個版本。應該用
#rpm --rebuild *.src.rpm
posted @
2006-08-23 16:57 Lizzie 閱讀(533) |
評論 (0) |
編輯 收藏
x86是一個intel通用計算機系列的編號,也標識一套通用的計算機指令集合。
早期intel的CPU編號都是如8086,80286,由于這整個系列的CPU都是指令兼容的,所以都用X86來標識所使用的指令集合。
如今的奔騰,P2,P4,賽揚系列都是支持X86指令系統的,所以都屬于X86家族。
x86 family 6 model 65意思是這個CPU屬于x86家族的第6代產品,采用65ns的工藝制造。
AT/AT COMPATIBLE 這個的意思應該是說兼容AT/AT指令。
i386是指intel發布的通用處理器類型,適合386,486,586,686的CPU。有些rpm包還區分了這些類型。
posted @
2006-08-23 12:16 Lizzie 閱讀(4632) |
評論 (4) |
編輯 收藏
摘要: 常用中國姓氏讀法
中
文
? ?
日
文
? ? ? ? ? ? ?
中
文
? ?
日
文
___...
閱讀全文
posted @
2006-08-22 21:15 Lizzie 閱讀(496) |
評論 (0) |
編輯 收藏
摘要: Original Author: 夏昕<xiaxin@gmail.com>本文是由筆者2003 年底一個咨詢項目中,為客戶做的持久層設計培訓文案整理而來。其中的內容涉及Hibernate 的使用,以及一部分筆者實際咨詢項目中的經驗積累,另一方面,大部分是筆者在Hibernate 的官方論壇中與眾多技術專家交流所得。既來于斯,則歸于斯。希望能聊有所用。本文并非試圖替代Hibernate ...
閱讀全文
posted @
2006-08-22 09:03 Lizzie 閱讀(1458) |
評論 (0) |
編輯 收藏
面向對象的腳本語言Ruby
http://rubycn.ce-lab.net/20020101.htmlRUBY文檔中心
http://www.moer.net/ruby/doc/
TCL腳本
http://www.tclchina.com/
Python快速入門
http://wiki.woodpecker.org.cn/moin/WeiZhong/2006-01-17
Python 研究(Dive Into Python)
http://www.woodpecker.org.cn/diveintopython/
Perl
http://www.perl.cn/
Perl 學習手札
http://perl.hcchien.org/TOC.html
Perl精華文章 - ChinaUnix.net
http://www.chinaunix.net/jh/25/
Perl常見問題集
http://www.cnool.net/tianyige/computer/perlfaq/
Spring專題
http://www.javafan.net/special/spring/
SpringFramework中文論壇 首頁http://spring.jactiongroup.net/Java開源項目http://dev.yesky.com/javaopen/spring/
Hibernate
http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=833HUIHOO_Hibernate
http://www.huihoo.com/framework/hibernate/
輕量級J2EE架構(Spring+Struts+Hibernate)
http://dev.csdn.net/develop/article/71/71975.shtm
AJAX專題
http://www.csdn.net/subject/ajax/
posted @
2006-08-22 09:00 Lizzie 閱讀(288) |
評論 (0) |
編輯 收藏
?
與
C
或
C++
編寫的程序不同,
Java
程序并不是一個可執行文件,而是由許多獨立的類文件組成,每一個文件對應于一個
Java
類。此外,這些類文件并非立即全部都裝入內存,而是根據程序需要裝入內存。
ClassLoader
是
JVM
中將類裝入內存的那部分。而且,
Java ClassLoader
就是用
Java
語言編寫的。這意味著創建您自己的
ClassLoader
非常容易,不必了解
JVM
的微小細節。
Java
的
classloader
不但可以使你運行本地得
class
類
,
你也可以定制
classloader
運行來自遠程的字節代碼
.
?
ClassLoader
的基本目標是對類的請求提供服務。當
JVM
需要使用類時,它根據名稱向
ClassLoader
請求這個類,然后
ClassLoader
試圖返回一個表示這個類的
Class
對象。
?
通過覆蓋對應于這個過程不同階段的方法,可以創建定制的
ClassLoader
。通常當你需要動態加載資源的時候
,
你至少有三個
ClassLoader
可以選擇
:
1.??????
系統類加載器(應用類加載器)
(system classloader or application classloader)
2.??????
當前類加載器
3.??????
當前線程類加載器
?
第一種
:
系統類加載器
?
系統類加載器
(system classloader).
這個類加載器處理
-classpath
下的類加載工作
,
可以通過
ClassLoader.getSystemClassLoader()
方法調用
.
?
ClassLoader
下所有的
getSystemXXX()
的靜態方法都是通過這個方法定義的
.
在你的代碼中
,
你應該盡量少地調用這個方法
,
以其它的類加載器作為代理
.
否則你的代碼將只能工作在簡單的命令行應用中
,
這個時候系統類加載器
(system classloader)
是
JVM
最后創建的類加載器
.
一旦你把代碼移到
EJB, Web
應用或
Java Web Start
應用中
,
一定會出問題
.
?
Class.loadClass( String name, boolean resolve );
name
參數指定了
JVM
需要的類的名稱,該名稱以包表示法表示,如
Foo
或
? java.lang.Object
。
resolve
參數告訴方法是否需要解析類。在準備執行類之前,應考慮類解析。并不總是需要解析。如果
JVM
只需要知道該類是否存在或找出該類的超類,那么就不需要解析。
?
方法
defineClass
是
ClassLoader
的主要訣竅。
該方法接受由原始字節組成的數組并把它轉換成
Class
對象。原始數組包含如從文件系統或網絡裝入的數據。
defineClass
管理
JVM
的許多復雜、神秘和倚賴于實現的方面
--
它把字節碼分析成運行時數據結構、校驗有效性等等。不必擔心,您無需親自編寫它。事實上,即使您想要這么做也不能覆蓋它,因為它已被標記成最終的。
?
方法
findSystemClass
findSystemClass
方法從本地文件系統裝入文件。它在本地文件系統中尋找類文件,如果存在,就使用
defineClass
將原始字節轉換成
Class
對象,以將該文件轉換成類。當運行
Java
應用程序時,這是
JVM
正常裝入類的缺省機制
.
??
如果
ClassLoader
不能找到類,它會請求父代
ClassLoader
來執行此項任務。所有
ClassLoaders
的根是系統
ClassLoader
,它會以缺省方式裝入類
--
即,從本地文件系統。
?
方法
findLoadedClass
充當一個緩存
當請求
loadClass
裝入類時,它調用該方法來查看
ClassLoader
是否已裝入這個類,這樣可以避免重新裝入已存在類所造成的麻煩。應首先調用該方法。
?
讓我們看一下如何組裝所有方法。
loadClass
實現示例執行以下步驟:
(這里,我們沒有指定生成類文件是采用了哪種技術,它可以是從
Net
上裝入、或者從歸檔文件中提取、或者實時編譯。無論是哪一種,那是種特殊的神奇方式,使我們獲得了原始類文件字節。)
1.??
調用
findLoadedClass
來查看是否存在已裝入的類。
2.??
如果沒有,那么采用那種特殊的神奇方式來獲取原始字節。
3.??
如果已有原始字節,調用
defineClass
將它們轉換成
Class
對象。
4.??
如果沒有原始字節,然后調用
findSystemClass
查看是否從本地文件系統獲取類。
5.??
如果
resolve
參數是
true
,那么調用
resolveClass
解析
Class
對象。
6.??
如果還沒有類,返回
ClassNotFoundException
。
7.??
否則,將類返回給調用程序。
?
第二種選擇
:
當前上下文環境下的類加載器
.
根據定義,當前類加載器就是你當前方法所屬的類的加載器。在運行時類之間動態聯編,即調用
Class.forName()
,
Class.getResource()
等類似方法時,這個類加載器會被隱含地使用。
posted @
2006-08-20 20:59 Lizzie 閱讀(263) |
評論 (0) |
編輯 收藏
摘要: Log4j
有三個主要的組件:
Loggers
,
Appenders
和
Layouts
,即日志類別,日志要輸出的地方和日志以何種形式輸出。
1
、
...
閱讀全文
posted @
2006-08-14 22:33 Lizzie 閱讀(1292) |
評論 (0) |
編輯 收藏
BURS ????Business and User Requirement Specification
業務和用戶需求規格說明
CCB ??????Change Control Board
變更控制委員會
CI ??????? ?Configuration Item
配置管理項
CR ??????? ?Change Request
變更申請
CMM?????? Capability Maturity??Model
軟件能力成熟度模型
COQ ????? Cost Of Quality
質量成本
CUT ?????? Coding&Unit Test /Construct
編碼及單元測試
DD ? Detail Design
詳細設計
?
HLD? High Level Design
概要設計
LLD? Low Level Design
詳細設計
SD ????????System Design
系統設計
SRS ?????? System/Software Requirement Specification
軟件需求規格說明
?
UT Unit Testing
單元測試
IT Integration Test
集成測試
ST System Test
系統測試
PT Performance Test
性能測試
UAT ?????? User Acceptance Test
用戶驗收測試
FURPS+
Functionality, Usability, Reliability, Performance,Supportability, + Localizability, Portability
功能性,可用性,可靠性,性能,支持性+
本地化,可移植性
IC (IGC)
Inter-group Coordination ( CMM Level 3 KPA ) ???
組間協調(
CMM
第三級的
KPA
)
ISM
Integrated Software Management ( CMM Level 3 KPA )
集成軟件管理(
CMM
第三級的
KPA
)
?
KPA Key Process Area
關鍵過程區域
LC Lifecycle
生命周期
?
OOA Object Oriented Analysis
面對對象分析
OOD Object Oriented Design
面向對象設計
OPD
?Organization Process Definition ( CMM Level 3 KPA )
組織過程定義(
CMM
第三級的
KPA
)
OPF
?Organization Process Focus ( CMM Level 3 KPA )
組織過程焦點(
CMM
第三級的
KPA
)
OSSP
Organization Standard Software Process
組織標準軟件過程
PCB
Process Capability??Baselines
過程能力基準
PCM
Process Change??Management ( CMM Level 5 KPA )
過程更改管理(
CMM
第五級的
KPA
)
PDSP
Project's Defined??Software Process
項目定義的軟件過程
PI
Process Improvement
過程改進
PMR
Project Management Review
項目管理評審
PM
Project Manager
項目經理
PP
Project Planning
項目策劃
PR
Peer Reviews ( CMM Level 3 KPA)
同行評審(
CMM
第三級的
KPA
)
QC
Quality Champion
項目
SQA
人員
QP
Quality Plan
質量計劃
QPM
Quantitative Process Management ( CMM Level 4 KPA )
定量過程管理(
CMM
第四級的
KPA
)
RA
Requirement Analysis
需求分析
RCA
Root Cause Analysis
根本原因分析
RFP
Request for Proposal
提議和請求
RM
Requirements Management ( CMM Level 2 KPA )
需求管理(
CMM
第二級的
KPA
)
ROI
Return On Investment
投資收益率
SCCB
Software Configuration Control Board
軟件配置控制組
SCM
Software Configuration Management ( CMM Level 2 KPA)
軟件配置管理(
CMM
第二級的
KPA
)
SCMP
?Software Configuration Management Plan
軟件配置管理計劃
SDLC
Software Development Life Cycle
軟件開發生命周期
SEI
Software Engineering Institute
軟件工程研究所
SEPG
Software Engineering??Process Group
軟件工程過程組
SMR ???? Senior Management??Review
高級管理評審
SPC ?????? Statistical Process Control
統計過程控制
SPE? Software Product Engineering ( CMM Level 3 KPA )
軟件產品工程(
CMM
第三級的
KPA
)
SPI Software Process??Improvement
軟件過程改進
SPP ?????? Software Project Plan ( CMM Level 2 KPA )
軟件項目策劃(
CMM
第二級的
KPA
)
SPTO ???? Software Project Tracking & Oversight
軟件項目跟蹤和監督
SQA ????? Software Quality??Assurance??( CMM Level 2 KPA )
軟件質量保證(
CMM
第二級的
KPA
)
SQM ????? Software Quality Management
軟件質量管理
DP ? Defect Prevention ( CMM Level 5 KPA )
缺陷預防
(CMM
第五級的
KPA)
SSD ?????? System Sequence Diagram
系統時序圖
SSM ????? Software Subcontract Management??( CMM Level 2 KPA )
軟件子合同管理(
CMM
第二級的
KPA
)
TCM ????? Technology Change Management
技術改革管理
TP ? Training Plan / Training Program??( CMM Level 3 KPA )
培訓大綱(
CMM
第三級的
KPA
)
TQM ????? Total Quality Management
總質量管理
?
UC ? Use Case
用例
UCD Use Case Diagram
用例圖
WBS Work Breakdown Structure
工作分解結構
posted @
2006-08-14 22:12 Lizzie 閱讀(400) |
評論 (0) |
編輯 收藏
自我介紹應該寫得簡潔易懂,應首先列出必要的項目,然后按照各項進行詳述。
?
-
清楚地介紹自己的姓名。
-
介紹自己的所屬與職業。
-
介紹出生年月、出生地、畢業學校等。
-
介紹經歷、性格、家庭等。
-
介紹自己的興趣、愛好和特長。
?
新入社員の自己紹介
?
會社員 近藤晴次
?
このたび入社いたしました近藤晴次(はるじ)でございます。はるは晴天の晴、次は「つぎの次です。どうぞよろしくご指導をお願いいたします。
?
私の別名は「コンドもスレ次」といいまして、これは中學
?
高校
?
大學を通しての呼び名でした。
?
この名の起こりですが、學生時代を通じて試験の成績がどんじりから二番目か三番目という、スレスレの次と、いつも判子で押したような結果だったからです。
?
もちろんこれで満足していたわけではありませんが、そのうち、これは運というよりも名人蕓だと、自分ながら感心するほどになり、こころよくその呼び名に明るい返事をするようになってしまっていました。
?
しかし、一度も裏口入學などのお情けにすがろうなどと考えたことがありませんでした。
?
いつも妙な自信とスリルが同居しているうちに「スレ次」」の結果が出ていたからです。
?
コンドの入社試験の結果も、採用、不採用よりも、「コンドもレス次」であるかないかのほうが気になりました。
?
そのうちに、人事課でおたずねしてみたいと思っております。
?
?
先輩の中には○○大出身の方が多いと聞いておりますが、私のような妙な、世話のやける後輩の入社にお困りでしょうが、よろしくお願いします。本社はかねがね私の憧れの的(まと)でありました。
?
入社しましたからには、精いっぱいやってみたいと存じております。
産地は九州長崎、趣味は音楽、スポーツですが自分では何もやりません。他人がやるのを見たり、聞いたりするだけです。
?
一言で言えば、趣味は「ヤジ馬」です。でもスジの通った、罪の無い「ヤジ馬」です。
?
?
あとはご覧のとおりの田舎者___
?
これで全部です。よろしくお願いします。
?
(譯文)
?
公司職員 近藤晴次
?
我是新進公司的近藤晴次。晴是晴天的晴,次是下次的次,請多指教。
?
我的別名是"這次也差一點兒",這是我從中學、高中直到大學一貫的稱呼。
?
關于這個名字的起因,是因為在整個學生時代,我的考試成績總是倒數第二三名,總是差一點就倒數第一。
?
當然,對這樣的結果我并不滿足。但是漸漸地我暗自感嘆,與其說這是命運,不如說是我的一種特有能力,因此對于這個別名我也就欣然接受了。
?
成績不好,但卻從來沒有考慮過通過人情走后門入學。因為總是有一種奇妙的自信與驚險同在,所以也就出現了"差一點兒"這樣的結果。
?
這次公司應聘,比起錄用與否,我更關心這次是否"也差一點兒"。對比,我想事后去詢問一下人事科。
?
聽說在前輩之中,有很多人畢業于○○大學。像我這樣奇怪的、給人添麻煩的晚輩進入公司,肯定會給各位帶來不便,還請多多關照。進入本公司工作,是我很久以來的憧憬。我一定精神百倍地工作。
?
我的產地是九州長崎,愛好音樂、體育。但是我自己卻什么也做不來,只是看別人做。
?
總之一句話,我的愛好是起哄看熱鬧。是守規守法地看熱鬧。
?
此外,如大家所見,我是一個鄉下人。__這就是我的全部。請多多關照。
?
參考資料:實用日語寫作教程
posted @
2006-08-10 13:33 Lizzie 閱讀(1822) |
評論 (0) |
編輯 收藏