2010-10-30

「高逸峰」豪邁人生的故事

一首感人的歌,一個真實的故事......

一個曾擁有一千多名員工,千萬的富翁。在破產後,轉變成普通的包子鋪老板。真正人生豪邁的勇者。


 
高逸峰在節目中所唱的歌,其歌名為《從頭再來》。以下,為整首歌的歌唱影片及其歌詞。


《從頭再來》劉歡

昨天所有的榮譽,已變成遙遠的回憶。

勤勤苦苦已度過半生,今夜重又走入風雨。

我不能隨波浮沉,為了我致愛的親人。

再苦再難也要堅強,只為那些期待眼神。

心若在,夢就在,天地之間還有真愛。

看成敗,人生豪邁,只不過是從頭再來。

小狗

《Ready for The Storm》Deanta




The waves crash in and the tide pulls out
It's an angry sea but there is no doubt
That the lighthouse will keep shining in the night
To warn the lonely sailor

The lightning strikes and the wind cuts cold
Through the sailor's bones, to the sailor's soul
'Till there's nothing left that he can hold
Except the roaring ocean

But I am ready for the storm, yes oh ready I'm
I'm ready for the storm, I'm ready for the storm

Give me mercy for my dreams, 'cause every confrontaion
Seems to tell me what it really means to be a lonely sailor
But when the sky begins to clear and the sun it melts away my fear
I cry a silent, weary tear at those that mean to love me

And I am ready for the storm, yes oh ready I'm
I'm ready for the storm, I'm ready for the storm

Distance it is no real friend, and time will take its time
And you will find that in the end it brings you near a lonely sailor
But when you take me by your side, you love me warm, you love me
And I should've realized I had no reason to be frightened

2010-10-27

如何在Eclipse使用Spring Framework

跟同學閒聊時,知道有人想在 Eclipse  IDE 中使用 Spring Framework 。

拜了一下古狗大神,找到下列三篇文件。因為近日有別的事須先忙,所以,我還沒照著文件的說明試過是否可行。所以,若有不適用的問題可別怪我哦!

最後,記錄 Spring Framework 的下載網址:

【連結】:
http://sourceforge.net/projects/springframework/files/

2010-10-22

了解什麼是 Spring Web MVC

 

循前例,我還是自NetBeans的官網,取用如下之教學指引,以為自修研習用教材,開始了我對 Spring 的初步探究--「Spring是什麼東東啊?」

Introduction to Spring Web MVC

 

文件導讀

 

上述教材研讀及實作完畢後,摘錄心得如下,當成是自己的讀書筆記,也希望對需要了解Spring的朋友,能提供那麼一點助益。

根據教材內容的說明,可知此處所探討的只是Spring Web MVC的運作原理,可能這教材裡的說明,只是讓我們了解在 Spring Framework 下,Controller、View、Model 三種類別是如何協同運作,還不能算是給了 Spring Framework 的總體概述。

