@OverWrite BlogJava

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

          #

          1月16日,Sun宣布已經(jīng)與MySQL AB達成協(xié)議,以大約10億美元收購MySQL AB,其中8億美元現(xiàn)金收購MySQL AB的全部股權(quán),另外的2億美元作為期權(quán)。

          MySQL負責開發(fā)社區(qū)的副總裁 Kaj 在他的blog中分析了這單交易對于MySQL的用戶、核心社區(qū)以及公司員工會帶來哪些影響,還發(fā)表了他與MySQL的兩位創(chuàng)始人Monty和David關(guān)于此事的交談

          MySQL總部位于瑞典,在全球25個國家共有約400名員工。交易完成之后,MySQL首席執(zhí)行官馬頓·尼科斯(Marten Mickos)將加盟Sun管理層。Sun一直是開放源代碼軟件的堅定支持者,該公司希望通過這一模式從軟件業(yè)務獲得更多營收。在此之前,Sun一直為MySQL的競爭對手PostgreSQL銷售支持服務。

          對于Sun來說,收購MySQL有助于該公司更好地為開放源代碼網(wǎng)絡應用平臺LAMP提供支持。LAMP是Linux操作系統(tǒng)、Apache網(wǎng)絡服務器、MySQL數(shù)據(jù)庫和PHP/Perl編程語言的首字母縮寫。這一交易預計將于2008年第三季度或第四季度完成,如何獲得足夠的現(xiàn)金,對于Sun來說將是第一要務。Sun首席執(zhí)行官喬納森·舒瓦茨(Jonathan Schwartz)表示,在交易完成之前,該公司就將開始為MySQL客戶提供支持服務。
          posted @ 2008-01-21 18:22 vesung 閱讀(398) | 評論 (0)編輯 收藏

          hibernate2.jar:
                  Hibernate的庫,沒有什么可說的,必須使用的jar包 
          cglib-asm.jar: 
            CGLIB庫,Hibernate用它來實現(xiàn)PO字節(jié)碼的動態(tài)生成,非常核心的庫,必須使用的jar包 
          dom4j.jar: 
            dom4j是一個Java的XML API,類似于jdom,用來讀寫XML文件的。dom4j是一個非常非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強大和極端易用使用的特點,同時它也是一個開放源代碼的軟件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,對主流的Java XML API進行的性能、功能和易用性的評測,dom4j無論在那個方面都是非常出色的。我早在將近兩年之前就開始使用dom4j,直到現(xiàn)在。如今你可以看到越來越多的Java軟件都在使用dom4j來讀寫XML,特別值得一提的是連Sun的JAXM也在用dom4j。這是必須使用的jar包,Hibernate用它來讀寫配置文件。 
          odmg.jar:
            ODMG是一個ORM的規(guī)范,Hibernate實現(xiàn)了ODMG規(guī)范,這是一個核心的庫,必須使用的jar包。 
          commons-collections.jar: 
                  Apache Commons包中的一個,包含了一些Apache開發(fā)的集合類,功能比java.util.*強大。必須使用的jar包。 
          commons-beanutils.jar:
            Apache Commons包中的一個,包含了一些Bean工具類類。必須使用的jar包。 
          commons-lang.jar: 
            Apache Commons包中的一個,包含了一些數(shù)據(jù)類型工具類,是java.lang.*的擴展。必須使用的jar包。 
          commons-logging.jar: 
            Apache Commons包中的一個,包含了日志功能,必須使用的jar包。這個包本身包含了一個Simple Logger,但是功能很弱。在運行的時候它會先在CLASSPATH找log4j,如果有,就使用log4j,如果沒有,就找JDK1.4帶的java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出現(xiàn)是一個歷史的的遺留的遺憾,當初Apache極力游說Sun把log4j加入JDK1.4,然而JDK1.4項目小組已經(jīng)接近發(fā)布JDK1.4產(chǎn)品的時間了,因此拒絕了Apache的要求,使用自己的java.util.logging,這個包的功能比log4j差的很遠,性能也一般。
            后來Apache就開發(fā)出來了commons-logging.jar用來兼容兩個logger。因此用commons-logging.jar寫的log程序,底層的Logger是可以切換的,你可以選擇log4j,java.util.logging或者它自帶的Simple Logger。不過我仍然強烈建議使用log4j,因為log4j性能很高,log輸出信息時間幾乎等于System.out,而處理一條log平均只需要5us。你可以在Hibernate的src目錄下找到Hibernate已經(jīng)為你準備好了的log4j的配置文件,你只需要到Apache 網(wǎng)站去下載log4j就可以了。commons-logging.jar也是必須的jar包。
            使用Hibernate必須的jar包就是以上的這幾個,剩下的都是可選的。 
          ant.jar: 
            Ant編譯工具的jar包,用來編譯Hibernate源代碼的。如果你不準備修改和編譯Hibernate源代碼,那么就沒有什么用,可選的jar包 
          optional.jar:
            Ant的一個輔助包。 
          c3p0.jar: 
            C3PO是一個數(shù)據(jù)庫連接池,Hibernate可以配置為使用C3PO連接池。如果你準備用這個連接池,就需要這個jar包。 
          proxool.jar:
            也是一個連接池,同上。 
          commons-pool.jar, commons-dbcp.jar: 
            DBCP數(shù)據(jù)庫連接池,Apache的Jakarta組織開發(fā)的,Tomcat4的連接池也是DBCP。 

            實際上Hibernate自己也實現(xiàn)了一個非常非常簡單的數(shù)據(jù)庫連接池,加上上面3個,你實際上可以在Hibernate上選擇4種不同的數(shù)據(jù)庫連接池,選擇哪一個看個人的偏好,不過DBCP可能更通用一些。另外強調(diào)一點,如果在EJB中使用Hibernate,一定要用App Server的連接池,不要用以上4種連接池,否則容器管理事務不起作用。 

            connector.jar: 

            JCA 規(guī)范,如果你在App Server上把Hibernate配置為Connector的話,就需要這個jar。不過實際上一般App Server肯定會帶上這個包,所以實際上是多余的包。 

            jaas.jar: 

            JAAS是用來進行權(quán)限驗證的,已經(jīng)包含在JDK1.4里面了。所以實際上是多余的包。 

            jcs.jar: 

            如果你準備在Hibernate中使用JCS的話,那么必須包括它,否則就不用。 

            jdbc2_0-stdext.jar: 

            JDBC2.0的擴展包,一般來說數(shù)據(jù)庫連接池會用上它。不過App Server都會帶上,所以也是多余的。 

            jta.jar: 

            JTA規(guī)范,當Hibernate使用JTA的時候需要,不過App Server都會帶上,所以也是多余的。 

            junit.jar: 

            Junit包,當你運行Hibernate自帶的測試代碼的時候需要,否則就不用。 

            xalan.jar, xerces.jar, xml-apis.jar: 

            Xerces是XML解析器,Xalan是格式化器,xml-apis實際上是JAXP。一般App Server都會帶上,JDK1.4也包含了解析器,不過不是Xerces,是Crimson,效率比較差,不過Hibernate用XML只不過是讀取配置文件,性能沒什么緊要的,所以也是多余的。
          posted @ 2008-01-17 09:58 vesung 閱讀(344) | 評論 (0)編輯 收藏

          Remote Div Tag

          wiki上的文檔翻譯:
          Remote DIV 標簽和普通的Html的DIV標簽工作方式是一樣的,但是它可以通過標簽內(nèi)指定的一個網(wǎng)址來裝載它的內(nèi)容.
          屬性

          名稱 描述
          id (必有): DIV的ID
          href (必有): 用來獲取內(nèi)容的網(wǎng)址
          delay: 第一次裝載內(nèi)容需要延遲多長時間 (毫秒)
          updateFreq: 多長時間重新取一次內(nèi)容 (毫秒)
          loadingText: 裝載內(nèi)容中對用戶顯示的文字 (特別是取內(nèi)容的時候要花費很長的時間
          errorText: 如果取內(nèi)容時發(fā)生了錯誤,向用戶顯示的提示
          showErrorTransportText: true/false 當獲取內(nèi)容有問題的時候,是否把錯誤信息當作內(nèi)容顯示
          listenTopics: 監(jiān)聽的Topic名稱(多個逗號分割), 將會導致此DIV重新獲取內(nèi)容
          afterLoading: 獲取內(nèi)容后要執(zhí)行的Javascript代碼

          其他功能
          使用javascript代碼我們還可以刷新內(nèi)容,停止或者開始刷新組件.例如一個id是"remotediv1"的div組件:
          開始刷新的javascript代碼: remotediv1.start();
          停止刷新的javascript代碼remotediv1.stop();
          刷新內(nèi)容的javascript代碼:remotediv1.bind();
          Remote DIV標簽最值得關(guān)注的特性:
          可以自己重新裝載自己的內(nèi)容
          可以監(jiān)聽Topic,也就是別的動作可以引發(fā)更新內(nèi)容的行為
          JavaScript代碼可以控制它的行為
          來看Remote Div標簽的最簡單的一個例子example1.jsp:
           1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 
           2 <%@ taglib prefix="ww" uri="/webwork" %> 
           3 <html> 
           4 <head> 
           5 <title>Ajax Examples</title> 
           6 <jsp:include page="../commonInclude.jsp"/> 
           7 </head> 
           8 <body> 
           9 <ww:div id="once" theme="ajax" cssStyle="border: 1px solid yellow;" 
          10 href="/AjaxTest.action" delay="5000" loadingText="loading">Initial Content</ww:div> 
          11 </body></html> 
          12 
          這個文件,內(nèi)容非常簡單,使用了一個ww:div標簽,設置了一個id,使用的是ajax這個模板(如果你想定義自己的模板,請務必參考ajax模板的編寫方法),設置讀取內(nèi)容的url為"/AjaxTest.action",設置延遲5000毫秒后讀取內(nèi)容,裝載內(nèi)容時顯示的文本設置為"loading...",div顯示時的初始內(nèi)容時"Initial Content".

          很簡單,在打開網(wǎng)頁5秒后,標簽會自動去訪問"/AjaxTest.action",并把獲取的內(nèi)容設置為Div的內(nèi)容.

          再來看一個定時自動刷新的例子:

          <ww:div id="twoseconds" cssStyle="border: 1px solid yellow;" href="/AjaxTest.action" 
          theme
          ="ajax" delay="2000" updateFreq="3000" errorText="There was an error">Initial Content</ww:div> 

          這個標簽產(chǎn)生的結(jié)果每3秒鐘刷新一次DIV的內(nèi)容,和上面的差不多,只是多了一個updateFreq設置.

          此標簽還有一個afterLoading屬性,使用方法如下:
          <ww:div ...... afterLoading='alert("done")'>Initial Content</ww:div>
          <ww:div ...... afterLoading="alert(\"done\")">Initial Content</ww:div>

          posted @ 2008-01-16 08:46 vesung 閱讀(316) | 評論 (0)編輯 收藏

          在WebWork2.2中,引入了Dojo ( http://dojotoolkit.org ) 和DWR ( http://getahead.ltd.uk/dwr/ ) 兩個新的類庫來支持AJAX功能.
          其中主要增加的特性包括:
          1.Remote Div Tag -- 遠程區(qū)域塊標簽,通過異步調(diào)用獲取內(nèi)容,來動態(tài)更新Div.可以循環(huán)更新.
          2.Remote A Tag --遠程鏈接標簽,點擊鏈接時進行一個遠程異步調(diào)用,可以動態(tài)更新Div的內(nèi)容.
          3.Tabbed Panelds --選項卡頁面,和普通程序中的選項卡一樣,可以有多個選項頁面,每個頁面的內(nèi)容都可以設置(本地或者從遠程獲取),點擊一個選項頁,切換頁面.
          4.Remote Form --遠程表單,也就是提交但不刷新的表單,點擊提交按鈕,頁面不刷新,通過遠程異步調(diào)用,更新目標區(qū)域的內(nèi)容.
          5.Form Validation --表單校驗,在表單中的每個控件輸入數(shù)據(jù)都可以進行即時的校驗,主要使用的是DWR.

          先了解一下Dojo的工作原理:

          清除緩存的代碼:
          1 response.setHeader("Pragma""no-cache"); 
          2 response.setHeader("Cache-Control""no-cache"); 
          3 response.setDateHeader("Expires"0); 
          或者用html的meta來試試,不過那就包含在內(nèi)容里了.
          為了使用WebWork的AJAX組件,我們需要在頁面里面根據(jù)Dojo的做法包含一些代碼,例如ajax例子里面的commonInclude.jsp文件:
           1 <%@ taglib prefix="ww" uri="/webwork" %> 
           2 <!--// START SNIPPET: common-include--> 
           3 <script language="JavaScript" type="text/javascript"> 
           4 // Dojo configuration 
           5 djConfig = { 
           6 baseRelativePath: "<ww:url includeParams="none" value="/webwork/dojo/"/>"
           7 isDebug: false 
           8 }; 
           9 </script> 
          10 
          11 <script language="JavaScript" type="text/javascript" 
          12 src="<ww:url includeParams="none" value="/webwork/dojo/dojo.js" />"></script> 
          13 <script language="JavaScript" type="text/javascript" 
          14 src="<ww:url includeParams="none" value="/webwork/CommonFunctions.js" />"></script> 
          15 
          16 <script language="JavaScript" type="text/javascript"
          17 dojo.require("dojo.io.BrowserIO"); 
          18 dojo.require("dojo.event.topic"); 
          19 dojo.require("webwork.widgets.Bind"); 
          20 dojo.require("webwork.widgets.BindDiv"); 
          21 dojo.require("webwork.widgets.BindButton"); 
          22 dojo.require("webwork.widgets.BindAnchor"); 
          23 </script> 
          24 <!--// END SNIPPET: common-include--> 
          25 
          這個文件里面對Dojo進行了設置,包含dojo.js,并且引入了webwork實現(xiàn)的這幾個裝飾件的代碼,在后面的每個例子中,都要包含這個文件,因為后面的介紹中將省略這個文件的介紹,要想了解更多信息,可以參考Dojo的文檔.

          提示:其實在webwork框架下面引入dojo最容易了只需在頁面加入下面一行即可:
          <ww:head theme="ajax" debug="true" />

          --待續(xù)--
          posted @ 2008-01-15 18:03 vesung 閱讀(568) | 評論 (1)編輯 收藏

                  捕獲了異常卻不作任何處理,可以算得上Java編程中的殺手。從問題出現(xiàn)的頻繁程度和禍害程度來看,它也許可以和C/C++程序的一個惡名遠播的問題相提并論??不檢查緩沖區(qū)是否已滿。如果你看到了這種丟棄(而不是拋出)異常的情況,可以百分之九十九地肯定代碼存在問題。
                  錯誤在于,異常總是意味著某些事情不對勁了,或者說至少發(fā)生了某些不尋常的事情,我們不應該對程序發(fā)出的求救信號保持沉默和無動于衷。調(diào)用一下printStackTrace算不上“處理異常”。不錯,調(diào)用printStackTrace對調(diào)試程序有幫助,但程序調(diào)試階段結(jié)束之后,printStackTrace就不應再在異常處理模塊中擔負主要責任了。 
                  那么,應該怎樣改正呢?主要有四個選擇:

            1、處理異常。針對該異常采取一些行動,例如修正問題、提醒某個人或進行其他一些處理,要根據(jù)具體的情形確定應該采取的動作。再次說明,調(diào)用printStackTrace算不上已經(jīng)“處理好了異常”。

            2、重新拋出異常。處理異常的代碼在分析異常之后,認為自己不能處理它,重新拋出異常也不失為一種選擇。

            3、把該異常轉(zhuǎn)換成另一種異常。大多數(shù)情況下,這是指把一個低級的異常轉(zhuǎn)換成應用級的異常(其含義更容易被用戶了解的異常)。

            4、不要捕獲異常。

            結(jié)論一:既然捕獲了異常,就要對它進行適當?shù)奶幚怼2灰东@異常之后又把它丟棄,不予理睬。
          posted @ 2008-01-09 14:46 vesung 閱讀(280) | 評論 (0)編輯 收藏

          事出做項目時一個jsp頁面修改后一直沒有讀出來,后來仔細研究了下tomcat才發(fā)現(xiàn)
          當請求jsp頁面時,Tomcat會分派給JspServlet來處理,在jspServlet的方法 service()中有一句
          boolean precompile = preCompile(request); 
          它會判斷你請求jsp頁面時有沒有帶?jsp_precompile查詢字符串,如果帶了就會重新編譯
          然后再由serviceJspFile(request, response, jspUri, null, precompile)進一步判斷是否要進行編譯jsp文件,下面是JspServletWraper service方法
           1 if (options.getDevelopment() || firstTime ) { 
           2 synchronized (this) { 
           3 if (firstTime) { 
           4 firstTime = false
           5 
           6 // The following sets reload to true, if necessary 
           7 ctxt.compile(); 
           8 
           9 
          10 
          關(guān)鍵就在Compiler的isOutDated(boolean checkClass) 的判斷上 。
          判斷標準是,如果 jsp最后修改時間大于目標文件的最后修改時間要重新編譯。還有一種情況就是即使jsp的最后修改時間晚于目標文件的最后修改時間,但只要jsp中用了
          include指令包含的某個文件的最后修改時間早于對應目標文件的修改時間的話,也是需要重新編譯主jsp文件的
          posted @ 2008-01-09 14:22 vesung 閱讀(1211) | 評論 (0)編輯 收藏

          FreeBSD 的分區(qū)很簡單:
          假設你機器上只在IDE 0 口安裝了一塊硬盤,跳線為Master。

          /dev/ad0------------------------------- 代表此硬盤,如是多塊硬盤,根據(jù)內(nèi)核配置和連接接口不同,會有 0,1,2,3 的變化。
          /dev/ad0s------------------------------ s為分割(slice)。
          /dev/ad0s1---------------------------- 此硬盤下第一個分割slice,可以理解為是個Win/Dos/Linux 使用的擴展分區(qū)(也就是種特殊的主分區(qū))
          /dev/ad0s1a--------------------------- 第一個分割里的第一個分區(qū)label,可以理解為是個(Win/DOS/Linux用的)邏輯分區(qū),默認約定為文件系統(tǒng)/ 使用。
          /dev/ad0s1b--------------------------- 第一個分割里的第二個分區(qū)label.約定為SWAP 交換分區(qū),此命名不可更改。
          /dev/ad0s1c,d ------------------------ 都被系統(tǒng)默認保留,不可使用。
          /dev/ad0s1e -------------------------- 可由用戶自行可控制用于/掛載哪個文件系統(tǒng)。(除過/ 和 swap 類型).

          因為普通的PC的BIOS默認使用MBR型分區(qū)表只支持 4個主分區(qū),所以 一塊硬盤最多只能有 "分割 s 0-3 " 這4個分割,每個分割最多只能有a - h 這8個分區(qū)----lable。


          收藏到:Del.icio.us

          文章來源:http://vesung.blogbus.com/logs/13513077.html
          posted @ 2008-01-08 17:20 vesung 閱讀(189) | 評論 (0)編輯 收藏

          印度奶茶(Masala Chai)配方原料:鮮牛奶300毫升、紅茶12克、焦糖適量、豆蔻一粒、肉桂一小片、丁香二粒、鮮奶油一匙。
            做法:焦糖放進奶鍋,加少量的水煮至糖汁呈金黃色并冒出焦香味,到入鮮牛奶,不斷攪拌,加紅茶入鍋煮沸后,加入香料,改用小火煮1分鐘,然后放入奶油攪拌幾下,­再以小火煮約2分鐘,過濾裝杯。也可依照各人口味,添加少量的胡椒或巧克力醬。
          杏仁奶茶做法原料:杏仁100克、牛奶200毫升、白糖適量。
            制作方法:
            (1)...


          收藏到:Del.icio.us

          文章來源:http://vesung.blogbus.com/logs/13513242.html
          posted @ 2007-12-10 17:30 vesung 閱讀(238) | 評論 (0)編輯 收藏

          第一次聽到青花瓷,砰然一動,心里的某根弦動被觸動了。抑制不住心底的涌動,我愛上青花瓷了,她的旋律,她的歌詞令我心跳。我想不到我這輩子會這么喜歡一首歌周杰倫-青花瓷
          作詞:方文山
          作曲:周杰倫
          編曲:鐘興民

          素胚勾勒出青花 筆鋒濃轉(zhuǎn)淡
          瓶身描繪的牡丹 一如你初妝
          冉冉檀香透過窗 心事我了然
          宣紙上走筆至此擱一半

          釉色渲染仕女圖 韻味被私藏
          而你嫣然的一笑 如含苞待放
          你的美一縷...


          收藏到:Del.icio.us

          文章來源:http://vesung.blogbus.com/logs/13513302.html
          posted @ 2007-12-07 17:31 vesung 閱讀(210) | 評論 (0)編輯 收藏

          jj你怎么這么狠心心?我的媽媽是一個可悲可憐的被這個復雜的社會遺棄的人!她沒有幸福的童年,她因為沒有五塊錢而沒能參加高考!她本有志,是一個偉大男人的承諾讓他漸漸磨去了棱角,讓她不時感到浮華讓她一步步變成今天這個樣子!那個偉大的男人就是我爸爸!我媽很脆弱的她從來沒有享受過她并不是懶惰的人她也很善良!再我的眼里,她從來就是一個可憐人!命運如此,她何以堪?希望我們不要重蹈歷史覆轍!我們家是不會問你們家借錢的!也不要你的任何前!至少,我媽從來沒問你們家的條件怎樣!她從來都不會給我施加壓力!相反,是我一直心疼...


          收藏到:Del.icio.us

          文章來源:http://vesung.blogbus.com/logs/13513386.html
          posted @ 2007-12-06 17:34 vesung 閱讀(179) | 評論 (0)編輯 收藏

          僅列出標題
          共6頁: 上一頁 1 2 3 4 5 6 下一頁 
          主站蜘蛛池模板: 高要市| 四平市| 承德市| 永安市| 伊宁县| 南川市| 庆元县| 防城港市| 青岛市| 平南县| 故城县| 库伦旗| 九台市| 广德县| 铜陵市| 中江县| 登封市| 汉寿县| 扬中市| 延寿县| 家居| 宽甸| 利川市| 炎陵县| 保定市| 临沧市| 东台市| 旅游| 湘潭市| 泰兴市| 永德县| 灵丘县| 崇仁县| 香河县| 荥阳市| 四会市| 晴隆县| 普洱| 宁蒗| 龙江县| 靖安县|