<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    junctioner

    2007年5月30日

    序:給自己找點事做

    時間和日子在無知無覺中過去,問自己收獲了什么?

    每天無所事事。


    列個標題,挖個坑,希望每天能來挑一點土。

    《解讀eclipse_3.50_galileo 源碼》

    從第一次使用eclipse(大概是03年的事,那時比較好用的是2.1版還是1.4版已記不清了)就想看看這么巧妙的一個玩意兒是怎么實現的,一直懶散無度,從未下手。

    這段時間用SWT做個小工具,是邊找邊抄,為什么要那么寫,不知道--真是有違一慣的作風。

    每天下班后,都不是為什么奔忙著,網頁?網游?都不知道自己看了些什么,玩了些什么。

    eclipse 的jar很多,核心的是core.runtime和osgi(早些版本里,是沒有osgi的),core.runtime比較小,就幾個類,先攻擊小的少的--毛主席真是偉大的軍事家呀。

    敬禮,睡覺去。

    posted @ 2009-09-16 22:17 junctioner 閱讀(235) | 評論 (0)編輯 收藏

    一窮二白學習C語言(1)

    前言
      一直想學習C,在剛知道有計算機的時候就想學習C,上學時,偷上計算機專業的課,學了半年Turbo C,學到指針時,暈了,也就沒有下文。工作之后,時有心血來潮之時,但還是沒怎么學習,Java還是比較簡單,Java幾乎占據了工作全部,更少有學習C了。用Java,研究到Java的核心,發覺還是得學C,學呀,學吧。
      今天也是一時的心血來潮了,趁著有股勁,開始動手,記錄一下,以期待和方便下次來潮。

      寫出的代碼,得編譯才可以運行,這個編譯環境,得先搭起來。VC、Visual Studio,都微軟的東西,有點抵觸,也有些大,不安裝了,手工配一套環境吧。
      網上搜了一下,Windows系統配C的編譯環境,得要MinGW或者cygWin,以前都下載過,但一直不知道它們本身是個什么東西,再查,知道大概:二者均基于GCC(GNU Compiler Collection -格努編譯套件),再加一些基本的類庫。去各自的官網分別下載安裝,感受:cygWin更象是一個linux的模擬器,把linux環境下的GCC給模擬出來,其它的就都一樣需要基本的編譯器、類庫,其它的如make工具。使用的時候,個人取向選擇minGW,在環境變量中指向{$minGW}\bin,gcc和make就可以在cmd中運行了。
      寫個簡單的hello world源程序,gcc一把,生產可執行文件,運行,結果出來,OK!

      注,下載minGW時,我選擇了自動安裝下載,一個個的下載,點來點去,累的慌。
    單獨下載minGW,要如下幾個包,再分別解開放在同一目錄中。
    gcc-core
    C語言編譯器
    gcc-c++
    C++語言編譯器
    mingw-runtime
    MinGW的運行時庫(這個必須安裝)

    win32api

    win32API函數頭文件和連接庫

    binutils

    MinGW的匯編器和連接器等基礎工具

    gdb

    MinGW中的調試工具
    mingw32-make
    Make工具,用以更好的管理你的項目
    make解后,沒有通常的make.exe,只有一個mingw32-make.exe文件,其實,把這個文件改名為make.exe就行。

    posted @ 2008-12-22 15:53 junctioner 閱讀(1700) | 評論 (6)編輯 收藏

    年跡

    1978:第一個關鍵的年份
    1988:雖然是第一個十年,但十歲的生日沒多少印象了,更多的是開始注意的第一個年份。
    1993:初中結束了,
    1997:高中結束了,
    2000/06/30:大學畢業了,世紀之交呀!
    2000/08/03:子身跑到汕頭的一個小鎮開始第一份工作,真正的人生地不熟。到目的地時,身上只有20塊錢了,還是年青的老板給我付的“摩的”費。
    2001/11/03:混到一份跟自己所學專業,所做的工作一點也不相關的工作,毅然一個人跑到北京。首都呀!當時天很冷,比我想象的要冷,下車后把能穿的都穿上,不知象什么熊。打22塊錢的車找到公司,競然還沒到上班時間。
    2004/06/xx:一個傷感的月份,也注定要離開這個做了好幾年有公司。
    2004/08/04:換了一個比較遠的公司,在朝陽,自己租住在西直門。
    2005/02/28:一個沒有29日的月份,還沒開始工作,就沒有選擇的離開了。
    2005/07/03:
    2006/07/03:換了一份工作,不知什么感受。

    posted @ 2007-06-19 16:35 junctioner 閱讀(272) | 評論 (0)編輯 收藏

    Velocity之首次研究

        與Velocity的第一次見面,是03年,有個新同事推薦使用,因當時我在做別的項目,也沒怎么仔細了解,簡單的知曉類似如模板一類的東西。之后有過幾次接觸,但,都沒花時間仔細看,前段時間,幫朋友做一個小東西,覺得用個模板做,會省很多事,想到Velocity。東西很小,做完了都沒時間看Velocity,今天正好有時間,研究研究。
        Velocity是apache下的一個開源項目,其網址:http://velocity.apache.org/;下載地址:http://velocity.apache.org/download.cgi,可直接下載源碼,也可通過SVN獲取源碼。
        在eclipse中創建一個web應用工程,把Velocity的源碼拷到java資源目錄下,自動編譯后,報幾個錯,拷貝下載的Velocity源碼lib目錄下的commons-collections-3.1.jar、oro-2.0.8.jar、commons-lang-2.1.jar這個三類包到web應用工程的lib目錄下即可。
        準備就緒,就寫個例子跑跑試試。寫一個hello.vm的模板文件,創建一個對應的Servlet,就可以運行了。兩文件源碼貼出如下:
        hello.vm
    <html>
        
    <body>
        #set($greet = "你好哇!")
            Hello!$name, $greet
        
    </body>
    </html>
        HelloServlet.java
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Hashtable;
    import java.util.Properties;

    import javax.servlet.ServletConfig;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.velocity.Template;
    import org.apache.velocity.app.Velocity;
    import org.apache.velocity.context.Context;
    import org.apache.velocity.servlet.VelocityServlet;

    public class HelloServlet extends VelocityServlet {

        
    protected Properties loadConfiguration(ServletConfig config)
                
    throws IOException, FileNotFoundException {

            Properties p 
    = new Properties();

            String path 
    = config.getServletContext().getRealPath("/");

            
    if (path == null) {
                path 
    = "/";
            }

            p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);
            p.setProperty(
    "runtime.log", path + "velocity.log");
            p.setProperty(Velocity.INPUT_ENCODING, 
    "GBK");
            p.setProperty(Velocity.OUTPUT_ENCODING, 
    "GBK");
            
    return p;
        }

        
    public Template handleRequest(HttpServletRequest request,
                HttpServletResponse response, Context ctx) {
            Template template 
    = null;
            
    try {
                ctx.put(
    "name","Velocity");
                template 
    = Velocity.getTemplate("/hello.vm");
            } 
    catch (Exception e) {
                e.printStackTrace();
            }
            
    return template;
        }
    }
        創建servelt要注意的幾個地方。
        1、新建的Servlet要擴展Velocity的VelocityServlet
        2、在servlet中要實現 public Template handleRequest(HttpServletRequest request,HttpServletResponse response, Context ctx)
           A)把要返回到頁面上的數據放到context中對應到指定鍵值(鍵值名為對應模板中定義的變量名)
           B)引入指定模板文件
        3、導入配置文件的方法protected Properties loadConfiguration(ServletConfig config),是否實現,是可選的 ,其作用在后面說明。

    發布運行后,訪問http://localhost:8080/vt/HelloServelt,就可看到結果了。

    運行起來,看到結果,是覺得很簡單,其運行過程,就要跟蹤看源碼才能知道了。

        看源碼,先看的,肯定是VelocityServlet.java。發現源碼注釋中,這個類已不推薦使用,推薦使用Velocity的一個子項目tool中的VelocityViewServlet.java,我沒有當tool子項目,就先看這個“過時的”實現。
         VelocityServlet.java,擴展了HttpServlet,實現了doGet、doPost、init基本方法,前兩個方法都直接調用新實現的doRequest方法,這些都是很常規的操作。
        doRequest方法做如下幾件事:創建上下文、設置響應內容文件類型、獲取模板(調用每個請求中的具體實現)、合并數據做出響應、出錯處理及資源清理。看到這兒,整個請求和響應過程很清晰,并沒什么特別的處理。
        接下來,看看它的初始化做了些什么事。就做了三件事,超類初始化、自己的初始化、緩存內容類型數據。自己的初始化,也就是(i)導入配置信息,(ii)根據配置信息做初始化設置。導入配置信息,是根據指定的幾個地方,獲取配置數據(在提供的樣例中,重載了它的獲取配置數據的方法,自己靈活的寫入一些配置信息);根據配置信息做初始化的工作,應用單例設計模式,保證初始化工作的處理唯一。
        VelocityServlet自已的初始化,調用另一個類org.apache.velocity.app.Velocity的init( Properties p )方法,就看看Velocity里做了些什么。Velocity里全是靜態方法。主要有如下幾個方法:
        1、初始化;2、預演傳入的數據(發現在應用中沒有使用,只在單元測試代碼中引用到);3、合并數據和模板;4、設置/獲取屬性;5、操作信息提示(不過,都不推薦使用了),整個的看下來,有兩點:1、主要的還是初始化和數據合并了;2、這個類只是一個中轉類,所有的方法,最終都是調另一個類org.apache.velocity.runtime.RuntimeSingleton的方法。
        打開RuntimeSingleton的代碼,看一看,發現它同Velocity類差不多,類本身不做實際的處理操作。它與Velocity不同的是,它是申明一個靜態的實例,再調用這個實例,個別地方(init())加了同步控制。如此處理體現它這個類的名字--單例,核心的還是這個靜態實例org.apache.velocity.runtime.RuntimeInstance。
        到RuntimeInstance,就開始接觸到Velocity的處理核心了。

        寫到這兒,突然沒有寫下去的沖動了,暫切休息一下。
       
        抽時間看了一下Velocity子項目tool下的VelocityViewServlet的源碼,比VelocityServlet要實現的好多了,與struct接合的比較好。
        Velocity,不僅僅適合于web應用,還可以作生成SQL、XML的模板,內容比較多,待一一挖掘。

    posted @ 2007-05-30 15:49 junctioner 閱讀(2911) | 評論 (3)編輯 收藏

    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    常用鏈接

    留言簿(8)

    隨筆分類

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久久毛片免费播放 | 亚洲一区二区三区在线观看网站| 亚洲国产人成网站在线电影动漫| 久久亚洲精品国产精品| 学生妹亚洲一区二区| 一级做a爱过程免费视| 暖暖日本免费中文字幕| 中文字幕无码免费久久99 | 国产AV无码专区亚洲AV漫画| 亚洲一区影音先锋色资源| 2021国内精品久久久久精免费| 国产免费午夜a无码v视频| 亚洲国产精品特色大片观看完整版 | 人成午夜免费视频在线观看| 国产在线19禁免费观看国产| 久久精品国产亚洲av麻| 午夜成人无码福利免费视频| aⅴ在线免费观看| 图图资源网亚洲综合网站| 久久精品国产亚洲AV电影网| 本道天堂成在人线av无码免费| 青娱乐免费在线视频| 亚洲国产精品网站在线播放 | 日本亚洲欧美色视频在线播放| 日韩中文字幕免费视频| 亚洲国产精品成人综合色在线婷婷 | 亚洲色欲www综合网| A国产一区二区免费入口| 成人免费毛片内射美女APP| 久久91亚洲精品中文字幕| 曰批全过程免费视频播放网站| 亚洲人成77777在线观看网| 国产成人高清精品免费鸭子| 免费人成黄页在线观看日本| 亚洲中久无码永久在线观看同| 鲁大师在线影院免费观看| 亚洲精品亚洲人成在线| 天天摸天天碰成人免费视频| 亚洲国产综合91精品麻豆| 最近免费中文字幕4| 亚洲精品色播一区二区|