Vincent Thinking

          All about Vincent's work and life

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 0 文章 :: 183 評論 :: 0 Trackbacks

          #

          public ? class ?ActionMapperFactory? {
          ????
          ????
          protected ? static ? final ?Log?LOG? = ?LogFactory.getLog(ActionMapperFactory. class );

          ????
          private ? static ? final ?HashMap?classMap? = ? new ?HashMap();

          ????
          public ? static ?ActionMapper?getMapper()? {
          ????????
          synchronized ?(classMap)? {
          ????????????String?clazz?
          = ?(String)?Configuration.get(WebWorkConstants.WEBWORK_MAPPER_CLASS);
          ????????????
          try ? {
          ????????????????ActionMapper?mapper?
          = ?(ActionMapper)?classMap.get(clazz);
          ????????????????
          if ?(mapper? == ? null )? {
          ????????????????????mapper?
          = ?(ActionMapper)?ObjectFactory.getObjectFactory().buildBean(clazz,? null );
          ????????????????????classMap.put(clazz,?mapper);
          ????????????????}


          ????????????????
          return ?mapper;
          ????????????}
          ? catch ?(Exception?e)? {
          ????????????????String?msg?
          = ? " Could?not?create?ActionMapper:?WebWork?will?*not*?work! " ;
          ????????????????LOG.fatal(msg,?e);
          ????????????????
          throw ? new ?RuntimeException(msg,?e);
          ????????????}

          ????????}

          ????}

          }


          明白的告訴我一下,謝謝. 覺的有點問題...
          posted @ 2006-05-31 22:55 Vincent Thinking 閱讀(1749) | 評論 (0)編輯 收藏

          為了通用,從頭到尾都是utf-8.

          而webwork中JakartaMultiPartRequest對于多編碼的處理并不如意.

          apache的fileupload對于上傳文件名為中文的需要首先指定HeaderEncoding的編碼.
          而webwork對于MultiPartRequest的request并沒有設置encoding編碼
          詳見DispatcherUtils.java中 387行

          ???????? if ?(encoding? != ? null ? && ? ! MultiPartRequest.isMultiPart(request))? {
          ????????????
          try ? {
          ????????????????request.setCharacterEncoding(encoding);
          ????????????}
          ? catch ?(Exception?e)? {
          ????????????????LOG.error(
          " Error?setting?character?encoding?to?' " ? + ?encoding? + ? " '?-?ignoring. " ,?e);
          ????????????}

          ????????}

          如果沒有指定HeaderEncoding, 那么默認采用request的encoding,如果request也沒有指定則采用系統的編碼.
          這里并沒有指定request的encoding,往往導致上傳文件的名字亂碼.

          自定義一個MultiPartRequest,設定一下就ok了


          對于同時提交的表單域(form)參數,由于在form中指定的enctype的關系,并不能直接用request.getParameter()才取, 只能通過FileItem.getString()的方式.這里也是上面的問題, 取的CharacterEncoding是request中的,由于webwork的原因不一致.同樣需要指定一下.

          這樣form和上傳同時提交,參數,附件名都正常了 :)
          posted @ 2006-04-25 18:24 Vincent Thinking 閱讀(1386) | 評論 (2)編輯 收藏

          打開你的firefox, 輸入:

        1. about:
        2. about:config
        3. about:credits
        4. about:buildconfig
        5. about:cache
        6. about:plugins
        7. about:mozilla

          以前還真沒有注意到.:)

        8. posted @ 2006-04-20 21:46 Vincent Thinking 閱讀(351) | 評論 (0)編輯 收藏

          ZK 一個開源的ajax web框架,基于事件驅動的組件,通過標記語言來設計組件來簡化開發人員的工作。顯著的一個特點是使用類似XUL的標記語言來定義組件。

          其實我對這種類似桌面的開發方式來開發web程序一點都不感冒,因為封裝的東西太多,勢必影響擴展性。而且對應的社區也很少,很多因素影響。

          一個企業應用對于框架,技術并不是最重要的,需求和人員的素質等等因素也是很制約的。 很多開源的東西,在我看來只是 “看起來很美!” 回過來說zk,能以這種方式來開發也許能給我們很多啟發。
           
          有興趣的可以去看看:
          zk http://zk1.sourceforge.net/
          posted @ 2006-03-14 21:40 Vincent Thinking 閱讀(4108) | 評論 (2)編輯 收藏

                                                                               HSQLDB簡介 
                                                                               

          Vincent 2006年2月24日
           
          一 什么是HSQLDB? 
                  HSQLDB是一個用java編寫的關系型數據庫,它支持ANSI-92 SQL (BNF tree format) plus SQL 99 and 2003 enhancements. 它提供了一個非常小而快速的數據庫引擎,同時提供了相關的JDBC驅動和一些實用的工具。
           
                   最新的HSQLDB版本為1.8.0 ,經過了1年的開發,和1.7.2相比,1.8.0的功能更加強大, 對數據庫的容量支持達到了8GB,性能也更加出色。和當年相比,HSQLDB已經不僅僅很多人眼里的玩具,完全可以勝任商業的需求。(OpenOffice.org 2.0的數據庫引擎為HSQLDB1.8.0)
           
          這里有一張數據庫的performance test對比圖(HSQLDB的性能遠遠超過其他的數據庫)
           


          二 HSQLDB介紹

           1.1 簡介


          hsqldb.jar 包含所有的組件(數據庫引擎,jdbc驅動, 數據工具), 不同的命令用來執行不同的組件。
          hsqldb.jar主要包含了一下組件: 

          HSQLDB RDBMS                數據庫引擎
          HSQLDB JDBC Driver          JDBC驅動
          Database Manager            管理工具
          Query Tool (AWT)            查詢工具
          Sql Tool (command line)     SQL工具


          1.2 運行工具(Running Tools) 

                所有的工具都以jar的方式來運行,下面的例子講運行AWT方式的DataBase Manager,我們假設hsqldb.jar位于../lib目錄中

           java -cp ../lib/hsqldb.jar org.hsqldb.util.DatabaseManager 

          Hsqldb工具的主類:

          org.hsqldb.util.DatabaseManager 
          org.hsqldb.util.DatabaseManagerSwing
          org.hsqldb.util.Transfer
          org.hsqldb.util.QueryTool 
          org.hsqldb.util.SqlTool 

          其中,DatabaseManager和SqlTool都可以有命令行參數,你可以用-?來察看它們有什么參數。DatabaseManager和Transfer都有圖形界面可以更好地交互。
           
          1.3 運行HSQLDB
           
          HSQLDB可以通過多種不同的方式來運行,通常把它分為Server模式和In-Process模式(也叫做Standalone模式),對于每種模式,Jar中都有相應的子程序來運行HSQLDB。
           
          每個HSQLDB數據庫包含2到5個命名相同但擴展名不同的文件組成,他們位于同一個目錄下。例如,名為“test”的數據庫包含了以下幾個文件: 

          test.properties
          test.script
          test.log 
          test.dat 
          test.backup

          properties文件包含了數據庫的基本配置,script文件包含了Table的定義和其他相關的數據對象,以及non-cached表的數據。log文件記錄了數據庫最近所做的更新。dat文件包含了cached表的數據,backup文件是上一次數據庫持久化后的壓縮備份文件,所有的這些文件都是最基本的,絕對不能刪除。如果你的數據庫沒有緩沖表(cached table),test.data和test.backup文件是不會存在。此外,HSQLDB數據庫可以鏈接到磁盤上任何地方任何格式的文本文件,比如CSV 列表。
           
          當"test"數據庫正在運行時,test.log文件用來記錄所有的操作記錄,"test.log"文件將在數據庫正常關閉(ShutDown)情況下自動刪除。否則(在非正常退出的時候),它將用來在下次啟動HSQLDB時恢復"test.log"中記錄的更新操作。"test.lck"文件也可以用來記錄數據庫是否被打開,它在HSQLDB正常退出的時候會被移除。有些情況下,HSQLDB會生成"test.data.old "文件,但隨后會被刪除掉。

          注意: 當HSQLDB引擎關閉數據庫的時候,它會產生擴展名為.new的臨時文件,然后會把這些文件重命名為上面所列出的文件的名稱。

          posted @ 2006-02-24 19:55 Vincent Thinking 閱讀(1944) | 評論 (1)編輯 收藏

          faint...
          posted @ 2006-02-20 09:45 Vincent Thinking 閱讀(259) | 評論 (0)編輯 收藏

          昨天研發中心項目組一起聚餐,聊起了軟件的發展問題。

          對于一個軟件公司,究竟是買軟件還是買服務? 買軟件做項目,必然要設計到軟件的開發定制,前期的投入是不可避免的,后期的維護成本也是很高的,客戶的需求是無止境的,往往上千萬的項目做下來卻是虧本的。 從另外一個角度來看,軟件究竟是什么? 在我看來,軟件就是一種特殊的服務,這里的服務不是指人的因素,而是機器,是軟件,用我們老大的話來講,用人去做服務一定是虧本的。

          心里也一直有一種設想,或許以后不再依靠出售軟件,做項目來生存,而是出售服務,尤其是基于bs結構的服務。想想google的email,BSP,RSS reader等等,或許很快在線的erp,在線的crm, oa,cms等等就會變成現實,當然這里很重要的一點就是要做到行業的標準,需要客戶來認同你,信任你。

          這里的情景很像現在的網游,我提供服務,你提供數據,數據集中存放,我提供個性化的定制,提供相關聯的信息(類似gmail中的廣告),針對特殊用戶做增值服務。

          看看37signal,一個人被很多人認為是一個很偉大的企業。我們好好思考一下,是不是應該做點什么?
          posted @ 2006-02-15 10:22 Vincent Thinking 閱讀(371) | 評論 (2)編輯 收藏

          圖形化的組件,讓人感覺又回到了vb時代,雖然不是很認同Echo2的機制,但是看到能以這樣的方式來做WEB,贊一個。^_^

          圖形組件庫,事件驅動機制,完全OO的UI的開發模式,再加上強大的EchoStudio,感覺一切都完美了很多。

          EchoStudio由于是商業軟件,有一定的試用期,最不爽的就是把以前的css完全用stylesheet來替代,可是竟然沒有看到相關的schema。只能用EchoStudio來做stylesheet,這不是逼著你買么? 沒辦法,只能crack了,反編譯了一下,暗自慶幸。嘿嘿,代碼竟然沒有混淆,很容易找到了驗證代碼。哈哈javassist2分鐘搞定。不過作為一個軟件開發人員,還是小小的BS一下自己.....
          posted @ 2006-02-10 14:31 Vincent Thinking 閱讀(2753) | 評論 (51)編輯 收藏

          由于下大雪,機場關閉。原定8:20的飛機,晚點到中午2點多才飛,害的我早上6點多就爬起來往機場趕。 瞌睡 Zzz...
          posted @ 2006-02-05 21:31 Vincent Thinking 閱讀(266) | 評論 (0)編輯 收藏

          WebWork 2.2 Released at January 11, 2006

          新版本是非常值得期待的.

        9. Full support for Java 5 Annotations and Generics
        10. Rich AJAX support using DWR and Dojo
        11. New QuickStart tool makes development easier than ever
        12. Tons more documentation with over 900 PDF pages!
        13. Client side validation using AJAX or plain JavaScript
        14. Built in support for Continuations
        15. JSR168/Portlet support for several popular Portlet servers, including Pluto
        16. Rich UI template framework with native support for JSP, FreeMarker, and Velocity
        17. Native support for Spring and Pico IOC containers
        18. More intelligent error reporting
        19. Developer Mode makes building webapps even easier with improved error reporting
        20. Simplified tag syntax
        21. Advanced data binding framework that works with any object, including domain objects
        22. 2.2版本是WebWork的一個新的里程碑, 接下來的主要精力將會投入到Struts Action Framework Version2.0

          posted @ 2006-01-12 11:09 Vincent Thinking 閱讀(867) | 評論 (2)編輯 收藏

          僅列出標題
          共4頁: 上一頁 1 2 3 4 下一頁 
          主站蜘蛛池模板: 潍坊市| 无为县| 湟源县| 武义县| 海兴县| 济阳县| 临城县| 衢州市| 富裕县| 兴隆县| 紫阳县| 沈丘县| 肥东县| 山东省| 额敏县| 伊通| 邓州市| 台南市| 宕昌县| 五河县| 项城市| 噶尔县| 航空| 庐江县| 临清市| 沙湾县| 博乐市| 塔河县| 铜陵市| 新干县| 鹿邑县| 蒙阴县| 金堂县| 天长市| 政和县| 晋州市| 乌兰县| 揭西县| 临澧县| 定兴县| 纳雍县|