此教材主要的章節架構如下:

  • Setting up a New Project with Spring Web MVC Support
  • Overview of the Application
  • Implementing a Service
  • Implementing the Controller and Model
  • Implementing the Views
  •  

    對於以上之章節,可將「Setting up a New Project with Spring Web MVC Support」章節視為本文章的第一篇。

    至於「Overview of the Application」到「Implementing the Views」的章節,則屬於本文章的第二篇。

     

    第一篇內容摘要

     

    認識DispatcherServlet

    指導NetBeans的使用者,如何透過專案建置精靈,建立一個支援Spring Framework 3.0的NetBeans專案資料夾。

    完成了上述專案建置工作後,即可依據教材中的指示,體驗一下,Spring有什麼樣的特性。

    第一件要了解的事,偉大的DispatcherServle從web.xml檔案內容的描述,可以發覺在Spring Framework有著一個神奇的Servlet,它的名字叫DispatcherServlet。從以下自web.xml節錄的內容,可以看出,只要有使用者對伺服器發出讀取.htm檔案的Request時,往後的處理工作,皆由偉大的DispatcherServlet來負責操盤。

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

     

    第二件要了解的事,網站的首頁是如何被找到的:別懷疑,同時,我也沒有侮辱您的專業。本來網站的首頁用腳指想也知,不是index.hm;就是index.jsp檔案。

    可是,從下列web.xml的設定,可知以上皆非,預設為redirect.jsp。

    <welcome-file-list>
        <welcome-file>redirect.jsp</welcome-file>
    </welcome-file-list>

     

    當redirect.jsp檔案打開後,可以看到如下的內容:

    <% response.sendRedirect(“index.htm”); %>

     

    結果.....,才知,這網站的首頁仍由index.htm擔綱。但是.....,在Web Pages之下,根本沒有index.htm這個檔案啊!

    image

     

    可是......,這個網站在執行時候,明明可以看到如下的網頁內容,同時,在Web瀏覽器中的URL網址,也出現了index.htm啊!

    image

     

    如果你不死心到處找,可以在路徑「Web Pages\WEB-INF\jsp\」處,找到一個最最最標準的首頁檔案index.jsp。

    image

     

    把這個網頁檔案打開後,可以查覺其內容,跟前述網站首頁內容是相同的。

    image

     

    啊......!現在是怎麼回事?怎麼會這樣?

    謎題的解答dispatcher-servlet.xml

    其實在網站所見的首頁內容,其來源正是出自index.jsp。但是,從要進入index.htm網頁,卻是顯示index.jsp的「無中生有」過程,是怎麼回事?以下我們來一一分解詳述:

    由於redirect.jsp檔案,說要將網頁轉到index.htm。所以,根據web.xml的設定,只要是*.htm檔案,通通交由DispatcherServlet負責。

    當DispatcherServlet這個血統純正的Java Servlet,聽說有人要求瀏覽index.htm網頁的內容時,便會查閱dispatcher-servlet.xml檔案中的設定,並嚴格遵循當中的規矩,照章行事。

    當DispatcherServlet讀到 id 為 urlMappingbean 設定,它知道若有人要看 "/index.htm" 的檔案時,它要以 indexController 頂替 。

    於是DispatcherServlet,再到dispatcher-servlet.xml檔案尋找 name 為 indexController 的 bean 。結果,自 p:viewName 的屬性查出,indexController 要找主要檔名叫 index 的檔案。

    最後,DispatcherServlet藉由 id 為 viewResolver 的 bean ,其中的 p:prefixp:suffix,查出主檔名為 index 的檔案,要到路徑為「/WEB-INF/jsp/」處尋找;找到這個檔案後,再配以 jsp 的副檔名。

    image

    經過上述無中生有的過程,DispatcherServlet終於完成解讀,知道有人要看 index.htm 時,就給它 /WEB-INF/jsp/index.jsp 的檔案。

    瞭了嗎?!

    只是.....,不過是要喝杯牛奶,幹啥要自行蓋個牧場來養牛,生產年奶。為什麼要把事情搞得這麼大,如此複雜?別問我,我那知!

     

    第二篇內容摘要

     

    Spring Web MVC運作架構

    這篇教材真正的重點,從此處開始。它用了如下的應用例子,說明在 Spring Framework 下MVC是怎樣運作的。

    假設您的網站要提供一個功能,這功能會透過一個網頁向使用者詢問其姓名。當使用者輸入了姓名之後,則會用另一個網頁向使用者說聲嗨!

    有了上述初步的功能需求後,在設計上我們需使用 2 個 View,以 nameView.jsp 網頁來向使用者詢問,要求輸入姓名。使用者輸入的姓名,經過系統的處理後,再透過名為helloView.jsp 的網頁,向使用者 Say Hello。且此功能的啟動執行點,設計成「當使用者瀏覽 /hello.htm 網頁便執行」。

    在 Spring Web MVC 的設計模式下,View (可以直接想成網頁) 之間的切換係由 Controller 的類別 (亦即 MVC 中的 Control) 來控制。所以,依據上述的設計規格,我們需要有個名為 helloController ,屬 Controller 的類別,以便有人想瀏覽 /hello.htm 網頁時,便提供 nameView.jsp 給他;待取得使用者輸入的姓名後,則再顯示 helloView.jsp 網頁給使用者。

    關於使用者在 nameView.jsp 輸入的資料,可以使用一名為 Name ,屬 Model 的類別,用以接收輸入的結果。

    至於從使用者接收到的資料,該做什麼處理,完成什麼樣的輸出,這活就由屬 Service (亦即一般所謂之 Business Logic) 的類別來幹。因此,根據設計,需要一名為 helloService 的類別,以便能將使用者輸入的姓名進行加工處理。

    綜合上述,整個功能的運作過程,所需使用的網頁及類別,其設計可以用以下,UML 的穩建圖來表示:

    image

    上圖的 dispatcher-servlet.xml ,用於表示 helloController 類別須在這個檔案內做登記。同樣,helloService 類別的存在,亦須記錄相關設定在 applicationContext.xml 檔案之中。 如此,helloController 類別才能正常運作。甚至說得更白點,非得這樣做,Web Container 才有辦法,遇到有人要瀏覽 /hello.htm 時, 知道該怎麼做。

    根據上述設計,需要撰寫製作的網頁及各個類別(class),在專案資料夾的放置處,則如下圖所示:

    image

     

    研習須細讀重點

    有了上述 Spring Web MVC 在架構上的認知後,請再加強下列事項的研習。

    HelloController.java 的建構子:細讀其程式碼,了解 Controller 啟動後,怎麼知道該先顯示那個網頁,然後又該顯示那個網頁。網頁輸入的資料,要用那個類別去接收;當靜態的類別(class)變成可執行的物件(object)時,要用什麼作為變數名稱

    HelloController.java 的 onSubmit 方法:當第一個網頁完成輸入 (nameView.jsp),onSubmit 事件發生後,Controller 要如何接收第一個網頁所傳來的輸入;然後又如何透過 Service ,對輸入的資料進行加工,完成輸出;最後又如何將加工後輸出,餵給第二個網頁 (helloView.jsp)。

    nameView.jsp網頁:研究網頁中,屬 Spring 專用的 Tag 如何自 Controller 接收由 Name 類別所產生的 name 物件。而使用者的輸入,如何以 Spring Tag ,將之存入 name 物件中的 value 屬性。

    helloView.jsp網頁:研究網頁中欲輸出的內容,如何能透過 EL 表示式  ${helloMessage}  顯示出來。EL 表示中的變數 helloMessage , 與 HelloController 類別中的 onSubmit 方法,有什麼互為因果的關係。

     

    總結

     

    哇!好棒!終於寫完了。這篇文章花了我 5 小時,才搞定。可是這篇文章的內容,我花了一天讀完,又再花了三天反覆思考 Spring Web MVC 運作的架構;網頁、Controller類別、Service類別、Model類別各個之間的互動關係;三個設定檔 web.xml 、 dispatcher-servlet.xml 、applicationContext.xml 各個的作用。

    這個研習過程,對我而言有些吃力。因此,希望我這研究心得報告,可以幫大家減少一些學習過程的障礙。

    2010-10-21

    夏川りみ 子守唄(ファムレウタ)




    ¸¸.•*¨*•♫♪•.¸¸.•♫´*¨¯`♪•.¸¸ ♩♪♫♬

    子守唄 (ファムレウタ) 可以直接翻成"子守歌",意思是"守護孩子之歌"。子守唄就是小孩子要睡覺的時候,大人們會唱歌來讓他們快點睡,對照台灣通用的名詞,可以翻成搖籃曲或催眠曲。

    【中譯歌詞】:

    在海邊玩耍的孩子們 笑聲清亮難以言喻
    退潮時 拍打過來的潮聲 彷彿扶養我長大的母親的搖籃曲一般

    在我耳邊溫柔的低吟著
    咻啦 咻啦 希望心願
    咻啦 咻啦 能夠實現

    布要染深或染淺 取決於人心
    海洋的未來就像塊白布 會怎樣也繫於人心
    咻啦 咻啦 希望心願
    咻啦 咻啦 能夠實現

    對於島與故鄉的眷戀 島民的熱情對海洋的感謝
    我會深深染印在心中 絕不會忘卻
    深深的 深深的 染印心中

    認識 Struts Web Framework

    這年頭找頭路時,如果徵才的公司係使 Java 技術,常會在應徵的條件裡頭,加上一項「熟 Struts」。

    為了方便找頭路,身為使用 Java 技術的人員,最好還是了解 Struts 係蝦米碗糟。如果,您也是 NetBeans IDE 的愛用者。那麼恭喜您!因為我們不用花銀子,就可以自 NetBeans 的網站上,取得精彩的指引教材。我照著教材,跟著上機實作,果然可以對 Struts Frameworks 有個概括性的了解。

    為了克盡 IBM (Internet Big Mouth / 中譯:網路大嘴巴) 成員的職責,趕緊跑來這裡,跟大家們獻寶!

    如果您已使用 JSP Model 2 在撰寫網頁;或是您想要讓自己的網路應用應用系統,遵循良好的 MVC 設計模式,那麼以下這篇是您不可錯過的好文章。 ^^


    體驗一下,什麼是 GWT

    什麼是 GWT ?它能做什麼?

    GWT 係 Google Web Toolkit 的縮寫。GWT 本身就是一個 Web Client 端開發工具。

    使用 Java 技術,開發 Java EE 網路應用系統的朋友,即便您對 Web Client 端的技術不是很熟 (如:JavaScript、AJax) 。只要有了 GWT ,就可以使用早就熟悉的 Java Server Site 技術,開發可在 Web Client 端執行 AJAX 功能。

    或許您會說:「慢著!要用 AJAX ,只需在 Web Client 端的網頁中,使用 JavaScript 來實作, 不就得了?」 

    話是沒錯啦!不過!使用 AJAX 的重要基礎,我們需要透過 Web 瀏覽器建立 XMLHttpRequest 物件,然後才可以使用非同步的傳輸技術。但......,這可不是什麼瀏覽器都可以順利搞定的;還有,程式開發的過程,總難免有臭蟲滋生,傳統的 AJAX 開發方式,要對程式碼 Debug ,實在不是很方便;更別說,為了要能善用 AJAX ,在此之前,還得先對 JavaScript 進行深入的探究與了解。

    GWT 最神奇之處,便是不熟悉 Web Client 端技術的開發人員,一樣可以運用原先早已熟悉的 Java 語言,實作 AJAX 技術。使用 GWT 實作的「Java 類別」,會被編譯成可用於 Web Client 端的 JavaScript & HTML 程式碼。不僅如此,更棒的是這程式碼可與各家 Web 瀏覽器完全相容 。

    對於想要在 NetBeans IDE 運用 GWT 的朋友們,以下這篇文章,有著非常詳盡的介紹與實作的指引。 更重要的是,看這篇文章,還可以順便複習一下 Swing、Inner Class、集合(Collections)、泛型等 Java 程式語言該有的重要概念。所以咧.....,研習此文章,真是好處多多。

    祝大家學習愉快!Web 功力步步高!   ^^


    2010-10-20

    《My Precious One》Celine Dion




    【英文歌詞與中譯】:

    My precious one, my tiny one, lay down your pretty head.
    我珍貴的寶貝,我小小的寶貝,放下你那漂亮的頭頭。

    My dearest one my sleepy one, its time to go to bed
    我親愛的寶貝,我昏昏欲睡的寶貝,是該上床睡覺的時間囉!


    Just lie your head and give your cares to me.
    放下你的頭頭,把你的煩憂給我。

    Just close your eyes and fall into the sweetest dream, cause in my loving arms.
    在我滿滿是愛的臂膀中,閉上你的眼睛,進入甜甜的夢鄉。

    My precious one my darling one don't let your lashes weep.
    我珍貴的寶貝,我親愛的寶貝,別再哭哭弄濕了你的睫毛。

    My cherished one my weary one it's time to go to sleep.
    我疼惜的寶貝,我疲憊不堪的寶貝,是該好好睡覺覺的時間囉!


    Just lie your head and give your cares to me.
    放下你的頭頭,把你的煩憂給我。

    Just close your eyes and fall into the sweetest dream, cause in my loving arms.
    在我滿滿是愛的臂膀中,閉上你的眼睛,進入甜甜的夢鄉。

    Your safe as you will ever be so hush my dear and sleep.
    你要安然入夢,我的寶貝。

    And in your dreams you'll ride on angels wings.
    在睡夢中,你將乘著天使之翼而飛。

    That's when the stars will touch the face of God...
    如同高掛天上的星辰般,如此接近,可以觸摸到上帝的臉龐。

    And if you should awake I'll send you back to sleep.
    要是你醒過來,我會哄你再入夢中。




    2010-10-16

    《黃昏三鏢客》


    美國西部電影《黃昏三鏢客》的場景,用口技與樂器就能忠實呈現哦!